Model Context Protocol

Model Context Protocol

site icon
2025.03.20 2
GoJSON RPC 通信多传输方式支持其它
go-mcp 是一个基于 Model Context Protocol (MCP) 的 Go 语言实现,主要用于实现客户端和服务端之间的 JSON RPC 通信。它提供了 Transport 和 Protocol 的抽象,支持多种传输方式(如 stdio、sse、in_memory 等),适用于需要高效、灵活通信的场景。
View on GitHub

Overview

基本能力

产品定位

go-mcp 是一个基于 Model Context Protocol (MCP) 的 Go 语言实现,专注于提供客户端和服务端之间的 JSON RPC 通信能力。

核心功能

  1. Transport 抽象:支持多种传输方式(如 stdio、sse、in_memory 等),负责发送和接收 JSON RPC 消息。
  2. Protocol 抽象:负责格式化、解析 JSON 消息,生成 Request/Response/Notification/Error 消息。
  3. MCP 客户端和服务端:支持定义客户端和服务端的能力,并通过 Transport 进行通信。

适用场景

  1. JSON RPC 通信:适用于需要高效、灵活通信的场景,如 LSP 客户端/服务端等。
  2. 多传输方式支持:适用于需要多种传输方式的场景,如 stdio、sse、in_memory 等。

工具列表

  1. Client:支持 ListTools()CallTool() 等功能,用于与服务器交互。
  2. Server:支持监听消息并通过 Transport 进行通信。
  3. Transport:提供多种传输方式(如 stdio、sse、in_memory 等)。
  4. Protocol:负责 JSON 消息的格式化和解析。

常见问题解答

  1. 如何创建客户端和服务端?
  2. 定义客户端或服务端的能力,并通过 Connect(transport) 方法连接到 Transport。
  3. 如何发送和接收消息?
  4. 使用 Transport 发送和接收消息,Protocol 负责消息的格式化和解析。

使用教程

使用依赖

  1. 确保已安装 Go 语言环境。
  2. 克隆项目代码: bash git clone https://github.com/modelcontextprotocol/go-mcp.git

安装教程

  1. 进入项目目录: bash cd go-mcp
  2. 安装依赖: bash go mod download
  3. 编译项目: bash go build

调试方式

  1. 启动服务端: bash ./go-mcp server
  2. 启动客户端: bash ./go-mcp client
  3. 使用 ListTools()CallTool() 进行交互测试。

许可证

None