MCP API Overview
clanker.engineer implements the Model Context Protocol (MCP), allowing AI assistants to interact with skills, artifacts, and executions through a standardized interface.
What is MCP?
The Model Context Protocol is an open standard that enables AI assistants to use external tools and access data sources. When you connect clanker to Claude Desktop, Cursor, or VS Code, your AI assistant gains access to our complete tool suite.
Endpoints
| Endpoint | Transport | Description |
|---|---|---|
/mcp/ | Streamable HTTP | The MCP endpoint — a single bidirectional HTTP endpoint |
/.well-known/mcp/server-card.json | discovery | Public MCP server card |
Streamable HTTP is the only MCP transport. The older SSE pair has been removed.
Authentication
All MCP endpoints require authentication via API key:
{
"headers": {
"x-api-key": "ck_live_xxxxxxxxxxxxx"
}
}
A ck_ key is also accepted as Authorization: Bearer ck_…. What a key can
see and call is bounded by its scopes: tools/list shows only the tools its
scopes cover, and tools/call on any other tool is refused with an error naming
the missing scope.
See Authentication for details on obtaining an API key.
Available Tools
Tools are organized by function:
Skills
| Tool | Description |
|---|---|
list-installed-skills | List your installed skills |
get-skill-details | Get full details of a skill |
install-skill | Add a skill to your library |
uninstall-skill | Remove a skill from your library |
search-marketplace | Search the skill marketplace by name, category, or capability |
Executions
| Tool | Description |
|---|---|
get-execution-status | Check current/recent execution status |
cancel-execution | Cancel an active execution |
list-executions | List recent skill executions |
get-execution-diff | Full file diffs of a completed execution (owner only) |
Artifacts
| Tool | Description |
|---|---|
list-artifacts | List your generated artifacts |
get-artifact | Get details of a specific artifact |
download-artifact | Get download URL for an artifact |
save-artifact | Save content as a new artifact |
delete-artifact | Remove an artifact |
Billing
| Tool | Description |
|---|---|
get-credit-balance | Check your credit balance |
Connectors
The unified connector surface — sources (code repos, files) and actions (SaaS operations) all live here. The previously-separate “Integrations” tool family was consolidated into the connector family.
| Tool | Description |
|---|---|
list-connectors | List available connectors and their connection status |
list-github-repos | List GitHub repositories you have access to |
list-sources | List sources for a connector (e.g., GitHub repos) |
list-branches | List branches for a source |
get-source-content | Get file/directory contents from a source |
get-connector-status | Check if a connector is authenticated |
connect-connector | Get OAuth URL to connect a connector. Workspace owner or admin only, and the credential must have full access |
disconnect-connector | Disconnect and revoke access. Workspace owner or admin only, and the credential must have full access |
search-connector-actions | Search available actions for connected connectors |
run-connector-action | Execute an action from a connected connector. Needs the connector:exec scope |
list-connector-triggers | List event triggers a workflow can subscribe to |
Reading through a connected account (list-github-repos, list-sources,
list-branches, get-source-content) also needs connector:exec; the tools
that only report what is connected (list-connectors, get-connector-status,
search-connector-actions, list-connector-triggers) need connector:list. A
tool the credential’s scopes do not cover is hidden from tools/list. See
Agent Permissions.
Workflows
| Tool | Description |
|---|---|
search-workflows | Search available workflows; call before start-workflow to find the ID |
start-workflow | Start a workflow execution by ID |
list-schedules | List the workflow schedules armed in this workspace |
set-schedule | Arm, change or pause a workflow’s schedule |
unset-schedule | Remove a workflow’s schedule (the workflow stays installed) |
notification-inbox | Read and dismiss workflow-completion notifications |
Install & Resources
| Tool | Description |
|---|---|
install-resource | Install an agent, workflow, skill, or whole template workspace into the current workspace (from a GitHub repo, an uploaded workspace file, or the marketplace) |
request-upload-url | Mint a short-lived (5 minute) presigned URL for uploading bundle bytes directly to storage. sizeBytes (the exact file size, at most 25 MB) is required and the upload must send exactly that many bytes; minting is rate-limited per workspace. Pair with install-resource to finalize |
Agents, traces and fetching
| Tool | Description |
|---|---|
list-traces | List recent agent activity in this workspace |
read-trace | Read one trace turn by turn |
agent-step | Run a single LLM synthesis, extraction or classification step |
web-fetch | Fetch a web page |
http-fetch | Perform an HTTP request and return the response |
Response Format
All tools return a standardized response:
Success Response
{
"success": true,
"data": { ... },
"pagination": {
"cursor": "...",
"hasMore": true
}
}
Error Response
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found"
}
}
Rate Limiting
MCP requests are rate-limited to 60 requests per minute per user.
Rate limit info is returned in HTTP response headers.
Pagination
List operations support cursor-based pagination:
{
"tool": "list-installed-skills",
"arguments": {
"limit": 20,
"cursor": "previous_cursor_value"
}
}
Response includes pagination metadata at the top level:
{
"success": true,
"data": [...],
"pagination": {
"cursor": "next_cursor_value",
"hasMore": true
}
}
Note: Some tools (such as
list-executions) use offset-based pagination instead of cursor-based. These tools accept anoffsetparameter rather than acursor.
Client Configuration
See MCP Client Setup for detailed setup instructions for:
- Claude Desktop
- Cursor
- VS Code
- Custom clients
Error Codes
| Code | Description |
|---|---|
NOT_FOUND | Resource doesn’t exist |
ALREADY_EXISTS | Resource already exists |
INSUFFICIENT_CREDITS | Not enough credits |
EXECUTION_RUNNING | Another execution is active |
EXECUTION_FAILED | Skill execution failed |
RATE_LIMITED | Too many requests |
UNAUTHORIZED | Invalid or missing auth, or connector not connected |
LIMIT_REACHED | Tier limit exceeded |
INVALID_INPUT | Invalid connector type or connector not configured |
CONNECTOR_ERROR | Connector-specific operational error |
GITHUB_ERROR | GitHub API error |
TIMEOUT | Request exceeded timeout limit |
Best Practices
- Check status first - Before executing, verify no execution is running
- Handle pagination - Always check
hasMoreand use cursors - Respect rate limits - Check
x-ratelimit-remainingin response headers - Handle timeouts gracefully - Long-running operations may timeout