MCP工具
此存储库包含用于使用模型上下文协议(MCP)的工具。
MCP代理
模型上下文协议的代理,将请求转发到HTTP端点。
概述
MCP代理将数据从stdin转发到指定的HTTP端点,并向stdout返回响应。它实现了一个简单的代理,可用于与远程MCP兼容服务器通信。
为什么是戈朗?
此代码在客户端运行。许多语言都需要运行时和安装正确的库集来实现这一点。Go编译 转换为单个可执行文件。这减少了部署困难、用户支持请求和运行时的中断更新 或者通常通过提供http端点而不是部署来解决的其他问题。
用法
./mcp-proxy [options]选项
-endpoint:代理请求的HTTP端点(默认值:“http://localhost:8080")-content-type:HTTP请求的Content-Type标头(默认值:“application/json”)-timeout:HTTP请求超时(秒)(默认值:30)-buffer:从stdin读取的缓冲区大小(KB)(默认值:64)
示例
./mcp-proxy -endpoint="https://api.example.com/mcp" -content-type="application/json"MCP服务器
一种服务器,从目录加载和管理MCP可执行文件,并通过HTTP或stdio将其公开给客户端。
概述
MCP服务器从目录加载MCP可执行文件并将其提供给客户端。当客户端请求工具列表时,服务器会返回所有加载的MCP中的所有工具,并以MCP名称分隔。服务器可以在HTTP模式或stdio模式下运行。
用法
./mcp-server [options]选项
-mcp-dir:包含MCP可执行文件的目录(默认:“./mcps”)-http:HTTP服务器地址(默认值:“:8080”)-name:MCP服务器的名称(默认:“MCP服务器”)-version:MCP服务器的版本(默认:“1.0.0”)-stdio:使用stdio而不是HTTP(默认值:false)
MCP目录结构
服务器需要一个包含MCP可执行文件的目录。每个可执行文件都必须使用stdio实现MCP协议。服务器将:
- 扫描目录中的可执行文件
- 运行每个可执行文件以发现它提供的工具
- 将这些工具提供给具有命名空间名称的客户端(
mcpname.toolname)
用Make构建和运行
此项目包括一个Makefile,它简化了组件的构建和运行。
建筑
构建所有组件(代理、服务器和示例):
make或构建特定组件:
make build-proxy # Build only the proxy
make build-server # Build only the server
make build-examples # Build only the example MCPs跑步
在HTTP模式下启动MCP服务器(在构建示例并将其复制到mcps目录后):
make run-server在stdio模式下启动MCP服务器:
make run-server-stdio运行代理以连接到本地MCP服务器:
make run-proxy测试
使用基本工具/列表请求测试代理(需要服务器运行):
make test-proxy通过代理测试特定的示例工具(需要服务器运行):
make test-hello # Test the hello tool
make test-add # Test the calculator's add toolMCP示例
该存储库包括演示如何实现MCP兼容工具的示例MCP:
hello-mcp:一个提供“你好”工具的简单MCPcalculator-mcp:提供数学运算的MCP
构建示例并将其安装到mcps目录中:
make examples开发任务
格式化Go代码:
make fmt运行Go vet进行代码分析:
make vet更新并整理Go依赖关系:
make tidy清理构建工件:
make clean将二进制文件安装到GOPATH/bin:
make install许可证
麻省理工学院
