 
|
3c8578e9f4
|
feat(mcp): add Streamable HTTP transport (#736)
* feat(mcp): add Streamable HTTP transport
Add a modern MCP 2026-07-28 HTTP endpoint for standalone and Web modes, with shared listener configuration, authentication, schema, tests, and bilingual documentation.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* fix(tests): support Python 2 HTTP assertions
Normalize response header names and call handler methods through their underlying functions so the HTTP tests behave consistently on Python 2.7 and Python 3.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* fix(mcp): harden HTTP request handling
Validate mirrored request IDs, align Config Studio listener checks, bound socket reads, and accept the binary wrapper's documented SIGINT exit status.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* fix(mcp): align HTTP negotiation validation
Reject unavailable Accept media types by quality and keep schema host validation consistent with runtime listener checks.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* fix(tests): validate host schema behavior
Assert accepted and rejected host samples instead of comparing Unicode escape representations that differ on Python 2.7.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* fix(tests): avoid cross-engine schema regex
Keep the schema pattern contract without executing its ECMA-262 Unicode escape through Python 2's incompatible regex engine.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* fix(mcp): validate HTTP request boundaries
Reject empty tokens and malformed JSON-RPC request shapes, and keep Config Studio bracket validation aligned with runtime listener handling.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* fix(mcp): tighten HTTP input validation
Reject legacy notifications, nested host brackets, and document the required JSON content type so validation remains consistent across runtime, schema, and Config Studio.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* fix(mcp): validate Origin before method errors
Apply the existing Origin policy to non-POST MCP requests and return CORS headers for configured allowed origins.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* docs(mcp): clarify proxy Origin allowlist
Explain that browser clients behind TLS termination must allowlist the public HTTPS origin even when the public page appears same-origin.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* docs(mcp): add standalone server guide
Move MCP client setup, transports, tools, security, and protocol limits into dedicated Chinese and English pages with matching navigation and index links.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* fix(mcp): reject duplicate routing headers
Reject repeated MCP protocol, method, and name headers before body consistency checks across Python 2 and Python 3.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* fix(mcp): validate named request headers
Validate Mcp-Name for tools/call, prompts/get, and resources/read before dispatching unsupported methods.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
2026-08-23 21:36:26 +08:00 |
|