claude desktop extension #217

Open
opened 2026-06-05 05:37:40 +00:00 by flare04 · 3 comments
flare04 commented 2026-06-05 05:37:40 +00:00 (Migrated from codeberg.org)

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

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 `
goern commented 2026-06-05 06:51:05 +00:00 (Migrated from codeberg.org)

/triage

/triage
op1st-gitops commented 2026-06-05 06:53:08 +00:00 (Migrated from codeberg.org)

🤖 Automated triage

This issue needs a bit more detail before it can be triaged:

Which version of forgejo-mcp are you running, and how is the server transport configured (SSE or StreamableHTTP) — and could you share the relevant section of your forgejo-mcp configuration?

No labels were applied. Please follow up and re-run /triage.

🤖 **Automated triage** This issue needs a bit more detail before it can be triaged: > Which version of forgejo-mcp are you running, and how is the server transport configured (SSE or StreamableHTTP) — and could you share the relevant section of your forgejo-mcp configuration? _No labels were applied. Please follow up and re-run `/triage`._ <!-- ca-pipeline:triage:issue=217 -->
goern commented 2026-06-05 07:11:42 +00:00 (Migrated from codeberg.org)

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: --urlflagPkg.URLforgejo.NewClient(flag.URL) → SDK strings.TrimSuffix(url, "/"). No port is ever appended to the Forgejo URL. The 8080 default 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 treating https://mcp.example.org/mcp as a Forgejo instance base URL and appending /api/v1/version. That means FORGEJO_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 :8080 symptom

Can'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:

  1. Are you using the .dxt Claude Desktop extension, or manually configuring a remote MCP server URL in Claude Desktop settings?
  2. What transport mode is forgejo-mcp running in on the server — stdio, sse, or http?
  3. What value did you put in the Forgejo URL field? Is it your actual Forgejo instance (e.g. https://codeberg.org) or the MCP server endpoint?
  4. If running a remote server: what does your nginx (or other proxy) config look like for the /mcp location?
  5. forgejo-mcp version output?
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)` → SDK `strings.TrimSuffix(url, "/")`. No port is ever appended to the Forgejo URL. The `8080` default 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 treating `https://mcp.example.org/mcp` as a Forgejo instance base URL and appending `/api/v1/version`. That means `FORGEJO_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 `:8080` symptom** Can'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:** 1. Are you using the `.dxt` Claude Desktop extension, or manually configuring a remote MCP server URL in Claude Desktop settings? 2. What transport mode is forgejo-mcp running in on the server — `stdio`, `sse`, or `http`? 3. What value did you put in the *Forgejo URL* field? Is it your actual Forgejo instance (e.g. `https://codeberg.org`) or the MCP server endpoint? 4. If running a remote server: what does your nginx (or other proxy) config look like for the `/mcp` location? 5. `forgejo-mcp version` output?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
agentic-forges/forgejo-mcp#217
No description provided.