使用说明
项目简介
mcp-go 是一个使用 Go 语言开发的 SDK,旨在帮助开发者快速构建符合 Model Context Protocol (MCP) 规范的服务器。它提供了一系列易于使用的 API 和工具,简化了 MCP 服务器的实现过程,让开发者可以专注于业务逻辑的开发。
主要功能点
- 提供构建 MCP 服务器的基础框架: 包含服务器启动、停止、请求处理等核心功能。
- 内置日志记录: 使用 'go-logr' 库提供灵活的日志记录功能,方便调试和监控。
- 优雅关机支持: 支持服务器的平滑关闭,确保服务稳定性和数据完整性。
- 可扩展的处理接口: 通过 'Handler' 接口,允许开发者自定义请求处理逻辑,灵活地扩展服务器功能。
- 示例代码: 提供简单的示例服务器代码,帮助开发者快速上手和理解 SDK 的使用方法。
安装步骤
- 安装 Go 环境: 确保你的机器上已安装 Go 1.23 或更高版本。
- 获取 SDK: 使用 'go get' 命令下载 mcp-go SDK:
go get github.com/DeanXu2357/mcp-go
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接。以下是一个示例 JSON 配置,用于连接使用 mcp-go SDK 创建的 MCP 服务器。
{ "serverName": "simple-mcp-server", "command": "./simple_server", "args": [], "description": "简单的 mcp-go 示例服务器" }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,用于在客户端标识不同的 MCP 服务器连接。例如 '"simple-mcp-server"'。
- 'command': MCP 服务器的启动命令。你需要先编译 'examples/simple_server/main.go' 文件生成可执行文件 'simple_server'(在项目根目录下执行 'go build ./examples/simple_server/main.go')。然后将 'command' 配置为该可执行文件的路径,例如 '"./simple_server"' (假设 'simple_server' 可执行文件与 MCP 客户端在同一目录下)。
- 'args': 启动命令的参数列表。本示例服务器不需要额外的启动参数,因此配置为空数组 '[]'。 如果你的 MCP 服务器需要通过命令行参数进行配置,请在此处添加相应的参数。
- 'description': 服务器的描述信息,方便用户理解服务器的用途。
重要提示:
- 请确保 'command' 配置的路径是正确的,并且 MCP 服务器的可执行文件具有执行权限。
- 上述配置中的 'command' 假设你已将 'examples/simple_server/main.go' 编译为 'simple_server' 可执行文件,并将其放置在 MCP 客户端能够访问到的位置。你需要根据实际情况调整 'command' 的值。
基本使用方法
- 编译示例服务器: 进入 'examples/simple_server' 目录,执行 'go build' 命令编译 'main.go' 文件,生成可执行文件(例如 'simple_server')。
- 运行服务器: 在终端中运行编译生成的可执行文件 'simple_server'。默认情况下,服务器将在 'localhost:8080' 启动。
- MCP 客户端连接: 配置 MCP 客户端连接到 'http://localhost:8080/mcp' 地址,并使用上面提供的服务器配置信息。
- 发送 MCP 请求: MCP 客户端可以向服务器发送符合 MCP 协议的 JSON-RPC 请求。示例服务器的 'exampleHandler' 实现了简单的请求处理逻辑,会将请求的 'payload' 原样返回。你可以根据 MCP 协议规范构建请求,并发送到服务器进行测试。
例如,一个简单的 POST 请求 (非标准MCP客户端请求示例,仅为理解服务器处理方式):
你可以使用 'curl' 等工具发送 POST 请求到 'http://localhost:8080/mcp',请求体为 JSON 格式:
curl -X POST -H "Content-Type: application/json" -d '{"action": "echo", "payload": {"message": "hello mcp server"}}' http://localhost:8080/mcp
服务器将会返回包含相同 'payload' 的 JSON 响应。
{ "status": "success", "data": { "message": "hello mcp server" } }
请注意,这只是一个非常基础的示例,实际的 MCP 服务器需要根据具体的应用场景实现更复杂的功能,例如资源管理、工具调用和 Prompt 模板渲染等。 mcp-go SDK 提供了构建这些功能的基础框架,开发者可以基于 SDK 进行扩展和定制。
信息
分类
开发者工具