使用说明

项目简介

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 服务器集成的客户端应用。

安装步骤

  1. 安装 uv: 根据仓库 README,首先需要安装 'uv' 包管理器。
    #  请根据 uv 官方文档进行安装,这里不提供具体安装命令,请用户自行查阅。
  2. 同步依赖: 使用 'uv sync' 命令安装项目依赖。
    uv sync
  3. (可选) 运行单元测试: 如果需要运行单元测试,可以使用 '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': 关于服务器配置的备注信息,强调无需其他参数。

基本使用方法

  1. 启动 MCP 服务器: 在一个终端窗口中,使用以下命令启动 MCP 服务器。
    uv run mcp dev server.py
    服务器默认监听端口 3000,并会启动 MCP Inspector (在 http://localhost:5173 访问)。
  2. 运行示例 Chat 应用: 在另一个终端窗口中,首先确保已安装 Ollama 并拉取了模型 (如 granite3.2:latest),然后运行 'run_chat.py' 脚本。
    python run_chat.py
    Chat 应用会自动连接到 MCP 服务器,并利用服务器提供的工具进行对话。

注意事项

  • 部分工具 (如天气查询、新闻搜索、GitHub 工具等) 需要配置 API 密钥等环境变量,请参考仓库 README 中的 "Environment Variable Configuration" 部分进行配置。
  • 示例 Chat 应用可能存在一些模型兼容性问题,README 中提到 "It doesn't yet work with the default model.... work in progress!",使用时请注意。

信息

分类

开发者工具