使用说明
项目简介
mcpserver 是一个基于 Go 语言实现的演示性质的 MCP (Model Context Protocol) 服务器。它主要用于模拟 Istio 环境下的 MCP 服务端,可以管理和提供 Istio 的配置资源,例如 VirtualService、ServiceEntry 和 EnvoyFilter。该项目旨在展示 MCP 服务器的基本功能,例如资源托管、版本控制和数据推送。
请注意: 这是一个演示项目,主要用于学习和测试 MCP 协议,可能不适用于生产环境。它模拟了 Istio 部分配置资源的提供,但并非完整的 Istio MCP 服务器。
主要功能点
- 资源管理: 支持管理多种 Istio 配置资源,例如 VirtualService, ServiceEntry, EnvoyFilter。
- MCP协议: 实现了基于 gRPC 的 MCP 服务端,可以响应 MCP 客户端的资源请求。
- 版本控制: 为托管的资源提供版本管理,支持基于版本的信息同步。
- Mock数据: 使用 Mock 数据模拟 Istio 配置资源,方便快速启动和测试。
- 动态更新: 提供 HTTP 接口,允许动态更新 Mock 资源,并实时推送给 MCP 客户端。
安装步骤
- 安装 Go 环境: 确保已安装 Go 语言环境 (>= 1.16)。
- 克隆仓库: 从 GitHub 克隆 mcpserver 仓库到本地。
git clone https://github.com/champly/mcpserver.git cd mcpserver - 构建项目: 使用 'go build' 命令编译项目。
go build -o mcpserver main.go
服务器配置
MCP 客户端需要配置连接到 MCP 服务器的信息。对于 'mcpserver' 来说,客户端需要知道服务器的地址和端口。以下是一个 MCP 客户端连接 'mcpserver' 的配置示例 (JSON 格式),假设 'mcpserver' 运行在 '127.0.0.1:20002':
{ "serverName": "mcpserver-demo", "command": "./mcpserver", "args": [ "--grpc-port=20002" ], "address": "127.0.0.1:20002", "protocol": "grpc" }
配置参数说明:
- 'serverName': MCP 服务器的名称,可以自定义。
- 'command': 启动 MCP 服务器的可执行文件路径,这里假设 'mcpserver' 可执行文件在当前目录。
- 'args': 启动 MCP 服务器的命令行参数。
- '--grpc-port': 指定 gRPC 监听端口,默认为 '20002'。 您可以通过 '--grpc-port' 参数显式指定,如示例中的 '"--grpc-port=20002"'。 如果您没有通过参数指定端口,且您构建的可执行文件名为 'mcpserver', 那么可以直接使用 '"./mcpserver"' 命令启动,默认端口为 '20002'。
- 'address': MCP 服务器的地址和端口,用于客户端连接,格式为 'IP地址:端口'。
- 'protocol': MCP 服务器使用的协议,这里为 'grpc'。
基本使用方法
-
启动 MCP 服务器: 在 'mcpserver' 仓库目录下,运行编译生成的可执行文件 'mcpserver'。
./mcpserver --grpc-port=20002或者直接运行 (如果使用默认端口 20002):
./mcpserver服务器默认监听 '0.0.0.0:20002'。
-
配置 MCP 客户端: 根据上述 服务器配置 示例,配置您的 MCP 客户端,使其连接到 'mcpserver' 服务器的地址 '127.0.0.1:20002'。
-
客户端连接和资源同步: 启动 MCP 客户端后,客户端会通过 gRPC 连接到 'mcpserver',并根据配置的资源类型(例如 VirtualService, ServiceEntry)向服务器请求资源。'mcpserver' 会将 Mock 数据以 MCP 协议响应给客户端。
-
动态更新 Mock 资源 (可选): 'mcpserver' 提供了 HTTP 接口用于动态更新 Mock 资源。您可以通过 POST 请求访问以下接口来更新资源:
- 'POST http://localhost:8080/envoyfilter' 更新 EnvoyFilter 资源
- 'POST http://localhost:8080/virtualservice' 更新 VirtualService 资源
- 'POST http://localhost:8080/serviceentry' 更新 ServiceEntry 资源
发送 POST 请求后,'mcpserver' 会更新内存中的 Mock 数据,并立即将更新后的资源版本推送给已连接的 MCP 客户端,客户端可以实时获取最新的资源配置。
注意: HTTP 更新接口仅用于演示 Mock 数据的动态更新,实际生产环境的 MCP 服务器资源更新通常通过更完善的配置管理系统进行。
信息
分类
开发者工具