使用说明
项目简介
go-mcp 是一个使用 Go 语言编写的 Model Context Protocol (MCP) 实现库,它旨在帮助开发者快速构建兼容 MCP 协议的服务端和客户端应用。该库遵循 MCP 官方规范,提供了核心协议的完整实现,并支持多种传输方式,是构建 LLM 应用上下文服务的有效工具。
主要功能点
- 核心协议实现: 完整实现了 MCP 协议,支持 JSON-RPC 2.0 消息传递机制。
- 服务端功能:
- 模块化服务器实现,支持可选能力配置(Prompt, Resource, Tool)。
- 支持实时通知和更新。
- 内置日志系统。
- 资源订阅管理。
- 客户端功能:
- 灵活的客户端配置,支持可选能力配置。
- 自动会话管理和健康监控。
- 支持流式处理和分页。
- 进度跟踪和取消支持。
- 传输选项:
- 支持 Server-Sent Events (SSE) 用于 web 应用的实时更新。
- 支持 Standard IO 用于命令行工具集成。
安装步骤
打开终端,运行以下命令安装 go-mcp 库:
go get github.com/MegaGrindStone/go-mcp
服务器配置
以下是一个使用 Standard IO 传输方式的 MCP 服务器客户端配置示例 (JSON 格式):
{ "serverName": "my-mcp-server", // 自定义服务器名称 "command": "your-server-command", // 替换为您的 go-mcp 服务器程序启动命令,例如:'/path/to/your/server' "args": [] // 启动命令参数,例如:["--port", "8080"],本例中 Standard IO 传输方式无需参数,保持为空数组即可 }
基本使用方法
-
服务端实现:
- 创建一个结构体并实现 'mcp.PromptServer', 'mcp.ResourceServer', 'mcp.ToolServer' 等接口,以提供相应的 MCP 能力。
- 使用 'mcp.NewServer' 创建 MCP 服务器实例,并配置传输方式 (如 'mcp.NewStdIO' 或 'mcp.NewSSEServer') 和所需的服务端能力选项 (如 'mcp.WithToolServer')。
- 调用 'srv.Serve()' 启动服务器。
-
客户端实现:
- 使用 'mcp.NewClient' 创建 MCP 客户端实例,并配置传输方式 (如 'mcp.NewStdIO' 或 'mcp.NewSSEClient') 和所需的客户端能力选项 (如 'mcp.WithToolListWatcher')。
- 调用 'cli.Connect(ctx)' 连接到 MCP 服务器。
- 使用 'cli.ListTools(ctx, params)', 'cli.CallTool(ctx, params)' 等方法调用服务器提供的 MCP 功能。
详细的使用方法和示例代码,请参考仓库中的 'README.md' 文档和 'example/' 目录。
信息
分类
开发者工具