anthropics / anthropics/claude-ai-mcp

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

Ouverte
#892 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
bug
Langage dominant
Aucune donnée de langage
Étoiles
471
Forks
77
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

### 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.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
node.js
Domaine
api, networking
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Active
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.