feat: add Streamable HTTP transport support#326
Open
keykbd wants to merge 1 commit into
Open
Conversation
Add --transport http option to start in Streamable HTTP mode (default remains stdio). Uses SDK built-in StreamableHTTPServerTransport + node:http with no new runtime dependencies. - Stateless mode (each request creates an independent session) - Origin header validation, Content-Type check, 1MB body limit - Default 127.0.0.1 bind, --port and --hostname options - Graceful shutdown with SIGTERM/SIGINT handling - Tests added (14 for HTTP server, 9 for config parsing)
Member
|
@keykbd |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Addresses the HTTP transport portion of #304.
Currently the server only supports stdio transport, which requires a 1:1 process
per client. Adding Streamable HTTP transport enables deployment on remote
environments such as AWS AgentCore, or running as a shared MCP server for a team.
What
--transport httpto start in Streamable HTTP mode (default remains stdio)StreamableHTTPServerTransport+node:http)Out of scope (planned for a follow-up PR):
How to test
To manually verify HTTP mode:
KINTONE_BASE_URL=https://example.cybozu.com \ KINTONE_USERNAME=user KINTONE_PASSWORD=pass \ node dist/index.js --transport http # -> HTTP server listening on http://127.0.0.1:3000/mcpChecklist
pnpm lintandpnpm teston the root directory.cc @nameless-mc @shabaraba @neos-nozaki