使用说明
概述
这款应用通过将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
- 从终端用户角度进行的MCP客户端测试:
- 环境变量
.env如果存在,则自动加载。主要用途:TEST_URL_PLAYWRIGHT用于测试的PlaywrightMCP端点的URL(例如。,https://.../mcp)。
- 配置文件
- 你可以在(系统/软件中)准备MCP设置
test/test_mcp_servers.json如果你包含${TEST_URL_PLAYWRIGHT}在URL中,它将使用来自(某处的)值进行展开.env。
- 你可以在(系统/软件中)准备MCP设置
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无状态代理”
