概述
这个工具是一个适配器,用于解决以下情况:当您的MCP客户端仅支持STDIO协议,而目标MCP服务器使用的是StreamableHTTP协议时。
用法
安装
添加MCP转码器到UV(或:在UV中添加MCP转码器)
示例 MCP 客户端配置
{
"mcpServers": {
"lf-agents": {
"command": "uvx",
"args": [
"mcp-transcoder",
"--insecure",
"--timeout",
"300",
"--headers",
"x-api-key",
"YOUR_API_KEY",
"https://your_mcp_domain/mcp"
]
}
}
}先决条件
- MCP服务器必须支持StreamableHTTP。
- 服务器发送事件(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-transcoder --timeout 300 https://example/mcp
- 为提高长时间运行操作的稳定性,相同的值也被应用于HTTP客户端(httpx)的超时设置。
命令行选项
| 选项 | 描述 | 默认值 | 示例 |
|---|---|---|---|
url | 目标StreamableHTTP MCP终端(必需) | 无(必需) | https://your_mcp_streamable_http_endpoint/mcp |
-H KEY VALUE / --headers KEY VALUE 添加额外的HTTP头(例如,API密钥) | 无 | --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-transcoder ... |
--timeout SECONDS | 每个请求的总体超时时间(初始化/列出工具/调用工具等) | 120 (或者 MCP_PROXY_TIMEOUT 环境变量) | --timeout 300, MCP_PROXY_TIMEOUT=300 uvx mcp-transcoder ... |
--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禁用对远程服务器的证书验证。
- 示例: uvx mcp-transcoder --insecure --headers x-api-key YOUR_API_KEY https://example/mcp
- 建议:保持验证功能开启,并提供CA证书作为替代。
- 示例: uvx mcp-transcoder --ssl-cert-file /path/to/cacert.pem https://example/mcp - 注: --ssl-cert-file 仅应用于用于MCP连接的httpx客户端。它不会影响 uvx 依赖解析(例如,与PyPI的连接)。
测试
uv run pytest -qUVX缓存预防措施
为避免因过时缓存引起的问题,请传递(或更新) --isolated --no-cache 到 uvx 测试时的命令。
URLs(统一资源定位符)
PyPI(Python Package Index)
https://pypi.org/project/mcp-transcoder/ 的中文翻译为:“https://pypi.org 上的 mcp-transcoder 项目”
GitHub
https://github.com/post-class/mcp-transcoder/ 翻译为中文是:“https://github.com/post-class/mcp-transcoder/(GitHub上的一个项目链接,可译为‘MCP转码器项目’或保持原链接形式,具体根据上下文决定是否需要翻译链接中的内容)”。不过,通常链接本身不需要翻译,保持原样即可,所以更简洁的翻译可能是直接提及它是GitHub上的一个项目链接,并说明其名称或用途。在这里,为了简洁明了,可以翻译为:“GitHub上的MCP转码器项目链接”
