项目简介

本项目是一个使用Python实现的MCP服务器示例,旨在演示如何构建一个符合Model Context Protocol (MCP) 规范的后端服务。该服务器提供笔记管理功能,允许客户端通过MCP协议进行交互,实现笔记的创建、访问和总结。

主要功能点

  • 资源管理: 服务器将笔记作为资源进行管理,并为每个笔记分配一个自定义的 'note://' URI。客户端可以列出所有笔记资源,并根据URI读取特定笔记的内容。
  • Prompt模板: 服务器提供一个 'summarize-notes' Prompt模板,用于总结所有已存储的笔记。客户端可以调用此模板生成包含所有笔记内容的Prompt,并可选择不同的总结风格(简要或详细)。
  • 工具注册与执行: 服务器注册了一个 'add-note' 工具,允许客户端向服务器添加新的笔记。客户端可以调用此工具,并提供笔记的名称和内容作为参数。
  • 会话管理与通知: 服务器基于MCP协议与客户端进行通信,处理客户端的请求并返回响应。虽然示例代码中注释掉了资源变更通知,但MCP服务器具备向客户端发送资源变更通知的能力。
  • 标准JSON-RPC over Stdio: 服务器使用标准的JSON-RPC协议通过标准输入/输出流 (stdio) 与客户端通信,符合MCP规范。

安装步骤

由于这是一个Python项目,推荐使用 'uv' 包管理器进行依赖管理和构建。

  1. 安装 'uv' (如果尚未安装): 请参考 uv installation guide 进行安装。
  2. 同步依赖并更新 lockfile:
    uv sync
  3. 构建项目 (可选,如果需要发布):
    uv build

服务器配置

要将此MCP服务器配置到MCP客户端(例如 Claude Desktop),您需要提供服务器的启动命令和参数。以下是针对开发环境的配置示例,通常需要添加到客户端的配置文件中(例如 'claude_desktop_config.json')。

注意: 以下配置中的路径 '/Users/jtorreggiani/organizer/work/open-source/create-python-server/test-server' 是示例仓库的本地路径,您需要将其替换为您实际存放该仓库代码的路径

"mcpServers": {
  "test-server": {
    "command": "uv",
    "args": [
      "--directory",
      "/Users/jtorreggiani/organizer/work/open-source/create-python-server/test-server",  // 替换为您的仓库路径
      "run",
      "test-server"
    ]
  }
}
  • '"test-server"': 服务器的名称,客户端使用此名称来标识和配置服务器。
  • '"command": "uv"': 启动服务器的命令。这里使用 'uv' 包管理器来运行Python脚本。
  • '"args"': 传递给 'uv' 命令的参数列表。
    • '"--directory"': 指定服务器代码所在的目录,请务必替换为您的实际路径
    • '"run"': 'uv run' 命令用于运行指定的Python模块或脚本。
    • '"test-server"': 指定要运行的Python模块名称,对应于 'src/test_server/init.py' 中定义的 'main' 函数。

基本使用方法

  1. 配置MCP客户端: 根据您的MCP客户端(例如 Claude Desktop)的文档,将上述服务器配置信息添加到客户端的配置文件中。确保将路径 '/Users/jtorreggiani/organizer/work/open-source/create-python-server/test-server' 替换为您的实际仓库路径。
  2. 启动MCP客户端: 启动配置了该MCP服务器的客户端应用程序。
  3. 与服务器交互: 客户端将通过MCP协议与服务器建立连接。您可以使用客户端提供的界面或功能来:
    • 列出笔记资源: 查看当前服务器上存储的所有笔记。
    • 读取笔记内容: 根据笔记的URI获取特定笔记的文本内容。
    • 总结笔记: 调用 'summarize-notes' Prompt模板,让服务器生成所有笔记的摘要。
    • 添加新笔记: 调用 'add-note' 工具,向服务器添加新的笔记,并提供笔记的名称和内容。

通过这些操作,您可以体验到该MCP服务器提供的基本笔记管理功能。

信息

分类

生产力应用