anthropics / anthropics/claude-ai-mcp

Self-hosted MCP server fails to connect as a custom connector in Claude

Offen
#892 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.