项目简介

MCP-Go 是一个使用 Go 语言完整实现了 Model Context Protocol (MCP) 协议的开源项目。它旨在为大型语言模型 (LLM) 应用提供一个标准化的上下文服务后端,使得 LLM 客户端能够通过简单的 JSON-RPC 协议,安全高效地访问外部数据资源、调用工具功能以及使用预定义的 Prompt 模板。

主要功能点

  • 资源管理 (Resources): 支持托管和管理各种类型的数据资源,并提供标准的 URI 访问方式,方便 LLM 获取上下文信息。
  • 工具注册与执行 (Tools): 允许开发者注册自定义工具,并通过 MCP 服务器暴露给 LLM 客户端调用,扩展 LLM 的能力边界。
  • Prompt 模板 (Prompts): 支持定义和渲染 Prompt 模板,实现可定制化的 LLM 交互模式,优化 Prompt 工程实践。
  • JSON-RPC 通信: 采用标准的 JSON-RPC 协议与客户端进行双向通信,确保协议的通用性和易用性。
  • Stdio 传输协议: 默认支持 Stdio (标准输入输出) 作为传输协议,方便快速部署和集成。

安装步骤

  1. 安装 Go 环境: 确保您的开发环境中已安装 Go 语言环境 (建议 Go 1.16 或更高版本)。

  2. 获取项目代码: 使用 'go get' 命令下载 MCP-Go 库:

    go get github.com/XiaoConstantine/mcp-go

服务器配置

MCP 服务器需要配置启动命令及其参数,以便 MCP 客户端能够正确连接和调用服务。以下是针对仓库中 'example' 目录下 Git MCP Server 和 Zsh MCP Server 的配置示例,您可以根据需要选择并调整:

1. Git MCP Server 配置 (git-mcp-server):

{
  "serverName": "GitMCP",
  "command": "./git-mcp-server",
  "args": [
    "--repo", "/path/to/your/git/repository"
  ],
  "description": "提供 Git 仓库信息和操作工具的 MCP 服务器",
  "notes": "请将 '/path/to/your/git/repository' 替换为您要托管的 Git 仓库的实际路径。如果留空,服务器将自动检测当前目录或父目录中的 Git 仓库。"
}

参数说明 (args):

  • '--repo': 可选参数,指定 Git 仓库的路径。

2. Zsh MCP Server 配置 (zsh-mcp-server):

{
  "serverName": "ZshMCP",
  "command": "./zsh-mcp-server",
  "args": [],
  "description": "提供 Zsh Shell 命令执行工具的 MCP 服务器",
  "notes": "Zsh MCP 服务器默认在用户 Home 目录下启动一个持久化的 Zsh Shell 进程,并提供命令执行等工具。"
}

参数说明 (args):

  • Zsh MCP Server 无需额外的启动参数。

重要提示:

  • 'command' 字段需要根据您将服务器二进制文件放置的位置进行调整,例如,如果将编译后的 'git-mcp-server' 或 'zsh-mcp-server' 放到了 '/usr/local/bin' 目录下,则 'command' 应配置为 'git-mcp-server' 或 'zsh-mcp-server' 即可。
  • 'args' 字段中的路径参数 (例如 '--repo' 的仓库路径) 需要替换为实际的路径。

基本使用方法

  1. 编译服务器: 进入 'example/git' 或 'example/zsh' 目录,使用 'go build' 命令编译生成服务器二进制文件 (例如 'git-mcp-server' 或 'zsh-mcp-server')。
  2. 启动服务器: 在终端中运行编译生成的可执行文件,MCP 服务器将在 Stdio 上监听客户端请求。
  3. 配置 MCP 客户端: 在 MCP 客户端应用中,配置连接信息,指定 MCP 服务器的启动命令 (command) 和参数 (args),以及选择 Stdio 传输协议。
  4. 客户端与服务器交互: 客户端通过 MCP 协议发送 JSON-RPC 请求,例如列出资源、调用工具或获取 Prompt,服务器将处理请求并返回 JSON-RPC 响应。
  5. 查看示例代码: 'example/client' 目录下提供了 Go 语言编写的 MCP 客户端示例代码,可以参考该示例了解如何连接和使用 MCP 服务器。

信息

分类

AI与计算