Skip to main content

Core CRUD

Basic toolkit creation, retrieval, update, and deletion operations.

GET /api/toolkits

Search and filter toolkits.

Authentication: Required

Permission: toolkits:read

Response:

The response is a paginated HAL collection. Toolkit items are returned under _embedded["inf:toolkit"].

{
"_links": {
"self": { "href": "/api/toolkits" }
},
"_embedded": {
"inf:toolkit": [
{
"_links": {
"self": { "href": "/api/toolkits/d4f8a2b1-..." },
"inf:tools": { "href": "/api/toolkits/engineering:filesystem-toolkit/tools" }
},
"id": "d4f8a2b1-...",
"slug": "filesystem-toolkit",
"name": "Filesystem Tools",
"type": "mcp-stdio",
"description": "Access filesystem via MCP",
"instructions": "Use these tools to read/write files",
"config": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/docs"]
},
"integrationId": null,
"ownerId": "engineering",
"shared": true,
"createdAt": "2024-01-15T10:00:00.000Z",
"updatedAt": "2024-02-08T14:30:00.000Z"
}
]
},
"start": 0,
"count": 1,
"total": 5
}

Query Support:

  • name - Search by toolkit name
  • type - Filter by toolkit type
  • slug - Search by slug

GET /api/toolkits-list

Get a simple list of all accessible toolkits.

Authentication: Required

Permission: toolkits:read

Response: Array of toolkit objects without pagination


GET /api/toolkits/{id}

Get a single toolkit with full details.

Authentication: Required

Permission: toolkit:read

Path Parameters:

ParameterTypeDescription
idstringToolkit ID (natural ID or compound key)

Response:

{
"id": "team:github-toolkit",
"name": "GitHub Integration",
"slug": "github-toolkit",
"type": "mcp-remote",
"description": "Access GitHub repositories and issues",
"instructions": "Use these tools to interact with GitHub",
"config": {
"url": "https://mcp.example.com/github",
"headers": {
"Authorization": "Bearer token"
}
},
"integrationId": "oauth-github",
"integration": {
"id": "oauth-github",
"name": "GitHub OAuth",
"type": "oauth2"
},
"shared": true,
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-02-08T14:30:00Z",
"_links": {
"self": { "href": "/api/toolkits/team:github-toolkit" },
"inf:tools": { "href": "/api/toolkits/team:github-toolkit/tools" },
"inf:driver": { "href": "/api/toolkits/team:github-toolkit/driver" }
}
}

POST /api/toolkits

Create a new toolkit.

Authentication: Required

Permission: toolkits:create

Plan Requirement: Pro plan or higher (admins bypass)

Request Body:

FieldTypeRequiredDescription
namestringYesToolkit display name
slugstringYesUnique slug identifier
typestringYesToolkit type (mcp-stdio, mcp-remote, custom, informer)
descriptionstringNoToolkit description
instructionsstringNoUsage instructions for AI
configobjectNoType-specific configuration
integrationIdstringNoAssociated integration ID (for OAuth)
oauthobjectNoOAuth configuration (creates integration if not provided)
sharedbooleanNoTeam-shared toolkit (default: false)

Example Request (MCP stdio):

{
"name": "Filesystem Access",
"slug": "filesystem",
"type": "mcp-stdio",
"description": "Local filesystem operations",
"config": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]
},
"shared": true
}

Example Request (MCP remote with OAuth):

{
"name": "GitHub Toolkit",
"slug": "github-toolkit",
"type": "mcp-remote",
"description": "GitHub API integration",
"config": {
"url": "https://mcp.github.com",
"transport": "sse"
},
"oauth": {
"resourceName": "GitHub",
"authorizationEndpoint": "https://github.com/login/oauth/authorize",
"tokenEndpoint": "https://github.com/login/oauth/access_token",
"scopes": ["repo", "read:user"],
"clientId": "your-client-id",
"clientSecret": "your-client-secret"
},
"shared": true
}

Response: 201 Created

OAuth Integration:

If oauth is provided without integrationId, an OAuth integration is automatically created with Dynamic Client Registration (DCR) if supported.

Plan Requirement

Creating toolkits requires a Pro, Max, Max+, or BYOK plan. Free and Basic plan users will receive 403 Forbidden.


PUT /api/toolkits/{id}

Update a toolkit.

Authentication: Required

Permission: toolkit:write

Path Parameters:

ParameterTypeDescription
idstringToolkit ID

Request Body:

FieldTypeDescription
namestringUpdate name
slugstringUpdate slug (must be valid: ^[a-z][a-z0-9_]*$)
descriptionstringUpdate description (null allowed)
instructionsstringUpdate instructions (null allowed)
configobjectUpdate configuration (null allowed)
integrationIdstringChange integration (null allowed)
sharedbooleanToggle team sharing

Response: Updated toolkit object

Transaction: Yes


DELETE /api/toolkits/{id}

Delete a toolkit permanently.

Authentication: Required

Permission: toolkit:delete

Path Parameters:

ParameterTypeDescription
idstringToolkit ID

Response: 204 No Content

Transaction: Yes

Permanent Deletion

This operation permanently deletes the toolkit and all associated tools, chat associations, and configuration. This cannot be undone.


Toolkit Types

mcp-stdio

Local MCP server running as subprocess:

{
"type": "mcp-stdio",
"config": {
"command": "node",
"args": ["server.js"]
}
}

mcp-remote

Remote MCP server via HTTP/SSE:

{
"type": "mcp-remote",
"config": {
"url": "https://mcp.example.com",
"transport": "sse",
"headers": {
"X-API-Key": "secret"
}
}
}

custom

User-defined custom tools:

{
"type": "custom",
"config": {}
}

informer

Built-in Informer tools (no configuration needed).