使用说明
项目简介
ColorsMCP 是一个基于 Model Context Protocol (MCP) 实现的服务器示例项目,使用 .NET 平台构建。它演示了如何创建一个提供特定领域(颜色信息)上下文和功能的 MCP 服务器,支持 STDIO 和 SSE 两种传输协议。
主要功能点
- 颜色数据查询: 提供查询预设颜色列表的能力。
- 工具注册: 将查询颜色的功能注册为 MCP 工具,供 MCP 客户端(如 LLM 应用)调用。
- 支持多种传输协议: 可配置为通过标准输入输出 (STDIO) 或 Server-Sent Events (SSE) 协议与客户端通信。
它通过暴露以下工具,使得 MCP 客户端能够获取颜色信息:
- 'GetAllColors': 获取所有颜色列表。
- 'GetColorByFamily': 根据颜色族(如红色系、蓝色系)获取颜色列表。
- 'GetColor': 根据颜色名称获取特定颜色的详细信息。
安装步骤
- 安装 .NET SDK: 确保您的开发环境中安装了 .NET 9.0 或更高版本的 SDK。可以从 Microsoft 官方网站 下载。
- 克隆仓库: 使用 Git 克隆 ColorsMCP 仓库到本地。
git clone https://github.com/markharrison/ColorsMCP.git cd ColorsMCP - 构建项目:
- 对于 STDIO 版本:进入 ColorsMCP 文件夹,运行 'dotnet build'。
- 对于 SSE 版本:确保 Docker 环境可用。进入项目根目录,运行 Docker 构建命令。
服务器配置 (供 MCP 客户端使用)
MCP 服务器本身是作为后端服务运行的,MCP 客户端(例如 VS Code 中的 Copilot 扩展、或自定义 LLM 应用)需要知道如何连接它。连接信息通常存储在一个 JSON 配置文件中,例如 '.vscode/mcp.json'。
STDIO 版本配置
将以下配置添加到您的 MCP 客户端配置文件(如 '.vscode/mcp.json')中:
{ "servers": { "colorsserver-stdio": { "type": "stdio", "command": "dotnet", "args": [ "run", "--project", "<项目根目录>/ColorsMCP/ColorsMCP.csproj" ] } } }
请将 '<项目根目录>' 替换为您实际克隆仓库的路径,例如 'c:/dev/ColorsMCP'。
- 'type': 指定传输协议为 STDIO。
- 'command': 指定用于启动服务器的命令,这里是 'dotnet' 可执行文件。
- 'args': 启动命令的参数,这里指示 .NET 运行时执行 ColorsMCP 项目。
SSE 版本配置
首先需要构建并运行 SSE 版本的 Docker 镜像:
# 在 ColorsMCP 项目根目录执行 docker build -f colorsmcpsse/Dockerfile -t colorsmcpsse:latest . docker run -p 3000:8080 -p 3001:8081 -d colorsmcpsse:latest
这将构建一个名为 'colorsmcpsse' 的 Docker 镜像,并在后台运行一个容器,将容器的 8080 端口映射到主机的 3000 端口(用于 SSE 连接)。
然后,将以下配置添加到您的 MCP 客户端配置文件中:
{ "servers": { "colorsserver-sse": { "type": "sse", "url": "http://localhost:3000" } } }
- 'type': 指定传输协议为 SSE。
- 'url': 指定 SSE 服务器的基地址。根据上面 Docker 映射的端口,这里是 'http://localhost:3000'。MCP 客户端会自动在此基础上构建完整的 SSE 连接路径(通常是 '/sse')。
基本使用方法
配置好 MCP 客户端后,它会自动检测并连接到 ColorsMCP 服务器。您可以通过客户端的界面或编程接口来与服务器交互。
例如,如果您使用的是支持 MCP 的 LLM 客户端,您可以:
- 查看服务器能力: 客户端可以列出服务器提供的所有工具(如 'GetAllColors', 'GetColor' 等)及其描述。
- 调用工具: 您可以通过向 LLM 提问来间接或直接调用服务器提供的工具。例如,询问 LLM "What is the hex code for the color Red?",LLM 客户端可能会识别到需要调用 'GetColor' 工具,并以 "Red" 作为参数发送请求给 ColorsMCP 服务器。服务器执行工具后返回结果(如 Red 的十六进制码),客户端再将结果呈现给用户或用于 LLM 的回答生成。
仓库中包含了一个简单的 MCPClient 示例项目 ('MCPClient/Program.cs'),展示了如何以编程方式连接服务器、列出工具和调用工具。您可以参考该客户端代码来理解服务器的工作方式和交互流程。
信息
分类
开发者工具