Skip to content

fix(mcp): secure HTTP bind and sync tool contract - #8

Merged
dajiaohuang merged 1 commit into
mainfrom
fix/mcp-contract-boundaries
Aug 27, 2026
Merged

fix(mcp): secure HTTP bind and sync tool contract#8
dajiaohuang merged 1 commit into
mainfrom
fix/mcp-contract-boundaries

Conversation

@dajiaohuang

Copy link
Copy Markdown
Contributor

Summary

  • require a valid signed auth-context secret before the raw D&D Streamable HTTP server may bind to a non-loopback host
  • keep stdio, unsigned loopback HTTP, and Hosted 0.0.0.0 plus signed-secret deployments compatible
  • align the Skill MCP reference with the runtime's seven CORE_TOOLS, including resolution_presentation
  • add regressions that compare the documented core-tool set with runtime policy and cover rejected/allowed non-loopback startup

Security boundary

The Workbench gateway bearer token protects the gateway only. This change prevents an operator from exposing the underlying MCP listener without the signed principal context that Hosted deployments already provide.

Validation

  • uv run --no-sync --package sagasmith-dnd-mcp pytest packages/mcp/tests/test_streamable_http_runtime.py packages/mcp/tests/test_skill_contract_reference.py -q
  • uv run --no-sync --package sagasmith-dnd-mcp pytest packages/mcp/tests -q
  • uv run --no-sync ruff check packages/domain packages/mcp
  • uv build --package sagasmith-dnd-mcp --out-dir .artifacts/dist
  • git diff --check

@dajiaohuang
dajiaohuang merged commit 02e2353 into main Aug 27, 2026
6 checks passed
@dajiaohuang
dajiaohuang deleted the fix/mcp-contract-boundaries branch August 27, 2026 14:26
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.

1 participant