Skip to content

feat: add Streamable HTTP transport support#326

Open
keykbd wants to merge 1 commit into
kintone:mainfrom
keykbd:main
Open

feat: add Streamable HTTP transport support#326
keykbd wants to merge 1 commit into
kintone:mainfrom
keykbd:main

Conversation

@keykbd
Copy link
Copy Markdown

@keykbd keykbd commented Mar 4, 2026

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

  • Add --transport http to start in Streamable HTTP mode (default remains stdio)
  • No new runtime dependencies (uses SDK built-in StreamableHTTPServerTransport + node:http)
  • Stateless mode (each request creates an independent session)
  • Tests added (14 for HTTP server, 9 for config parsing)

Out of scope (planned for a follow-up PR):

How to test

pnpm build && pnpm test && pnpm lint

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/mcp

Checklist

  • Updated documentation if it is required.
  • Added tests if it is required.
  • Passed pnpm lint and pnpm test on the root directory.

cc @nameless-mc @shabaraba @neos-nozaki

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)
@keykbd keykbd requested a review from a team as a code owner March 4, 2026 03:47
@keykbd keykbd requested review from chihiro-adachi and nameless-mc and removed request for a team March 4, 2026 03:47
@shabaraba
Copy link
Copy Markdown
Member

@keykbd
Thank you for creating the PR. We'll take a look later!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants