使用说明

项目简介

本项目 'mcp-client-and-server' 是一个基于 Model Context Protocol (MCP) 的服务器实现,它作为一个独立的后端服务,旨在为大型语言模型 (LLM) 客户端提供结构化的上下文信息和功能扩展。该服务器以一个简单的笔记应用为例,展示了如何利用 MCP 协议管理资源 (Resources)、提供工具 (Tools) 和定义 Prompt 模板 (Prompts),从而增强 LLM 应用的功能。

主要功能点

  • 资源 (Resources):
    • 提供基于 'note://' URI 方案的笔记资源访问。
    • 每篇笔记包含名称、描述和 'text/plain' MIME 类型。
  • Prompt 模板 (Prompts):
    • 提供 'summarize-notes' Prompt,用于总结所有存储的笔记内容。
    • 支持可选的 'style' 参数 ('brief'/'detailed') 控制总结详细程度。
  • 工具 (Tools):
    • 提供 'add-note' 工具,用于向服务器添加新的笔记。
    • 需要 'name' 和 'content' 两个字符串参数。
    • 服务器状态更新后会通知客户端资源变更。
  • 服务器管理工��:
    • 除了笔记相关的工具外,还额外提供 'connect-server', 'disconnect-server', 'list-servers' 等工具,用于连接和管理其他MCP服务器,展示了链式服务器的能力。

安装步骤

由于这是一个 Python 项目,你需要确保你的环境中安装了 Python 和 'uv' 包管理器(推荐,或者使用 'pip')。

  1. 克隆仓库

    git clone https://github.com/non-dirty/mcp-client-and-server.git
    cd mcp-client-and-server
  2. 安装依赖 使用 'uv' 同步依赖并更新 lockfile (或者使用 'pip install -r requirements.txt'):

    uv sync

服务器配置

MCP 服务器需要配置到 MCP 客户端中才能使用。以 Claude Desktop 为例,你需要编辑其配置文件 'claude_desktop_config.json',在 'mcpServers' 字段下添加配置信息。

开发/未发布服务器配置示例 (适用于本地开发和调试):

"mcpServers": {
  "mcp-client-and-server": {
    "command": "uv",  // 启动命令,这里使用 uv 包管理器
    "args": [
      "--directory",
      "/path/to/mcp-client-and-server", // 替换为你的仓库本地路径
      "run",
      "mcp-client-and-server" // 运行 mcp-client-and-server 入口
    ]
  }
}

发布服务器配置示例 (适用于已打包发布的情况):

"mcpServers": {
  "mcp-client-and-server": {
    "command": "uvx", // 启动已发布的包
    "args": [
      "mcp-client-and-server" // 运行 mcp-client-and-server 入口
    ]
  }
}

注意:

  • 请将 '/path/to/mcp-client-and-server' 替换为你克隆仓库的实际本地路径。
  • 'command' 和 'args' 字段定义了如何启动 MCP 服务器进程。这里使用了 'uv' 或 'uvx' (已发布的包) 来运行 Python 代码。

基本使用方法

  1. 启动服务器 服务器配置完成后,当 MCP 客户端(如 Claude Desktop)尝试连接到 'mcp-client-and-server' 时,服务器将自动启动。你也可以在项目根目录下手动运行服务器:

    uv run mcp-client-and-server

    或者 (如果已将 'src' 目录加入 Python 路径):

    python -m mcp_client_and_server.server
  2. 与 MCP 客户端交互 一旦服务器运行,你就可以在 MCP 客户端中配置并使用它。

    • 客户端可以通过标准 MCP 协议请求列出资源、调用工具、获取 Prompt 等。
    • 例如,客户端可以调用 'add-note' 工具添加笔记,然后使用 'summarize-notes' Prompt 总结笔记内容。
    • 由于该服务器实现了 'connect-server' 等工具,你甚至可以通过该服务器连接到其他 MCP 服务器,形成链式调用。
  3. 调试 项目推荐使用 MCP Inspector 进行调试,可以更方便地观察 MCP 服务器的请求和响应。

信息

分类

生产力应用