Skip to content

Getting started

This is the quickstart for the public /mcp endpoint. By the end you’ll have listed the available tools and run a search against your indexed workspace.

Prerequisites: a Canvas account (sign up at app.canvasx.ai) and a terminal with curl. That’s it for the managed path — no install.

Managed sandbox (open self-serve — sign up and go):

  1. Sign in at app.canvasx.ai.
  2. Create or join a workspace.
  3. Open Settings.
  4. Go to MCP access.

Self-hosted:

  1. Deploy Sketch.
  2. Open the web UI.
  3. Complete onboarding to create the first admin account.
  4. Open Settings.
  5. Go to MCP access.

In Settings → MCP access:

  1. Enter a token name, for example Claude Code or Cursor.
  2. Click Create token.
  3. Copy the plaintext token immediately — it is only shown once.
  4. Copy the MCP URL. It should look like:
https://<your-connectors-host>/mcp

Set both values in your shell:

Terminal window
export CONNECTORS_MCP_URL="https://<your-connectors-host>/mcp"
export CONNECTORS_API_KEY="skp_..."

The server stores only a hash and a short display prefix for personal access tokens. You can revoke tokens later from the same Settings page.

Call the MCP tools/list method:

Terminal window
curl -s "$CONNECTORS_MCP_URL" \
-H "Authorization: Bearer $CONNECTORS_API_KEY" \
-H "Accept: application/json, text/event-stream" \
-H "Content-Type: application/json" \
-H "Mcp-Protocol-Version: 2025-03-26" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Expected result: a JSON-RPC response whose tools include sketch_search, sketch_search_entities, sketch_get_entity_context, and sketch_get_file_content.

Search indexed knowledge:

Terminal window
curl -s "$CONNECTORS_MCP_URL" \
-H "Authorization: Bearer $CONNECTORS_API_KEY" \
-H "Accept: application/json, text/event-stream" \
-H "Content-Type: application/json" \
-H "Mcp-Protocol-Version: 2025-03-26" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "sketch_search",
"arguments": {
"query": "latest Linear launch blockers",
"kind": "task",
"sortBy": "recency",
"limit": 5
}
}
}'

If the workspace has matching indexed content that your user is allowed to see, the response returns text results with sketchId, providerId, source, URL when available, and a summary or snippet.