MCP4Go 使用说明

项目简介

MCP4Go 是 Model Context Protocol (MCP) 的 Go 语言实现,旨在简化 AI 应用后端开发。它提供了一套完整的框架,用于构建符合 MCP 协议的服务端应用,使得开发者可以专注于业务逻辑的实现,而无需关注底层的协议细节。通过 MCP4Go,您可以轻松地管理和提供资源 (Resources)、工具 (Tools) 和 Prompt 模板 (Prompts),为 LLM 客户端提供强大的上下文服务。

主要功能点

  • 完整的 MCP 协议实现: 提供了纯 Go 语言的 MCP 协议栈实现,包括 JSON-RPC 通信、会话管理、能力声明等核心功能。
  • 资源管理: 支持托管和管理各种类型的资源,并提供标准的资源访问接口,方便 LLM 客户端获取上下文数据。
  • 工具注册与执行: 允许注册和执行外部工具,扩展 LLM 的能力边界,例如调用 API、访问数据库等。
  • Prompt 模板: 支持定义和渲染 Prompt 模板,实现可定制的 LLM 交互模式,提高 Prompt 工程的效率和灵活性。
  • 插件式架构: 采用插件式架构设计,方便用户进行自定义扩展,例如添加自定义资源类型、工具类型等。
  • 生产就绪: 代码质量高,包含完善的错误处理和日志记录,适合在生产环境中使用。

安装步骤

  1. 安装 Go 环境: 确保您的机器上已安装 Go 1.18 或更高版本。
  2. 获取 MCP4Go 库: 使用 Go Modules 下载 MCP4Go 库:
    go get github.com/mcp4go/mcp4go

服务器配置

MCP 服务器需要通过命令行启动。以下是使用 'examples/time/main.go' 示例服务器的 MCP 客户端配置信息:

{
  "serverName": "TimeMCP Server",
  "command": "./time",
  "args": [],
  "description": "提供简单时间工具的 MCP 服务器示例"
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': 启动 MCP 服务器的可执行文件路径。这里假设您已编译 'examples/time/main.go' 生成了可执行文件 'time',并且当前工作目录在项目根目录下。如果不在同一目录,请填写正确的可执行文件路径。
  • 'args': 启动 MCP 服务器的命令行参数,本示例中无需参数,所以为空数组 '[]'。
  • 'description': 对该 MCP 服务器的简短描述,方便客户端用户理解其功能。

编译 'examples/time/main.go' (可选):

如果您需要编译示例服务器,请在 'examples/time/' 目录下执行:

go build -o time main.go

基本使用方法

  1. 启动 MCP 服务器: 根据您的配置,运行 MCP 服务器。例如,对于 'examples/time/main.go',在编译后可以直接运行 './time'。
  2. 配置 MCP 客户端: 在您的 MCP 客户端应用中,配置连接到 MCP 服务器的相关信息,主要是服务器的启动命令 ('command') 和参数 ('args')。客户端会根据这些配置启动服务器进程并建立连接。
  3. 客户端与服务器交互: 客户端通过 MCP 协议与服务器进行通信,例如:
    • 列出工具: 客户端可以请求服务器列出所有可用的工具。
    • 调用工具: 客户端可以调用服务器提供的工具,并传递相应的参数。
    • 列出资源: 客户端可以请求服务器列出所有可用的资源。
    • 读取资源: 客户端可以读取服务器托管的资源内容。
    • 订阅资源更新: 客户端可以订阅资源的更新通知。
    • 获取 Prompt: 客户端可以获取服务器定义的 Prompt 模板,用于与 LLM 进行交互。

具体的操作和 API 调用请参考 MCP 协议文档和 MCP4Go 客户端库的使用说明。 'mcp4go' 仓库中也提供了 'examples/simple_client' 作为客户端示例,可以参考其用法。

信息

分类

开发者工具