Expand description
构建并返回挂载于 /mcp 的 axum 子路由。
装配:
- rmcp
StreamableHttpService(无状态、JSON 响应、Origin 白名单 + Host 白名单); - 本 crate 的
mcp_auth_middleware(bearer → McpPrincipal,注入 extensions);
两道白名单都源自 APP_BASE_URL:
- Origin:整串(含 scheme),rmcp 按 scheme+host 校验
Origin头; - Host:仅 host 部分,加入 rmcp 的 DNS-rebinding 防护默认表(localhost/127.0.0.1/::1)。
生产反代
proxy_set_header Host $host会把真实域名转发进来,必须加入否则 rmcp 一律 403。
未设置 APP_BASE_URL 则两者均空(rmcp 对缺 Origin 放行;Host 回退默认表仅本地可用)。
开发期额外放行 0.0.0.0(dx 代理改写 Host 的容错),生产域名态保持严格。
生产部署 MUST 设置 APP_BASE_URL(见 docs/DEPLOYMENT.md)。
协议版本头、体积上限(4MiB 默认)由 rmcp 内置,无需此处重复。
Functions§
- mcp_
route - 构建
/mcp子路由(供 main.rs 的.merge(mcp_route)合并)。