feat: add streamable HTTP transport support #99

Closed
opened 2026-03-27 17:07:15 +00:00 by Vokuar · 4 comments
Vokuar commented 2026-03-27 17:07:15 +00:00 (Migrated from codeberg.org)

Feature Request

Currently forgejo-mcp only supports stdio and sse transports. As of MCP spec 2025-03-26, streamable HTTP is the recommended transport and is required for compatibility with Claude.ai's custom MCP connector.

Problem

Claude.ai's connector beta does not properly discover tools from SSE-based MCP servers. SSE is also on a deprecation path in the MCP spec and in Claude Code.

Request

Add --transport http (streamable HTTP) support so forgejo-mcp can be used directly with Claude.ai connectors and other clients that require the newer transport.

References

## Feature Request Currently `forgejo-mcp` only supports `stdio` and `sse` transports. As of MCP spec `2025-03-26`, **streamable HTTP** is the recommended transport and is required for compatibility with Claude.ai's custom MCP connector. ## Problem Claude.ai's connector beta does not properly discover tools from SSE-based MCP servers. SSE is also on a deprecation path in the MCP spec and in Claude Code. ## Request Add `--transport http` (streamable HTTP) support so forgejo-mcp can be used directly with Claude.ai connectors and other clients that require the newer transport. ## References - MCP spec `2025-03-26`: streamable HTTP transport - [Claude.ai MCP connector docs](https://support.claude.com/en/articles/11503834-building-custom-connectors-via-remote-mcp-servers) - Claude Code already marks SSE as deprecated
goern commented 2026-03-27 23:13:42 +00:00 (Migrated from codeberg.org)

This has been implemented in PR #101 and merged to main.

@Vokuar could you please test it and confirm it works for your use case? You can try:

forgejo-mcp --transport http --url <your-forgejo-url> --token <your-token>

The server will listen on port 8080 by default (configurable via --http-port). Let us know if you run into any issues!

This has been implemented in PR #101 and merged to main. @Vokuar could you please test it and confirm it works for your use case? You can try: ```bash forgejo-mcp --transport http --url <your-forgejo-url> --token <your-token> ``` The server will listen on port 8080 by default (configurable via `--http-port`). Let us know if you run into any issues!
Vokuar commented 2026-04-05 17:14:41 +00:00 (Migrated from codeberg.org)

Tested PR #101 on Windows 11 against Codeberg, confirmed working.

Build:

forgejo-mcp v2.16.1-0.20260327230929-885e9c0f7c35+dirty

Built from the pr-101 branch via git fetch origin pull/101/head:pr-101 && go build.

Test run:

forgejo-mcp --transport http --url https://codeberg.org --token <token> --http-port 8080

Output:

INFO  Server configuration loaded  {"transport": "http", "sse-port": 8080, ...}
INFO  Connection verification successful  {"authenticated_user": "Vokuar", "response_status": 200}
INFO  Starting MCP streamable HTTP server  {"port": 8080}
INFO  MCP streamable HTTP server ready for connections  {"port": 8080, "endpoint": "http://localhost:8080"}

Claude Code connected to http://localhost:8080 and tools were discovered and callable successfully. my personal Codeberg accounts confirmed working via the HTTP transport.

--transport invalid correctly errors with Must be 'stdio' or 'sse' on the old build and is accepted on the PR branch.

Tested PR #101 on Windows 11 against Codeberg, confirmed working. **Build:** ``` forgejo-mcp v2.16.1-0.20260327230929-885e9c0f7c35+dirty ``` Built from the `pr-101` branch via `git fetch origin pull/101/head:pr-101 && go build`. **Test run:** ``` forgejo-mcp --transport http --url https://codeberg.org --token <token> --http-port 8080 ``` **Output:** ``` INFO Server configuration loaded {"transport": "http", "sse-port": 8080, ...} INFO Connection verification successful {"authenticated_user": "Vokuar", "response_status": 200} INFO Starting MCP streamable HTTP server {"port": 8080} INFO MCP streamable HTTP server ready for connections {"port": 8080, "endpoint": "http://localhost:8080"} ``` Claude Code connected to `http://localhost:8080` and tools were discovered and callable successfully. my personal Codeberg accounts confirmed working via the HTTP transport. `--transport invalid` correctly errors with `Must be 'stdio' or 'sse'` on the old build and is accepted on the PR branch.
goern commented 2026-04-06 09:39:06 +00:00 (Migrated from codeberg.org)

@Vokuar so you are good with the feature? if so, feel free to close the issue again ;)

@Vokuar so you are good with the feature? if so, feel free to close the issue again ;)
Vokuar commented 2026-04-12 00:59:28 +00:00 (Migrated from codeberg.org)

Yes i am thank you greatly

Yes i am thank you greatly
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#99
No description provided.