anthropics / anthropics/claude-ai-mcp
Self-hosted MCP server fails to connect as a custom connector in Claude
- Vorherrschende Sprache
- Keine Sprachdaten
- Sterne
- 471
- Forks
- 77
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
### What happened?
A self-hosted MCP server (Streamable HTTP transport, no OAuth) fails to connect as a custom connector in Claude (both claude.ai web and Claude Desktop) with:
> Couldn't reach [server]. You can check the server URL and verify the server is running.
Reference IDs collected across multiple attempts:
- `ofid_89f5ce8a03a298f3`
- `ofid_abc2c647bb605c64`
- `ofid_980df18b930fa201`
Server-side access logging (added specifically to debug this) shows **zero incoming requests** at the moment of each failed Claude connection attempt, while requests from other external clients (curl, mobile Safari over cellular, i.e. not on the server's home network) at the same URL succeed and are logged normally. This matches the pattern described in #227 and #214 ("zero inbound traffic at edge"), except here there is no OAuth/DCR involved at all — plain query-string API key auth.
### What did you expect to happen?
A self-hosted MCP server can be connected to via Claude Desktop oder claude.ai
### Steps to reproduce
- Implementation: [jezweb/twenty-mcp](https://github.com/jezweb/twenty-mcp), HTTP mode (`dist/http-server.js`), Streamable HTTP transport on `/mcp`.
- Hosted: self-hosted on a Synology NAS, behind DSM's built-in reverse proxy, public hostname under a Synology DDNS domain (`*.synology.me`), Let's Encrypt certificate.
- Auth mode: no OAuth (`AUTH_ENABLED=false`). Credentials passed as a query parameter on the connector URL: `https:///mcp?apiKey=`.
- Connector URL registered in Claude: `https:///mcp?apiKey=...` (redacted here).
### Area
MCP Connector (adding/managing servers)
### MCP Server (if applicable)
_No response_
### Error messages or logs
```shell
> Couldn't reach [server].
Reference IDs collected across multiple attempts:
- `ofid_89f5ce8a03a298f3`
- `ofid_abc2c647bb605c64`
- `ofid_980df18b930fa201`
```
### Additional context
### Environment
- Claude: web (claude.ai) and Claude Desktop, both tested, same result.
- Server: Node 20, `@modelcontextprotocol/sdk` 1.25.2, Streamable HTTP transport, Docker container behind Synology DSM reverse proxy.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Start with the reported connector URL and the HTTP entry point at dist/http-server.js in jezweb/twenty-mcp, then reproduce from Claude web and Claude Desktop while watching the server-side access logs. Compare those attempts with the successful curl and mobile Safari requests; done means the connector reaches the self-hosted server or produces a documented, actionable failure instead of the generic reachability message.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- node.js
- Bereich
- api, networking
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100