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

EndpointTransportDescription
/mcp/Streamable HTTPThe MCP endpoint — a single bidirectional HTTP endpoint
/.well-known/mcp/server-card.jsondiscoveryPublic 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

ToolDescription
list-installed-skillsList your installed skills
get-skill-detailsGet full details of a skill
install-skillAdd a skill to your library
uninstall-skillRemove a skill from your library
search-marketplaceSearch the skill marketplace by name, category, or capability

Executions

ToolDescription
get-execution-statusCheck current/recent execution status
cancel-executionCancel an active execution
list-executionsList recent skill executions
get-execution-diffFull file diffs of a completed execution (owner only)

Artifacts

ToolDescription
list-artifactsList your generated artifacts
get-artifactGet details of a specific artifact
download-artifactGet download URL for an artifact
save-artifactSave content as a new artifact
delete-artifactRemove an artifact

Billing

ToolDescription
get-credit-balanceCheck 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.

ToolDescription
list-connectorsList available connectors and their connection status
list-github-reposList GitHub repositories you have access to
list-sourcesList sources for a connector (e.g., GitHub repos)
list-branchesList branches for a source
get-source-contentGet file/directory contents from a source
get-connector-statusCheck if a connector is authenticated
connect-connectorGet OAuth URL to connect a connector. Workspace owner or admin only, and the credential must have full access
disconnect-connectorDisconnect and revoke access. Workspace owner or admin only, and the credential must have full access
search-connector-actionsSearch available actions for connected connectors
run-connector-actionExecute an action from a connected connector. Needs the connector:exec scope
list-connector-triggersList 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

ToolDescription
search-workflowsSearch available workflows; call before start-workflow to find the ID
start-workflowStart a workflow execution by ID
list-schedulesList the workflow schedules armed in this workspace
set-scheduleArm, change or pause a workflow’s schedule
unset-scheduleRemove a workflow’s schedule (the workflow stays installed)
notification-inboxRead and dismiss workflow-completion notifications

Install & Resources

ToolDescription
install-resourceInstall 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-urlMint 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

ToolDescription
list-tracesList recent agent activity in this workspace
read-traceRead one trace turn by turn
agent-stepRun a single LLM synthesis, extraction or classification step
web-fetchFetch a web page
http-fetchPerform 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 an offset parameter rather than a cursor.

Client Configuration

See MCP Client Setup for detailed setup instructions for:

  • Claude Desktop
  • Cursor
  • VS Code
  • Custom clients

Error Codes

CodeDescription
NOT_FOUNDResource doesn’t exist
ALREADY_EXISTSResource already exists
INSUFFICIENT_CREDITSNot enough credits
EXECUTION_RUNNINGAnother execution is active
EXECUTION_FAILEDSkill execution failed
RATE_LIMITEDToo many requests
UNAUTHORIZEDInvalid or missing auth, or connector not connected
LIMIT_REACHEDTier limit exceeded
INVALID_INPUTInvalid connector type or connector not configured
CONNECTOR_ERRORConnector-specific operational error
GITHUB_ERRORGitHub API error
TIMEOUTRequest exceeded timeout limit

Best Practices

  1. Check status first - Before executing, verify no execution is running
  2. Handle pagination - Always check hasMore and use cursors
  3. Respect rate limits - Check x-ratelimit-remaining in response headers
  4. Handle timeouts gracefully - Long-running operations may timeout