# What is MCP? The **Model Context Protocol (MCP)** is an open standard by Anthropic (2024) that lets LLMs call external tools in a structured way. Instead of pasting API docs into the prompt, you register tools with the MCP server, and the LLM calls them as needed — like function calling, but standardized and client-agnostic. ## Synapse MCP Server Synapse ships an official MCP server (`synapse-mcp-api` on npm) that exposes **79 tools** covering all Synapse features: | Category | Tools | Count | |----------|-------|-------| | 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 | | Chat | poll, reply, status, history, unread, send, upload | 7 | | Scheduler | cron_list, cron_create, cron_delete, cron_toggle, var_list, var_get, var_set, var_delete | 8 | | Tasks | task_list, task_get, task_create, task_update | 4 | | Scripts | script_list, script_get, script_info, script_store, script_delete | 5 | | Computers | computer_list, computer_get, install_code, screenshot, command_queue, command_status, commands_list, disable, delete | 9 | | Push | vapid_public_key, subscribe, unsubscribe, test | 4 | | User/Mind | register, login, minds_list, mind_create, mind_delete | 5 | | Utility | time, calc, random | 3 | | Visualization | graph, tags, compact | 3 | | Sharing | share, list, revoke | 3 | | Webhooks | register, list, get, update, delete | 5 | | Browser | new, navigate, click, type, screenshot, close | 6 | | **Total** | | **79+** | ## How It Works ``` ┌──────────────────┐ MCP protocol ┌──────────────────┐ HTTP ┌──────────┐ │ LLM Client │ ◀─────────────────▶│ Synapse MCP │ ─────────▶ │ Synapse │ │ (Claude/Cursor) │ (stdio/SSE/WS) │ Server │ │ API │ └──────────────────┘ └──────────────────┘ └──────────┘ ``` 1. You configure your LLM client (Claude Desktop, Cursor, etc.) to use the Synapse MCP server 2. The client starts the MCP server (via `npx -y synapse-mcp-api@latest`) 3. The MCP server connects to Synapse API using your Mind Key 4. The LLM sees all 79 tools as native functions it can call 5. When the LLM needs to remember something, it calls `memory_store` — the MCP server translates this to `POST /memory` on Synapse ## Transports The Synapse MCP server supports three transports: ### stdio (local, recommended for desktop) ```json { "mcpServers": { "synapse": { "command": "npx", "args": ["-y", "synapse-mcp-api@latest"], "env": { "SYNAPSE_MIND_KEY": "mk_...", "SYNAPSE_URL": "https://synapse.schaefer.zone" } } } } ``` ### HTTP/SSE (remote, multi-tenant) Connect your MCP client to: ``` URL: https://synapse-mcp.schaefer.zone/sse Headers: Authorization: Bearer YOUR_MIND_KEY ``` ### WebSocket (mobile, high-volume) ``` URL: wss://synapse-mcp.schaefer.zone/ws?mind_key=YOUR_MIND_KEY ``` ## Tool Profiles (v1.4.0) To reduce token overhead for smaller LLMs, the MCP server supports three tool profiles: | Profile | Tools | Tokens | Best For | |---------|-------|--------|----------| | `minimal` | 8 (composite dispatch) | ~500 | Self-hosted LLMs with ≤8k context | | `standard` | 25 (named) | ~2,500 | Mid-size LLMs (Claude Haiku, GPT-3.5) | | `full` | 119 (all) | ~8,250 | Large LLMs (Claude Sonnet/Opus, GPT-4) — default | Control via: - Env var: `MCP_PROFILE=minimal|standard|full` - Header: `Mcp-Tool-Profile: minimal|standard|full` ## Supported Clients - [Claude Desktop](/docs/mcp/claude-desktop) — Anthropic's desktop app - [Claude Code](/docs/mcp/claude-code) — terminal coding agent - [Cursor](/docs/mcp/cursor) — AI-powered IDE - [Continue.dev](/docs/mcp/continue) — open-source AI coding assistant - [Cline](/docs/mcp/claude-code) — VS Code extension - Any MCP-compatible client ## Why Use MCP Instead of Direct API? | Approach | Pros | Cons | |----------|------|------| | Direct API | Simple, no extra layer | LLM needs to know URLs, headers, auth | | MCP | LLM sees native tools, no URL memorization | Extra MCP server process | For most LLM agent use cases, MCP is the better choice — the LLM doesn't need to remember API paths or auth patterns. ## Next Steps - [Claude Desktop Setup](/docs/mcp/claude-desktop) — 2-minute config - [Claude Code Setup](/docs/mcp/claude-code) — terminal integration - [Custom MCP Client](/docs/mcp/custom-client) — build your own