{"title":"What is MCP?","slug":"what-is-mcp","category":"mcp","summary":"Model Context Protocol lets LLMs call external tools. Synapse exposes 79 tools via official MCP server.","audience":["human","llm"],"tags":["mcp","intro","overview"],"difficulty":"beginner","updated":"2026-06-27","word_count":565,"read_minutes":3,"llm_context":"MCP = Model Context Protocol (Anthropic, 2024). Open standard for LLM-tool integration.\nSynapse has official MCP server: synapse-mcp-api (npm package, npx -y synapse-mcp-api@latest)\n79 tools exposed: 22 memory, 7 chat, 8 scheduler, 4 tasks, 5 scripts, 9 computers, 4 push, 5 user, 3 utility\n3 transports: stdio (local), HTTP/SSE (remote), WebSocket (mobile)\nSupported clients: Claude Desktop, Claude Code, Cursor, Continue, Cline, any MCP-compatible client\nTool Profiles (v1.4.0): minimal (8 tools), standard (25), full (119) — controlled via MCP_PROFILE env or Mcp-Tool-Profile header\n","lang":"en","translated":true,"requested_lang":"en","content_markdown":"\n# What is MCP?\n\nThe **Model Context Protocol (MCP)** is an open standard by Anthropic (2024)\nthat lets LLMs call external tools in a structured way. Instead of pasting API\ndocs into the prompt, you register tools with the MCP server, and the LLM\ncalls them as needed — like function calling, but standardized and\nclient-agnostic.\n\n## Synapse MCP Server\n\nSynapse ships an official MCP server (`synapse-mcp-api` on npm) that exposes\n**79 tools** covering all Synapse features:\n\n| Category | Tools | Count |\n|----------|-------|-------|\n| Memory | recall, list, store, search, semantic-search, update, delete, bulk-delete, stats, unverified, contradictions, audit, related, by-tag, diff, expiring, health, sync, embed-batch, verify, unverify, mind-export | 22 |\n| Chat | poll, reply, status, history, unread, send, upload | 7 |\n| Scheduler | cron_list, cron_create, cron_delete, cron_toggle, var_list, var_get, var_set, var_delete | 8 |\n| Tasks | task_list, task_get, task_create, task_update | 4 |\n| Scripts | script_list, script_get, script_info, script_store, script_delete | 5 |\n| Computers | computer_list, computer_get, install_code, screenshot, command_queue, command_status, commands_list, disable, delete | 9 |\n| Push | vapid_public_key, subscribe, unsubscribe, test | 4 |\n| User/Mind | register, login, minds_list, mind_create, mind_delete | 5 |\n| Utility | time, calc, random | 3 |\n| Visualization | graph, tags, compact | 3 |\n| Sharing | share, list, revoke | 3 |\n| Webhooks | register, list, get, update, delete | 5 |\n| Browser | new, navigate, click, type, screenshot, close | 6 |\n| **Total** | | **79+** |\n\n## How It Works\n\n```\n┌──────────────────┐    MCP protocol    ┌──────────────────┐    HTTP    ┌──────────┐\n│  LLM Client      │ ◀─────────────────▶│  Synapse MCP     │ ─────────▶ │ Synapse  │\n│ (Claude/Cursor)  │   (stdio/SSE/WS)   │  Server          │            │ API      │\n└──────────────────┘                    └──────────────────┘            └──────────┘\n```\n\n1. You configure your LLM client (Claude Desktop, Cursor, etc.) to use the Synapse MCP server\n2. The client starts the MCP server (via `npx -y synapse-mcp-api@latest`)\n3. The MCP server connects to Synapse API using your Mind Key\n4. The LLM sees all 79 tools as native functions it can call\n5. When the LLM needs to remember something, it calls `memory_store` — the MCP server translates this to `POST /memory` on Synapse\n\n## Transports\n\nThe Synapse MCP server supports three transports:\n\n### stdio (local, recommended for desktop)\n\n```json\n{\n  \"mcpServers\": {\n    \"synapse\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"synapse-mcp-api@latest\"],\n      \"env\": {\n        \"SYNAPSE_MIND_KEY\": \"mk_...\",\n        \"SYNAPSE_URL\": \"https://synapse.schaefer.zone\"\n      }\n    }\n  }\n}\n```\n\n### HTTP/SSE (remote, multi-tenant)\n\nConnect your MCP client to:\n\n```\nURL: https://synapse-mcp.schaefer.zone/sse\nHeaders: Authorization: Bearer YOUR_MIND_KEY\n```\n\n### WebSocket (mobile, high-volume)\n\n```\nURL: wss://synapse-mcp.schaefer.zone/ws?mind_key=YOUR_MIND_KEY\n```\n\n## Tool Profiles (v1.4.0)\n\nTo reduce token overhead for smaller LLMs, the MCP server supports three\ntool profiles:\n\n| Profile | Tools | Tokens | Best For |\n|---------|-------|--------|----------|\n| `minimal` | 8 (composite dispatch) | ~500 | Self-hosted LLMs with ≤8k context |\n| `standard` | 25 (named) | ~2,500 | Mid-size LLMs (Claude Haiku, GPT-3.5) |\n| `full` | 119 (all) | ~8,250 | Large LLMs (Claude Sonnet/Opus, GPT-4) — default |\n\nControl via:\n\n- Env var: `MCP_PROFILE=minimal|standard|full`\n- Header: `Mcp-Tool-Profile: minimal|standard|full`\n\n## Supported Clients\n\n- [Claude Desktop](/docs/mcp/claude-desktop) — Anthropic's desktop app\n- [Claude Code](/docs/mcp/claude-code) — terminal coding agent\n- [Cursor](/docs/mcp/cursor) — AI-powered IDE\n- [Continue.dev](/docs/mcp/continue) — open-source AI coding assistant\n- [Cline](/docs/mcp/claude-code) — VS Code extension\n- Any MCP-compatible client\n\n## Why Use MCP Instead of Direct API?\n\n| Approach | Pros | Cons |\n|----------|------|------|\n| Direct API | Simple, no extra layer | LLM needs to know URLs, headers, auth |\n| MCP | LLM sees native tools, no URL memorization | Extra MCP server process |\n\nFor most LLM agent use cases, MCP is the better choice — the LLM doesn't need\nto remember API paths or auth patterns.\n\n## Next Steps\n\n- [Claude Desktop Setup](/docs/mcp/claude-desktop) — 2-minute config\n- [Claude Code Setup](/docs/mcp/claude-code) — terminal integration\n- [Custom MCP Client](/docs/mcp/custom-client) — build your own\n","content_html":"<h1>What is MCP?</h1>\n<p>The <strong>Model Context Protocol (MCP)</strong> is an open standard by Anthropic (2024)\nthat lets LLMs call external tools in a structured way. Instead of pasting API\ndocs into the prompt, you register tools with the MCP server, and the LLM\ncalls them as needed — like function calling, but standardized and\nclient-agnostic.</p>\n<h2>Synapse MCP Server</h2>\n<p>Synapse ships an official MCP server (<code>synapse-mcp-api</code> on npm) that exposes\n<strong>79 tools</strong> covering all Synapse features:</p>\n<table>\n<thead>\n<tr>\n<th>Category</th>\n<th>Tools</th>\n<th>Count</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Memory</td>\n<td>recall, list, store, search, semantic-search, update, delete, bulk-delete, stats, unverified, contradictions, audit, related, by-tag, diff, expiring, health, sync, embed-batch, verify, unverify, mind-export</td>\n<td>22</td>\n</tr>\n<tr>\n<td>Chat</td>\n<td>poll, reply, status, history, unread, send, upload</td>\n<td>7</td>\n</tr>\n<tr>\n<td>Scheduler</td>\n<td>cron_list, cron_create, cron_delete, cron_toggle, var_list, var_get, var_set, var_delete</td>\n<td>8</td>\n</tr>\n<tr>\n<td>Tasks</td>\n<td>task_list, task_get, task_create, task_update</td>\n<td>4</td>\n</tr>\n<tr>\n<td>Scripts</td>\n<td>script_list, script_get, script_info, script_store, script_delete</td>\n<td>5</td>\n</tr>\n<tr>\n<td>Computers</td>\n<td>computer_list, computer_get, install_code, screenshot, command_queue, command_status, commands_list, disable, delete</td>\n<td>9</td>\n</tr>\n<tr>\n<td>Push</td>\n<td>vapid_public_key, subscribe, unsubscribe, test</td>\n<td>4</td>\n</tr>\n<tr>\n<td>User/Mind</td>\n<td>register, login, minds_list, mind_create, mind_delete</td>\n<td>5</td>\n</tr>\n<tr>\n<td>Utility</td>\n<td>time, calc, random</td>\n<td>3</td>\n</tr>\n<tr>\n<td>Visualization</td>\n<td>graph, tags, compact</td>\n<td>3</td>\n</tr>\n<tr>\n<td>Sharing</td>\n<td>share, list, revoke</td>\n<td>3</td>\n</tr>\n<tr>\n<td>Webhooks</td>\n<td>register, list, get, update, delete</td>\n<td>5</td>\n</tr>\n<tr>\n<td>Browser</td>\n<td>new, navigate, click, type, screenshot, close</td>\n<td>6</td>\n</tr>\n<tr>\n<td><strong>Total</strong></td>\n<td></td>\n<td><strong>79+</strong></td>\n</tr>\n</tbody></table>\n<h2>How It Works</h2>\n<pre><code class=\"hljs language-plaintext\">┌──────────────────┐    MCP protocol    ┌──────────────────┐    HTTP    ┌──────────┐\n│  LLM Client      │ ◀─────────────────▶│  Synapse MCP     │ ─────────▶ │ Synapse  │\n│ (Claude/Cursor)  │   (stdio/SSE/WS)   │  Server          │            │ API      │\n└──────────────────┘                    └──────────────────┘            └──────────┘</code></pre><ol>\n<li>You configure your LLM client (Claude Desktop, Cursor, etc.) to use the Synapse MCP server</li>\n<li>The client starts the MCP server (via <code>npx -y synapse-mcp-api@latest</code>)</li>\n<li>The MCP server connects to Synapse API using your Mind Key</li>\n<li>The LLM sees all 79 tools as native functions it can call</li>\n<li>When the LLM needs to remember something, it calls <code>memory_store</code> — the MCP server translates this to <code>POST /memory</code> on Synapse</li>\n</ol>\n<h2>Transports</h2>\n<p>The Synapse MCP server supports three transports:</p>\n<h3>stdio (local, recommended for desktop)</h3>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;mcpServers&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">{</span>\n    <span class=\"hljs-attr\">&quot;synapse&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">{</span>\n      <span class=\"hljs-attr\">&quot;command&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;npx&quot;</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;args&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span><span class=\"hljs-string\">&quot;-y&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;synapse-mcp-api@latest&quot;</span><span class=\"hljs-punctuation\">]</span><span class=\"hljs-punctuation\">,</span>\n      <span class=\"hljs-attr\">&quot;env&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">{</span>\n        <span class=\"hljs-attr\">&quot;SYNAPSE_MIND_KEY&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;mk_...&quot;</span><span class=\"hljs-punctuation\">,</span>\n        <span class=\"hljs-attr\">&quot;SYNAPSE_URL&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;https://synapse.schaefer.zone&quot;</span>\n      <span class=\"hljs-punctuation\">}</span>\n    <span class=\"hljs-punctuation\">}</span>\n  <span class=\"hljs-punctuation\">}</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><h3>HTTP/SSE (remote, multi-tenant)</h3>\n<p>Connect your MCP client to:</p>\n<pre><code class=\"hljs language-plaintext\">URL: https://synapse-mcp.schaefer.zone/sse\nHeaders: Authorization: Bearer YOUR_MIND_KEY</code></pre><h3>WebSocket (mobile, high-volume)</h3>\n<pre><code class=\"hljs language-plaintext\">URL: wss://synapse-mcp.schaefer.zone/ws?mind_key=YOUR_MIND_KEY</code></pre><h2>Tool Profiles (v1.4.0)</h2>\n<p>To reduce token overhead for smaller LLMs, the MCP server supports three\ntool profiles:</p>\n<table>\n<thead>\n<tr>\n<th>Profile</th>\n<th>Tools</th>\n<th>Tokens</th>\n<th>Best For</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>minimal</code></td>\n<td>8 (composite dispatch)</td>\n<td>~500</td>\n<td>Self-hosted LLMs with ≤8k context</td>\n</tr>\n<tr>\n<td><code>standard</code></td>\n<td>25 (named)</td>\n<td>~2,500</td>\n<td>Mid-size LLMs (Claude Haiku, GPT-3.5)</td>\n</tr>\n<tr>\n<td><code>full</code></td>\n<td>119 (all)</td>\n<td>~8,250</td>\n<td>Large LLMs (Claude Sonnet/Opus, GPT-4) — default</td>\n</tr>\n</tbody></table>\n<p>Control via:</p>\n<ul>\n<li>Env var: <code>MCP_PROFILE=minimal|standard|full</code></li>\n<li>Header: <code>Mcp-Tool-Profile: minimal|standard|full</code></li>\n</ul>\n<h2>Supported Clients</h2>\n<ul>\n<li><a href=\"/docs/mcp/claude-desktop\">Claude Desktop</a> — Anthropic&#39;s desktop app</li>\n<li><a href=\"/docs/mcp/claude-code\">Claude Code</a> — terminal coding agent</li>\n<li><a href=\"/docs/mcp/cursor\">Cursor</a> — AI-powered IDE</li>\n<li><a href=\"/docs/mcp/continue\">Continue.dev</a> — open-source AI coding assistant</li>\n<li><a href=\"/docs/mcp/claude-code\">Cline</a> — VS Code extension</li>\n<li>Any MCP-compatible client</li>\n</ul>\n<h2>Why Use MCP Instead of Direct API?</h2>\n<table>\n<thead>\n<tr>\n<th>Approach</th>\n<th>Pros</th>\n<th>Cons</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Direct API</td>\n<td>Simple, no extra layer</td>\n<td>LLM needs to know URLs, headers, auth</td>\n</tr>\n<tr>\n<td>MCP</td>\n<td>LLM sees native tools, no URL memorization</td>\n<td>Extra MCP server process</td>\n</tr>\n</tbody></table>\n<p>For most LLM agent use cases, MCP is the better choice — the LLM doesn&#39;t need\nto remember API paths or auth patterns.</p>\n<h2>Next Steps</h2>\n<ul>\n<li><a href=\"/docs/mcp/claude-desktop\">Claude Desktop Setup</a> — 2-minute config</li>\n<li><a href=\"/docs/mcp/claude-code\">Claude Code Setup</a> — terminal integration</li>\n<li><a href=\"/docs/mcp/custom-client\">Custom MCP Client</a> — build your own</li>\n</ul>\n","urls":{"html":"/docs/mcp/what-is-mcp","text":"/docs/mcp/what-is-mcp?format=text","json":"/docs/mcp/what-is-mcp?format=json","llm":"/docs/mcp/what-is-mcp?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}