Huskylens MCP网桥服务器
一个透明的代理服务器,通过从响应中过滤出不受支持的图像数据,使Claude Desktop(和其他MCP客户端)能够与Huskylens AI相机的嵌入式MCP服务器协同工作。
问题
Huskylens相机有一个嵌入式模型上下文协议(MCP)服务器,该服务器在其 get_recognition_result 工具响应。但是,Claude Desktop的MCP接口无法处理相机返回的图像数据格式,导致“该工具以不受支持的格式返回内容”错误。
Huskylens MCP服务器在相机固件中进行了硬编码,始终返回图像和文本数据,没有请求纯文本响应的选项。
解决方案
这个桥接服务器位于Claude Desktop和Huskylens相机之间,充当透明的过滤代理。 这座桥是并排的 npx mcp-remote -你仍然使用 mcp-remote 将Claude Desktop连接到网桥,然后网桥连接到相机。
连接链:
Claude Desktop → mcp-remote → Bridge Server (this program) → Huskylens Camera桥:
- 双向转发所有MCP协议消息
- 过滤掉
resource_link项目与mimeType: "image/png"来自工具响应 - 保留所有文本/JSON内容,以便Claude可以访问识别数据
- 保持正确的MCP协议消息顺序
特性
- 透明代理:除图像过滤外,所有MCP消息均无需修改即可转发
- 消息排序:确保
notifications/initialized在其他请求之前发送(MCP协议要求) - 多会话支持:处理多个并发的Claude Desktop会话
- SSE流媒体:正确处理服务器发送事件(SSE)以进行实时通信
- 可配置的:目标URL、主机和端口的命令行参数
- 日志记录:清除连接、会话和筛选内容的日志记录
需求
- Python 3.7+
- 烧瓶
- 请求:
- npx(用于mcp远程)
安装
- 克隆此存储库:
git clone https://github.com/dstrout/huskylens2_MCP_filter.git
cd huskylens2_MCP_filter- 安装Python依赖项:
pip3 install flask requests用法
步骤1:启动网桥服务器
python3 huskylens_bridge.py --target http://192.168.1.161:3000替换 192.168.1.161:3000 使用Huskylens相机的IP地址和端口。
这将:
- 在目标URL连接到Huskylens MCP服务器
- 启动网桥服务器
http://0.0.0.0:8080
步骤2:配置Claude桌面
将网桥添加到Claude Desktop配置文件中(claude_desktop_config.json):
配置文件的位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
添加此条目:
{
"mcpServers": {
"Huskylens2": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:8080/sse",
"--allow-http"
]
}
}
}重要提示: 这 mcp-remote 工具连接到桥 localhost:8080,而不是直接对着相机。然后,桥会代理相机。
步骤3:重新启动克劳德桌面
重新启动Claude Desktop,Huskylens工具应出现在设置中并正常工作。
命令行选项
--target URL Required. Target Huskylens MCP server URL
Example: http://192.168.1.161:3000
--host HOST Host to bind the bridge server to (default: 0.0.0.0)
Use 127.0.0.1 to bind to localhost only
--port PORT Port to bind the bridge server to (default: 8080)
--verbose Enable verbose debug logging
--no-validation Skip connection validation at startup例子
自定义网桥端口:
python3 huskylens_bridge.py --target http://192.168.1.161:3000 --port 9000然后更新Claude配置以使用 http://localhost:9000/sse
仅限本地主机:
python3 huskylens_bridge.py --target http://192.168.1.161:3000 --host 127.0.0.1使用详细日志记录:
python3 huskylens_bridge.py --target http://192.168.1.161:3000 --verbose跳过启动验证(如果相机脱机):
python3 huskylens_bridge.py --target http://192.168.1.161:3000 --no-validation运作原理
建筑
┌─────────────────┐ npx mcp-remote ┌──────────────────┐ HTTP/SSE ┌─────────────────┐
│ Claude Desktop │ ◄─────────────────► │ Bridge Server │ ◄────────────► │ Huskylens Camera│
│ (MCP Client) │ │ (This Program) │ │ (MCP Server) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
Filters out images
Preserves text data消息流
- 连接:克劳德桌面使用
mcp-remote通过SSE连接到网桥 - 会话设置:网桥与Huskylens摄像机建立上游连接
- 消息排序:网桥缓冲工具请求,直到会话初始化
- 过滤:图像资源已从中删除
get_recognition_result响应 - 转发:所有其他内容均保持不变
什么被过滤
网桥只过滤 resource_link 工具响应中具有图像MIME类型的项目:
在过滤之前(来自Huskylens):
{
"result": {
"content": [
{
"type": "resource_link",
"uri": "data:image/png;base64,iVBORw0KG...",
"mimeType": "image/png"
},
{
"type": "text",
"text": "[{\"id\":1,\"x\":120,\"y\":80,...}]"
}
]
}
}过滤后(对克劳德):
{
"result": {
"content": [
{
"type": "text",
"text": "[{\"id\":1,\"x\":120,\"y\":80,...}]"
}
]
}
}故障排除
大桥无法启动
错误: Failed to connect to http://192.168.1.161:3000
解决方案:
- 验证Huskylens摄像头是否已打开并连接到您的网络
- 检查IP地址是否正确(如果使用DHCP,可能会更改)
- 确保Huskylens MCP服务器正在运行(通常在端口3000上)
- 使用
--no-validation跳过启动检查
工具未出现在Claude Desktop中
解决方案:
- 检查网桥服务器是否正在运行
- 验证Claude Desktop配置指向
http://localhost:8080/sse(不是直接用相机) - 完全重新启动克劳德桌面
- 检查网桥服务器日志中的连接尝试
端口已在使用中
错误: Address already in use
解决方案:
- 使用
--port指定其他端口 - 或者使用端口8080停止进程:
lsof -ti:8080 | xargs kill
连接中断或超时
解决方案:
- 确保与Huskylens的稳定网络连接
- 检查防火墙是否阻止连接
- 启用详细日志记录以查看发生了什么
用于调试的详细日志记录
与一起跑步 --verbose 查看详细的消息流:
python3 huskylens_bridge.py --target http://192.168.1.161:3000 --verbose技术细节
MCP协议支持
- 协议版本:2024-11-05(及更高版本)
- 传输:通过HTTP的SSE(服务器发送事件)
- 消息排序:强制MCP初始化顺序
- 会话:断开连接时自动清理
依赖项
- 烧瓶:HTTP/SSE端点的Web框架
- 请求::用于上游连接的HTTP客户端
- mcp遥控器:将Claude Desktop连接到HTTP MCP服务器的npm包
端点
GET /sse-MCP客户端连接的SSE端点(此处为MCP远程连接)POST /message?session_id=-消息转发端点GET /health-健康检查端点
许可证
MIT许可证-有关详细信息,请参阅许可证文件
贡献
欢迎改进和bug修复!关键领域:
- 更好的错误处理和恢复
- 配置文件支持
- 支持多个上游服务器
- 性能优化
致谢
- Huskylens团队创建AI摄像头和MCP服务器
- Claude Desktop和MCP协议的拟人化
- MCP社区
mcp-remote工具
版本历史记录
- 1.0.0 (2025-11-12)
- 初始版本 - 从工具响应中过滤图像 - MCP协议消息排序 - 命令行配置 - 多会话支持
