使用说明
项目简介
mcp-server 是一个用于实验 Model Context Protocol (MCP) 的服务器实现,旨在帮助开发者理解 MCP 协议以及如何在 LLM 应用中使用 MCP 服务器。虽然项目声明“不用于复用”,但它提供了一套完整可运行的 MCP 服务器框架,包含了资源管理、工具注册和 Prompt 模板定义等核心功能。
主要功能点
- 资源 (Resources) 管理: 支持定义和托管各种资源,例如问候语、应用配置、用户数据等,允许客户端通过 URI 访问。
- 工具 (Tools) 注册与执行: 内置多种实用工具,涵盖计算、搜索、天气查询、GitHub 操作、图片处理等,允许 LLM 客户端调用这些工具扩展功能。
- Prompt 模板 (Prompts) 定义: 支持创建和使用 Prompt 模板,例如调试错误提示、代码审查 Prompt 等,方便定制 LLM 交互行为。
- JSON-RPC 协议通信: 服务器通过 JSON-RPC 协议与客户端进行通信,接收请求并返回响应。
- 基于 FastMCP 框架: 使用 'mcp.server.fastmcp' 库构建,可能支持 Stdio 等传输协议。
- 包含示例 Chat 应用: 提供了一个基于 LiteLLM 的示例 Chat 应用 'run_chat.py',演示如何与 MCP 服务器集成的客户端应用。
安装步骤
- 安装 uv: 根据仓库 README,首先需要安装 'uv' 包管理器。
# 请根据 uv 官方文档进行安装,这里不提供具体安装命令,请用户自行查阅。 - 同步依赖: 使用 'uv sync' 命令安装项目依赖。
uv sync - (可选) 运行单元测试: 如果需要运行单元测试,可以使用 'uv run pytest' 命令。
uv run pytest
服务器配置
MCP 服务器是为 MCP 客户端提供服务的后端应用。MCP 客户端需要配置服务器的启动信息才能连接。以下是 'mcp-server' 的 MCP 服务器配置信息,客户端需要配置 启动命令 (command) 和 命令参数 (args) 以启动服务器。
{ "server_name": "NigelMCPServer", "command": "uv", "args": [ "run", "mcp", "dev", "server.py" ], "description": "启动 MCP 工具实验服务器", "notes": "无需额外参数,直接运行 server.py 即可启动。" }
配置参数注释:
- 'server_name': 服务器名称,这里设置为 "NigelMCPServer",与 'mcp_instance.py' 中定义的一致。
- 'command': 启动服务器的命令,这里使用 'uv' 包管理器来运行 Python 脚本。
- 'args': 启动命令的参数列表。
- '"run"': 'uv run' 子命令,用于运行 Python 脚本。
- '"mcp"': 使用 'uv run mcp' 环境运行。
- '"dev"': 使用开发模式环境。
- '"server.py"': 服务器启动脚本的文件名。
- 'description': 对该服务器配置的简要描述。
- 'notes': 关于服务器配置的备注信息,强调无需其他参数。
基本使用方法
- 启动 MCP 服务器: 在一个终端窗口中,使用以下命令启动 MCP 服务器。
服务器默认监听端口 3000,并会启动 MCP Inspector (在 http://localhost:5173 访问)。uv run mcp dev server.py - 运行示例 Chat 应用: 在另一个终端窗口中,首先确保已安装 Ollama 并拉取了模型 (如 granite3.2:latest),然后运行 'run_chat.py' 脚本。
Chat 应用会自动连接到 MCP 服务器,并利用服务器提供的工具进行对话。python run_chat.py
注意事项
- 部分工具 (如天气查询、新闻搜索、GitHub 工具等) 需要配置 API 密钥等环境变量,请参考仓库 README 中的 "Environment Variable Configuration" 部分进行配置。
- 示例 Chat 应用可能存在一些模型兼容性问题,README 中提到 "It doesn't yet work with the default model.... work in progress!",使用时请注意。
信息
分类
开发者工具