使用说明

项目简介

mcp-go 是一个使用 Go 语言开发的 SDK,旨在帮助开发者快速构建符合 Model Context Protocol (MCP) 规范的服务器。它提供了一系列易于使用的 API 和工具,简化了 MCP 服务器的实现过程,让开发者可以专注于业务逻辑的开发。

主要功能点

  • 提供构建 MCP 服务器的基础框架: 包含服务器启动、停止、请求处理等核心功能。
  • 内置日志记录: 使用 'go-logr' 库提供灵活的日志记录功能,方便调试和监控。
  • 优雅关机支持: 支持服务器的平滑关闭,确保服务稳定性和数据完整性。
  • 可扩展的处理接口: 通过 'Handler' 接口,允许开发者自定义请求处理逻辑,灵活地扩展服务器功能。
  • 示例代码: 提供简单的示例服务器代码,帮助开发者快速上手和理解 SDK 的使用方法。

安装步骤

  1. 安装 Go 环境: 确保你的机器上已安装 Go 1.23 或更高版本。
  2. 获取 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' 的值。

基本使用方法

  1. 编译示例服务器: 进入 'examples/simple_server' 目录,执行 'go build' 命令编译 'main.go' 文件,生成可执行文件(例如 'simple_server')。
  2. 运行服务器: 在终端中运行编译生成的可执行文件 'simple_server'。默认情况下,服务器将在 'localhost:8080' 启动。
  3. MCP 客户端连接: 配置 MCP 客户端连接到 'http://localhost:8080/mcp' 地址,并使用上面提供的服务器配置信息。
  4. 发送 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 进行扩展和定制。

信息

分类

开发者工具