{"title":"MCP Troubleshooting","slug":"troubleshooting","category":"mcp","summary":"Solve common MCP integration issues — server not starting, tools not appearing, auth errors.","audience":["human","llm"],"tags":["mcp","troubleshooting","errors","debugging"],"difficulty":"intermediate","updated":"2026-06-27","word_count":552,"read_minutes":3,"llm_context":"Common issues:\n1. Node.js < 18 → upgrade to 18+\n2. Mind Key invalid → check format (mk_...), get fresh via POST /minds\n3. npx not found → install Node.js\n4. Tools not appearing → restart client, check config JSON validity\n5. SYNAPSE_URL unreachable → curl /health to verify\n6. MCP server crashes → check logs, run npx manually to see error\nDebug steps: run `npx -y synapse-mcp-api@latest` manually, check stderr\nLogs: Claude Desktop ~/Library/Logs/Claude/mcp.log, Cursor ~/.cursor/logs/\n","lang":"en","translated":true,"requested_lang":"en","content_markdown":"\n# MCP Troubleshooting\n\nCommon issues and solutions when integrating Synapse MCP with your LLM client.\n\n## Quick Diagnostic Checklist\n\n1. ✅ Node.js 18+ installed? (`node --version`)\n2. ✅ Mind Key starts with `mk_`? (not JWT `eyJ...`)\n3. ✅ Synapse API reachable? (`curl https://synapse.schaefer.zone/health`)\n4. ✅ Mind Key works? (`curl -H \"Authorization: Bearer mk_...\" .../memory/recall`)\n5. ✅ Config file is valid JSON? (no trailing commas, no comments)\n6. ✅ Client restarted after config change?\n7. ✅ MCP server starts manually? (`npx -y synapse-mcp-api@latest`)\n\n## Issue: No Tools Appear in Client\n\n### Symptoms\n\n- Claude Desktop / Cursor / Continue shows 0 tools\n- No 🔌 icon or \"synapse\" entry in MCP servers list\n\n### Solutions\n\n1. **Restart client fully** — Cmd+Q on macOS (not just close window)\n2. **Check config file location**:\n   - Claude Desktop macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`\n   - Claude Desktop Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`\n   - Cursor: `~/.cursor/config.json`\n   - Continue: `~/.continue/config.json`\n3. **Validate JSON** — paste config into <https://jsonlint.com>\n4. **Check client logs** for MCP errors:\n   - Claude Desktop: `~/Library/Logs/Claude/mcp.log` (macOS)\n   - Cursor: View → Output → MCP\n5. **Run MCP server manually** to see startup errors:\n   ```bash\n   SYNAPSE_MIND_KEY=mk_... npx -y synapse-mcp-api@latest\n   ```\n\n## Issue: \"Mind Key invalid\" Error\n\n### Symptoms\n\n- Tools appear but calls fail with \"401 Unauthorized\"\n- Error: \"Mind Key fehlt oder ungültig\"\n\n### Solutions\n\n1. **Verify Mind Key format** — starts with `mk_`, ~40 characters\n2. **Test directly**:\n   ```bash\n   curl -H \"Authorization: Bearer mk_YOUR_KEY\" \\\n        https://synapse.schaefer.zone/memory/recall\n   ```\n3. **Check env var is set** — for stdio transport, the env var must be in the\n   MCP server config, not your shell\n4. **Get a fresh Mind Key**:\n   ```bash\n   # Login to get JWT\n   curl -X POST .../login -d '{\"email\":\"...\",\"password\":\"...\"}'\n   # Create new mind\n   curl -X POST .../minds -H \"Authorization: Bearer YOUR_JWT\" -d '{\"name\":\"new mind\"}'\n   ```\n\n## Issue: npx Not Found\n\n### Symptoms\n\n- Error: \"npx: command not found\"\n- MCP server fails to start\n\n### Solutions\n\n1. **Install Node.js 18+**:\n   - macOS: `brew install node` or download from <https://nodejs.org>\n   - Linux: `curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt install -y nodejs`\n   - Windows: download from <https://nodejs.org>\n2. **Restart terminal** after install\n3. **Verify**: `node --version && npx --version`\n\n## Issue: SYNAPSE_URL Unreachable\n\n### Symptoms\n\n- MCP server starts but tool calls time out\n- Error: \"fetch failed\" or \"ECONNREFUSED\"\n\n### Solutions\n\n1. **Test connectivity**:\n   ```bash\n   curl https://synapse.schaefer.zone/health\n   ```\n2. **Check corporate firewall** — may block outbound HTTPS\n3. **Try alternative URL**:\n   - Production: `https://synapse.schaefer.zone`\n   - MCP server: `https://synapse-mcp.schaefer.zone`\n4. **For self-hosted**: ensure your Synapse instance is running and accessible\n\n## Issue: MCP Server Crashes\n\n### Symptoms\n\n- MCP server exits immediately after start\n- Client logs show \"MCP server disconnected\"\n\n### Solutions\n\n1. **Run manually to see error**:\n   ```bash\n   SYNAPSE_MIND_KEY=mk_... SYNAPSE_URL=https://synapse.schaefer.zone \\\n     npx -y synapse-mcp-api@latest\n   ```\n2. **Check for port conflicts** — MCP server uses port 13100 by default\n3. **Clear npx cache**:\n   ```bash\n   npx clear-npx-cache\n   # or\n   rm -rf ~/.npm/_npx\n   ```\n4. **Update to latest**:\n   ```bash\n   npx -y synapse-mcp-api@latest --version\n   ```\n\n## Issue: Tool Calls Return 429\n\n### Symptoms\n\n- Error: \"Rate limit exceeded\"\n\n### Solutions\n\nThis shouldn't happen with MCP (uses header auth, no rate limit). If it does:\n\n1. **Check if you're using `?key=` somewhere** — switch to header auth\n2. **Verify `SYNAPSE_URL`** — make sure it points to the right instance\n3. **Contact support** if issue persists\n\n## Issue: Tools Appear but Don't Work\n\n### Symptoms\n\n- Tools listed in client\n- Calling a tool returns an error or no result\n\n### Solutions\n\n1. **Check the tool name** — must be exact (e.g. `memory_recall`, not `memory.recall`)\n2. **Verify arguments** — check the tool's input schema\n3. **Test via direct API**:\n   ```bash\n   curl -X POST https://synapse.schaefer.zone/memory \\\n     -H \"Authorization: Bearer mk_...\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"category\":\"fact\",\"key\":\"test\",\"content\":\"hello\"}'\n   ```\n4. **Check Synapse health**:\n   ```bash\n   curl https://synapse.schaefer.zone/health\n   ```\n\n## Getting Help\n\nIf none of the above solves your issue:\n\n1. **Check existing issues**: <https://gitlab.com/schaefer-services/synapse-mcp/-/issues>\n2. **Open a new issue** with:\n   - MCP server version (`npx -y synapse-mcp-api@latest --version`)\n   - Client name and version\n   - Operating system\n   - Relevant log excerpts\n   - Steps to reproduce\n\n## Next Steps\n\n- [Claude Desktop Setup](/docs/mcp/claude-desktop)\n- [Claude Code Setup](/docs/mcp/claude-code)\n- [API Errors](/docs/api/errors)\n","content_html":"<h1>MCP Troubleshooting</h1>\n<p>Common issues and solutions when integrating Synapse MCP with your LLM client.</p>\n<h2>Quick Diagnostic Checklist</h2>\n<ol>\n<li>✅ Node.js 18+ installed? (<code>node --version</code>)</li>\n<li>✅ Mind Key starts with <code>mk_</code>? (not JWT <code>eyJ...</code>)</li>\n<li>✅ Synapse API reachable? (<code>curl https://synapse.schaefer.zone/health</code>)</li>\n<li>✅ Mind Key works? (<code>curl -H &quot;Authorization: Bearer mk_...&quot; .../memory/recall</code>)</li>\n<li>✅ Config file is valid JSON? (no trailing commas, no comments)</li>\n<li>✅ Client restarted after config change?</li>\n<li>✅ MCP server starts manually? (<code>npx -y synapse-mcp-api@latest</code>)</li>\n</ol>\n<h2>Issue: No Tools Appear in Client</h2>\n<h3>Symptoms</h3>\n<ul>\n<li>Claude Desktop / Cursor / Continue shows 0 tools</li>\n<li>No 🔌 icon or &quot;synapse&quot; entry in MCP servers list</li>\n</ul>\n<h3>Solutions</h3>\n<ol>\n<li><strong>Restart client fully</strong> — Cmd+Q on macOS (not just close window)</li>\n<li><strong>Check config file location</strong>:<ul>\n<li>Claude Desktop macOS: <code>~/Library/Application Support/Claude/claude_desktop_config.json</code></li>\n<li>Claude Desktop Windows: <code>%APPDATA%\\Claude\\claude_desktop_config.json</code></li>\n<li>Cursor: <code>~/.cursor/config.json</code></li>\n<li>Continue: <code>~/.continue/config.json</code></li>\n</ul>\n</li>\n<li><strong>Validate JSON</strong> — paste config into <a href=\"https://jsonlint.com\">https://jsonlint.com</a></li>\n<li><strong>Check client logs</strong> for MCP errors:<ul>\n<li>Claude Desktop: <code>~/Library/Logs/Claude/mcp.log</code> (macOS)</li>\n<li>Cursor: View → Output → MCP</li>\n</ul>\n</li>\n<li><strong>Run MCP server manually</strong> to see startup errors:<pre><code class=\"hljs language-bash\">SYNAPSE_MIND_KEY=mk_... npx -y synapse-mcp-api@latest</code></pre></li>\n</ol>\n<h2>Issue: &quot;Mind Key invalid&quot; Error</h2>\n<h3>Symptoms</h3>\n<ul>\n<li>Tools appear but calls fail with &quot;401 Unauthorized&quot;</li>\n<li>Error: &quot;Mind Key fehlt oder ungültig&quot;</li>\n</ul>\n<h3>Solutions</h3>\n<ol>\n<li><strong>Verify Mind Key format</strong> — starts with <code>mk_</code>, ~40 characters</li>\n<li><strong>Test directly</strong>:<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer mk_YOUR_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/memory/recall</code></pre></li>\n<li><strong>Check env var is set</strong> — for stdio transport, the env var must be in the\nMCP server config, not your shell</li>\n<li><strong>Get a fresh Mind Key</strong>:<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Login to get JWT</span>\ncurl -X POST .../login -d <span class=\"hljs-string\">&#x27;{&quot;email&quot;:&quot;...&quot;,&quot;password&quot;:&quot;...&quot;}&#x27;</span>\n<span class=\"hljs-comment\"># Create new mind</span>\ncurl -X POST .../minds -H <span class=\"hljs-string\">&quot;Authorization: Bearer YOUR_JWT&quot;</span> -d <span class=\"hljs-string\">&#x27;{&quot;name&quot;:&quot;new mind&quot;}&#x27;</span></code></pre></li>\n</ol>\n<h2>Issue: npx Not Found</h2>\n<h3>Symptoms</h3>\n<ul>\n<li>Error: &quot;npx: command not found&quot;</li>\n<li>MCP server fails to start</li>\n</ul>\n<h3>Solutions</h3>\n<ol>\n<li><strong>Install Node.js 18+</strong>:<ul>\n<li>macOS: <code>brew install node</code> or download from <a href=\"https://nodejs.org\">https://nodejs.org</a></li>\n<li>Linux: <code>curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &amp;&amp; sudo apt install -y nodejs</code></li>\n<li>Windows: download from <a href=\"https://nodejs.org\">https://nodejs.org</a></li>\n</ul>\n</li>\n<li><strong>Restart terminal</strong> after install</li>\n<li><strong>Verify</strong>: <code>node --version &amp;&amp; npx --version</code></li>\n</ol>\n<h2>Issue: SYNAPSE_URL Unreachable</h2>\n<h3>Symptoms</h3>\n<ul>\n<li>MCP server starts but tool calls time out</li>\n<li>Error: &quot;fetch failed&quot; or &quot;ECONNREFUSED&quot;</li>\n</ul>\n<h3>Solutions</h3>\n<ol>\n<li><strong>Test connectivity</strong>:<pre><code class=\"hljs language-bash\">curl https://synapse.schaefer.zone/health</code></pre></li>\n<li><strong>Check corporate firewall</strong> — may block outbound HTTPS</li>\n<li><strong>Try alternative URL</strong>:<ul>\n<li>Production: <code>https://synapse.schaefer.zone</code></li>\n<li>MCP server: <code>https://synapse-mcp.schaefer.zone</code></li>\n</ul>\n</li>\n<li><strong>For self-hosted</strong>: ensure your Synapse instance is running and accessible</li>\n</ol>\n<h2>Issue: MCP Server Crashes</h2>\n<h3>Symptoms</h3>\n<ul>\n<li>MCP server exits immediately after start</li>\n<li>Client logs show &quot;MCP server disconnected&quot;</li>\n</ul>\n<h3>Solutions</h3>\n<ol>\n<li><strong>Run manually to see error</strong>:<pre><code class=\"hljs language-bash\">SYNAPSE_MIND_KEY=mk_... SYNAPSE_URL=https://synapse.schaefer.zone \\\n  npx -y synapse-mcp-api@latest</code></pre></li>\n<li><strong>Check for port conflicts</strong> — MCP server uses port 13100 by default</li>\n<li><strong>Clear npx cache</strong>:<pre><code class=\"hljs language-bash\">npx clear-npx-cache\n<span class=\"hljs-comment\"># or</span>\n<span class=\"hljs-built_in\">rm</span> -rf ~/.npm/_npx</code></pre></li>\n<li><strong>Update to latest</strong>:<pre><code class=\"hljs language-bash\">npx -y synapse-mcp-api@latest --version</code></pre></li>\n</ol>\n<h2>Issue: Tool Calls Return 429</h2>\n<h3>Symptoms</h3>\n<ul>\n<li>Error: &quot;Rate limit exceeded&quot;</li>\n</ul>\n<h3>Solutions</h3>\n<p>This shouldn&#39;t happen with MCP (uses header auth, no rate limit). If it does:</p>\n<ol>\n<li><strong>Check if you&#39;re using <code>?key=</code> somewhere</strong> — switch to header auth</li>\n<li><strong>Verify <code>SYNAPSE_URL</code></strong> — make sure it points to the right instance</li>\n<li><strong>Contact support</strong> if issue persists</li>\n</ol>\n<h2>Issue: Tools Appear but Don&#39;t Work</h2>\n<h3>Symptoms</h3>\n<ul>\n<li>Tools listed in client</li>\n<li>Calling a tool returns an error or no result</li>\n</ul>\n<h3>Solutions</h3>\n<ol>\n<li><strong>Check the tool name</strong> — must be exact (e.g. <code>memory_recall</code>, not <code>memory.recall</code>)</li>\n<li><strong>Verify arguments</strong> — check the tool&#39;s input schema</li>\n<li><strong>Test via direct API</strong>:<pre><code class=\"hljs language-bash\">curl -X POST https://synapse.schaefer.zone/memory \\\n  -H <span class=\"hljs-string\">&quot;Authorization: Bearer mk_...&quot;</span> \\\n  -H <span class=\"hljs-string\">&quot;Content-Type: application/json&quot;</span> \\\n  -d <span class=\"hljs-string\">&#x27;{&quot;category&quot;:&quot;fact&quot;,&quot;key&quot;:&quot;test&quot;,&quot;content&quot;:&quot;hello&quot;}&#x27;</span></code></pre></li>\n<li><strong>Check Synapse health</strong>:<pre><code class=\"hljs language-bash\">curl https://synapse.schaefer.zone/health</code></pre></li>\n</ol>\n<h2>Getting Help</h2>\n<p>If none of the above solves your issue:</p>\n<ol>\n<li><strong>Check existing issues</strong>: <a href=\"https://gitlab.com/schaefer-services/synapse-mcp/-/issues\">https://gitlab.com/schaefer-services/synapse-mcp/-/issues</a></li>\n<li><strong>Open a new issue</strong> with:<ul>\n<li>MCP server version (<code>npx -y synapse-mcp-api@latest --version</code>)</li>\n<li>Client name and version</li>\n<li>Operating system</li>\n<li>Relevant log excerpts</li>\n<li>Steps to reproduce</li>\n</ul>\n</li>\n</ol>\n<h2>Next Steps</h2>\n<ul>\n<li><a href=\"/docs/mcp/claude-desktop\">Claude Desktop Setup</a></li>\n<li><a href=\"/docs/mcp/claude-code\">Claude Code Setup</a></li>\n<li><a href=\"/docs/api/errors\">API Errors</a></li>\n</ul>\n","urls":{"html":"/docs/mcp/troubleshooting","text":"/docs/mcp/troubleshooting?format=text","json":"/docs/mcp/troubleshooting?format=json","llm":"/docs/mcp/troubleshooting?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}