Describe the problem/error/question
Hi,
I enabled MCP instance level on our self hosted n8n version 2.14.2. I enabled one workflow. I added the the json snippet to `calude_desktop_config.json`:
{
"mcpServers": {
"n8n-mcp": {
"type": "http",
"url": "https://my-dns/mcp-server/http",
"headers": {
"Authorization": "Bearer <YOUR_ACCESS_TOKEN_HERE>"
}
}
}
}
When I add it to claude desktop and restart I get the a popup error:
The following entries in claude_desktop_config.json are not valid MCP server configurations and were skipped: n8n-mcp
What is the error message (if any)?
Please share your workflow
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
Share the output returned by the last node
Information on your n8n setup
- n8n version: 2.14.2
- Database (default: SQLite): Postgres
- n8n EXECUTIONS_PROCESS setting (default: own, main): default
- Running n8n via (Docker, npm, n8n cloud, desktop app): k8s
- Operating system: Amazon Linux
Hi @Chanan_Braunstein Welcome!
I think you should first update your claude desktop to the latest version, and then if that does not work the best workaround to this would be to use npx mcp-remote as it will proxy the http request, and i hope your Node.js version is the latest.
One thing I noticed in your config snippet: the Authorization header shows just "Bearer " without the actual token value. That alone would cause Claude to reject the connection.
Make sure the full value is: “Bearer YOUR_ACTUAL_N8N_API_KEY” where you replace YOUR_ACTUAL_N8N_API_KEY with the token you generated in n8n under Settings > API. If the token is there but you just redacted it for the post, then Anshul’s suggestion about updating Claude Desktop and trying npx mcp-remote as a proxy is definitely the right direction.
Also worth checking: in n8n 2.14 the MCP server path might need to end with /mcp not /mcp-server/http. Check the exact URL shown in the n8n UI when you enable the MCP feature on that workflow.
The token I am using is the token in the MCP Instance screen. If I use it in a curl to the address of the MCP server I do get a 200 ok.
Are you saying that the instrucitons in the docs are wrong? Set up and use n8n MCP server | n8n Docs - these instructions show using type: http.
hi @Chanan_Braunstein
from my point of view, the current n8n docs do show HTTP-based MCP access with /mcp-server/http and a Bearer token. What your test suggests is that n8n is reachable, but Claude Desktop is rejecting that JSON entry as an invalid client config before it even gets to the auth step, so this looks more like a Claude Desktop config/client-format issue than an n8n MCP token issue.
As a workaround, I would validate the config against the latest Claude Desktop MCP schema, update Claude Desktop to the newest version, and if it still rejects type: “http”, switch to the documented mcp-remote/stdio bridge temporarily until native HTTP MCP configs are accepted by that client version.
Good catch, @Chanan_Braunstein I should have been more precise.
The docs are correct that type: "http" is the right config format. What I was getting at is that Claude Desktop’s actual support for HTTP transport in the config file has been inconsistent some users report it working fine, others hit issues depending on their Claude Desktop version and OS.
If type: "http" works for you out of the box following the docs perfect, that’s the cleanest path. My suggestions were intended as fallbacks for people who run into connection issues with that approach (which does happen, especially on older Desktop versions or behind proxies).
The k8s sticky session point still stands regardless of which method you use that one bit me personally.
Thanks for flagging it, didn’t mean to imply the docs are wrong.
Sadly, none of the replies on this thread actually solve the issue