claude desktop extension #217
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/OpenSpec
Kind/Security
Kind/Testing
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
RFC - Request For Comments
Reviewed/Confirmed
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Status/Abandoned
Status/Blocked
Status/Need More Info
hermes-attempted
hermes-needs-clarification
hermes-ready
hermes-review
hermes-wip
human-required
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
agentic-forges/forgejo-mcp#217
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
using the URL https://mcp.example.org/mcp the extension always adds port 8080
using the URL https://mcp.example.or:443g/mcp overcomes the above and it connects and then fails with this log
Request: '/mcp/api/v1/version' with 'GET' method and 'Accept must contain 'text/event-stream' for GET requests ' body codeberg.org/goern/forgejo-mcp/v2/pkg/forgejo.Client.func1 /Users/user/Projects/forgejo-mcp/pkg/forgejo/forgejo.go:76 sync.(*Once).doSlow /opt/homebrew/Cellar/go/1.26.3/libexec/src/sync/once.go:78 sync.(*Once).Do /opt/homebrew/Cellar/go/1.26.3/libexec/src/sync/once.go:69 codeberg.org/goern/forgejo-mcp/v2/pkg/forgejo.Client /Users/user/Projects/forgejo-mcp/pkg/forgejo/forgejo.go:57 codeberg.org/goern/forgejo-mcp/v2/pkg/forgejo.VerifyConnection /Users/user/Projects/forgejo-mcp/pkg/forgejo/forgejo.go:105 codeberg.org/goern/forgejo-mcp/v2/operation.testConnection /Users/user/Projects/forgejo-mcp/operation/operation.go:216 codeberg.org/goern/forgejo-mcp/v2/operation.Run /Users/user/Projects/forgejo-mcp/operation/operation.go:139 codeberg.org/goern/forgejo-mcp/v2/cmd.Execute /Users/user/Projects/forgejo-mcp/cmd/cmd.go:250 main.main /Users/user/Projects/forgejo-mcp/main.go:17 runtime.main /opt/homebrew/Cellar/go/1.26.3/libexec/src/runtime/proc.go:290 2026-06-05T05:20:24.110Z [Forgejo] [info] Server transport closed { metadata: undefined } 2026-06-05T05:20:24.110Z [Forgejo] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e.console.error('...')in JavaScript,print('...', file=sys.stderr)in python) and it will appear in this log. { metadata: undefined } 2026-06-05T05:20:24.110Z [Forgejo] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) { metadata: { context: 'connection', stack: undefined } } 2026-06-05T05:20:24.110Z [Forgejo] [info] Client transport closed { metadata: undefined } 2026-06-05T05:20:24.110Z [Forgejo] [info] Client transport closed { metadata: undefined } 2026-06-05T05:20:24.111Z [Forgejo] [info] Server transport closed { metadata: undefined } 2026-06-05T05:20:24.111Z [Forgejo] [info] Client transport closed { metadata: undefined }The reverse proxy doesn't report an error
[05/Jun/2026:15:20:24 +1000] x.x.x.x TLSv1.3 TLS_AES_256_GCM_SHA384 "GET /mcp/api/v1/version HTTP/1.1" 57 [05/Jun/2026:15:20:24 +1000] x.x.x.x TLSv1.3 TLS_AES_256_GCM_SHA384 "GET /mcp/api/v1/version HTTP/1.1" 57 [05/Jun/2026:15:17:24 +1000] x.x.x.x TLSv1.3 TLS_AES_256_GCM_SHA384 "GET /mcp HTTP/1.1" - [05/Jun/2026:15:20:24 +1000] x.x.x.x TLSv1.3 TLS_AES_256_GCM_SHA384 "POST /mcp HTTP/1.1" 343 [05/Jun/2026:15:20:24 +1000] x.x.x.x TLSv1.3 TLS_AES_256_GCM_SHA384 "POST /mcp HTTP/1.1" - [05/Jun/2026:15:20:24 +1000] x.x.x.x TLSv1.3 TLS_AES_256_GCM_SHA384 "POST /mcp HTTP/1.1" 35623/triage
🤖 Automated triage
This issue needs a bit more detail before it can be triaged:
No labels were applied. Please follow up and re-run
/triage.The automated triage didn't get us far, so adding some manual analysis — but this is mostly speculation without more detail from you.
What the code does NOT do
Traced the full path:
--url→flagPkg.URL→forgejo.NewClient(flag.URL)→ SDKstrings.TrimSuffix(url, "/"). No port is ever appended to the Forgejo URL. The8080default only controls the local SSE/HTTP listener (--sse-port/--http-port); it never appears in any outgoing URL or in anything sent back to MCP clients.What the logs suggest
Your reverse proxy received
GET /mcp/api/v1/version— that's the Forgejo SDK treatinghttps://mcp.example.org/mcpas a Forgejo instance base URL and appending/api/v1/version. That meansFORGEJO_URL(or the extension's Forgejo URL field) is set to your MCP server's endpoint, not to your actual Forgejo instance. Those need to be different values.The "Accept must contain 'text/event-stream'" error is the streamable-HTTP transport rejecting a plain GET — confirming the SDK is hitting the MCP server, not Forgejo.
The
:8080symptomCan't reproduce this from the server side. The client-side workaround (explicit
:443) points toward the MCP client (Claude Desktop) defaulting to port 8080 when no port is given — not forgejo-mcp doing anything wrong. But we need more context to be sure.To move forward, please share:
.dxtClaude Desktop extension, or manually configuring a remote MCP server URL in Claude Desktop settings?stdio,sse, orhttp?https://codeberg.org) or the MCP server endpoint?/mcplocation?forgejo-mcp versionoutput?