概述
这款应用通过将Streamable HTTP MCP服务器转换为Stdio接口,使您能够使用该服务器。作为一个关键特性,它通过移除(某些元素)来强制实现无状态行为 mcp-session-id 每次请求时都如此。
使用方法
安装
uv add mcp-proxy-stateless
示例MCP客户端配置
{
"mcpServers": {
"lf-agents": {
"command": "uvx",
"args": [
"mcp-proxy-stateless",
"--insecure",
"--timeout",
"300",
"--headers",
"x-api-key",
"YOUR_API_KEY",
"https://your_mcp_domain/mcp"
]
}
}
}先决条件
- MCP服务器必须支持可流式传输的HTTP。
- 不支持SSE。
注释
- 对于需要API密钥的服务器,您可以指定
--headers KEY VALUE多次。 - 如果需要CA证书,请指定
--ssl-cert-file /path/to/cacert.pem(仅适用于MCP连接)。为了快速测试,请设置--insecure跳过HTTPS验证。该SSL_CERT_FILE环境变量也支持,但使用时--ssl-cert-file建议避免影响整个环境。
超时
- 每个请求(如初始化 / 列出工具 / 调用工具等)的默认总体超时时间为120秒。
- 要更改它,请使用
--timeout SECONDS。
- 示例: uvx mcp-proxy-stateless --timeout 300 https://example/mcp
- 此值同样适用于HTTP(httpx)超时设置,以稳定长时间运行操作的连接。
CLI 选项
| 选项 | 描述 | 默认值 | 示例 |
|---|---|---|---|
url | 目标可流式传输的HTTP MCP终端节点(必需) | 无(必需) | https://your_mcp_streamable_http_endpoint/mcp |
-H KEY VALUE / --headers KEY VALUE 添加额外的HTTP头(API密钥等)。 mcp-session-id 总是被移除 | 无 | --headers x-api-key YOUR_API_KEY, --headers Authorization "Bearer YOUR_TOKEN" | |
--insecure / --no-insecure | 禁用/启用TLS证书验证 | 验证已启用 (--no-insecure) | 禁用: --insecure / 推荐: SSL_CERT_FILE=/path/to/cacert.pem uvx mcp-proxy-stateless ... |
--timeout SECONDS | 每个请求的总体超时时间(初始化/列出工具/调用工具等) | 120 (或者 MCP_PROXY_TIMEOUT 环境变量) | --timeout 300, MCP_PROXY_TIMEOUT=300 uvx mcp-proxy-stateless ... |
--ssl-cert-file PATH | 仅用于MCP连接的CA证书包 | 无(系统/默认信任库) | --ssl-cert-file /path/to/cacert.pem |
--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL} | 日志详细程度 | INFO | --log-level DEBUG |
TLS 验证(私有 CA / 自签名)
- 添加
--insecure禁用远程终端的TLS证书验证。
- 示例: uvx mcp-proxy-stateless --insecure --headers x-api-key YOUR_API_KEY https://example/mcp
- 建议:提供CA证书以保持验证功能启用。
- 示例: uvx mcp-proxy-stateless --ssl-cert-file /path/to/cacert.pem https://example/mcp - 兼容性:环境变量 SSL_CERT_FILE=/path/to/cacert.pem 同样有效(在未指定时作为备用方案)。 - 注: --ssl-cert-file 仅适用于用于MCP连接的httpx客户端,且不影响 uvx 依赖解析(PyPI 连接)。
测试(紫外线)
- 同步依赖项
- uv sync
- 运行所有测试
- uv run -m unittest discover -s test -v
- 运行特定测试
- 从终端用户角度进行的MCP客户端测试: uv run -m unittest test/test_client_user.py -v - 更狭窄的情况: uv run -m unittest test.test_client_user.TestClientLike.test_my_mcp_insecure -v
- 环境变量
- .env 如果存在,则自动加载。主要用途: - TEST_URL_PLAYWRIGHT用于测试的PlaywrightMCP端点的URL(例如。, https://.../mcp)。
- 配置文件
- 你可以在(系统/软件中)准备MCP设置 test/test_mcp_servers.json如果你包含 ${TEST_URL_PLAYWRIGHT} 在URL中,它将使用来自(某处的)值进行展开 .env。
URLs(统一资源定位符)
PyPI
https://pypi.org/project/mcp-proxy-stateless/ 的中文翻译可以是:“https://pypi.org 上的项目 mcp-proxy-stateless”。不过,通常我们不会直接翻译网址,而是保留原样,同时在中文语境下解释其含义或用途。但按照您的要求,直接翻译网址部分(即网址中的文字部分)可以如上所述。如果需要更完整的表述,可以说:“这是 Python 包索引(PyPI)上的一个项目链接:mcp-proxy-stateless”
Git
https://github.com/post-class/mcp_proxy_stateless 翻译为中文是:“https://github.com/post-class/mcp无状态代理”
