anthropics / anthropics/claude-ai-mcp

Custom MCP connector fails with INVALID_RESULT dialing error despite provably healthy server

Open
#1,003 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
No language data
Stars
471
Forks
76
PR merge metrics
No merged PRs in 30d

Description

### What happened?

Connecting to our custom MCP server (Moodle webservice_mcp plugin, Streamable HTTP transport) fails every time with an SdkError while dialing the server, even though the server has been verified to respond correctly to all MCP protocol calls via direct testing.

Server URL: https://akademie.conbus.de/webservice/mcp/server.php

During investigation we found and fixed two real server-side bugs:
1. Apache (mod_proxy_fcgi -> PHP-FPM) was not forwarding the Authorization header - fixed with CGIPassAuth On.
2. The plugin returned HTTP 200 with a non-JSON-RPC body on GET requests instead of 405 - patched to return 405/Allow: POST.

After both fixes, direct curl testing confirms the server responds correctly to initialize and tools/list, and authenticates correctly via both the ?wstoken= query parameter and the Authorization: Bearer header.

Despite this, the identical INVALID_RESULT dialing error persists across:
- The original connector (before and after both fixes)
- A fully deleted and recreated connector (different name, query-string auth method)
- A completely separate, fresh chat session

This closely resembles issue #479 (closed as "not planned") - a cached negative verdict not cleared by remove+re-add, despite a server that is provably healthy.

### What did you expect to happen?

The connector should successfully dial the server and load its tools, since the server responds correctly to all MCP protocol calls (verified via curl for initialize and tools/list, with both supported auth methods).

### Steps to reproduce

1. Add a custom MCP connector pointing to https://akademie.conbus.de/webservice/mcp/server.php (auth via ?wstoken= in the URL, or Authorization: Bearer header)
2. Connector shows as connected
3. Attempt to use/refresh the connector's tools
4. See error: SdkError dialing https://api.anthropic.com/v2/ccr-sessions//mcp?mcp_server_id=...&mcp_url=...&toolbox_mcp_server_id=... (INVALID_RESULT)

### Area

Session / Connection Management

### MCP Server (if applicable)

Custom server - Moodle webservice_mcp plugin (Streamable HTTP), self-hosted at akademie.conbus.de

### Error messages or logs

```shell
SdkError dialing https://api.anthropic.com/v2/ccr-sessions//mcp?mcp_server_id=...&mcp_url=...&toolbox_mcp_server_id=... (INVALID_RESULT)
```

### Additional context

Related issue: #479 (closed as "not planned") describes the same symptom - a cached negative verdict not cleared by remove+re-add.

Server-side fixes applied (for reference):
- Apache: added CGIPassAuth On (in a block) so Authorization headers reach PHP-FPM
- Plugin: patched GET handler to return HTTP 405 instead of a non-compliant 200 status blob

Happy to provide further logs or test with new tokens on request.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.