项目简介
本仓库是关于 Model Context Protocol (MCP) 的中文教程合集。其中包含一个使用 Go 语言实现的简单 MCP 服务器示例代码,位于 'code-examples/overview/server' 目录下。该示例用于演示 MCP 服务器的核心功能,包括工具调用、资源读取和提示词获取,并基于 StdIo 协议与 MCP 客户端进行通信。它是一个非常适合初学者了解如何使用 Go 语言开发 MCP 服务器的起点。
主要功能点
该示例 MCP 服务器提供了以下功能:
- 工具 (Tool): 注册并实现了一个名为 'calculate' 的工具,支持基本的加、减、乘、除四则运算。
- 资源 (Resource): 注册并实现了一个名为 'docs://readme' 的资源,允许 MCP 客户端获取本项目仓库根目录下的 'README.md' 文件内容。
- 提示词 (Prompt): 注册并实现了一个名为 'greeting' 的提示词,可以根据客户端提供的名字参数生成一句友好的问候语。
- 协议支持: 通过标准输入/标准输出 (StdIo) 协议与 MCP 客户端进行通信。
安装步骤
- 确保你的系统已安装 Go 开发环境 (版本 1.18 或更高)。
- 使用 Git 克隆本教程仓库到你的本地机器:
git clone https://github.com/chenmingyong0423/mcp-tutorials.git - 进入到包含示例服务器代码的目录:
cd mcp-tutorials/code-examples/overview - 编译服务器程序:
这会在当前目录下生成一个名为 'server' (或 'server.exe' 在 Windows 上) 的可执行文件。go build -o server ./server
服务器配置
MCP 服务器通常不会直接双击运行,而是由 MCP 客户端(例如支持 MCP 的 LLM 应用或开发框架)根据配置信息启动。客户端需要知道如何执行这个服务器程序。对于这个示例服务器,提供给 MCP 客户端的配置信息通常是一个 JSON 对象,格式大致如下:
{ "name": "Server Demo", "command": "<path_to_your_cloned_repo>/code-examples/overview/server", "args": [], "description": "一个基于go-mcp实现的简单MCP服务器示例,包含计算工具、README资源和问候提示词。", // 可选字段,客户端可能支持显示服务器图标 // "icon": "data:image/png;base64,...", "protocols": [ "stdio" // 表示服务器支持通过标准输入输出进行通信 ] }
你需要将上述 '"command"' 字段中的 '<path_to_your_cloned_repo>' 替换为你实际克隆 'mcp-tutorials' 仓库到本地文件系统的完整路径。MCP 客户端会读取这个配置,然后在需要时执行指定的命令来启动服务器进程,并通过 StdIo 与其交互。
基本使用方法
该示例服务器主要用于被 MCP 客户端通过 StdIo 协议调用。通常不会作为独立的服务运行。
- 通过 MCP 客户端调用: 运行支持 MCP 协议的客户端程序,并配置客户端使用上面提供的服务器配置 JSON 来发现和启动该服务器。客户端会根据 MCP 协议自动与服务器进行初始化、列出能力(工具、资源、提示词)并按需调用工具或读取资源。本仓库的 'code-examples/overview/client/client.go' 提供了一个简单的 Go 语言客户端示例,你可以编译 ('go build -o client ./client') 并运行 './client' 来测试与示例服务器的交互。
- 直接运行 (仅用于观察协议交互): 你也可以直接运行编译好的服务器程序 './server'。它会启动并等待标准输入上的 MCP JSON-RPC 请求。你可以尝试手动发送 MCP 请求(例如一个 'initialize' 请求的 JSON)到其标准输入,观察其在标准输出上的响应。但这仅用于调试或学习 MCP 协议交互过程。
信息
分类
AI与计算