使用说明

项目简介

my-mcp-servers 仓库旨在提供 MCP (Model Context Protocol) 服务器的示例,帮助开发者理解和构建基于 MCP 协议的工具服务。本仓库包含一个名为 "add-note" 的示例服务器,该服务器演示了如何创建一个简单的笔记服务,允许用户通过工具添加笔记,并通过资源访问笔记内容。

主要功能点

  • 资源管理: "add-note" 服务器将每个笔记都作为一个资源进行管理,客户端可以列出所有笔记资源并读取特定笔记的内容。
  • 工具注册与执行: 服务器注册了一个 "add-note" 工具,客户端可以调用该工具来创建新的笔记。
  • 状态管理: 服务器在内存中维护笔记数据,演示了 MCP 服务器如何管理自身状态。
  • 通知机制: 当笔记资源列表发生变化时(例如添加了新笔记),服务器会向客户端发送资源列表变更通知。

安装步骤

  1. 克隆仓库
    git clone https://github.com/nengelmann/my-mcp-servers.git
    cd my-mcp-servers
  2. 安装依赖 进入 'add-note' 服务器目录并安装项目依赖。本仓库使用 'uv' 包管理器,确保已安装 'uv'。
    cd servers/add-note
    uv sync --dev --all-extras
    cd ../..

服务器配置

MCP 客户端需要配置连接 "add-note" 服务器的信息。以下是一个 JSON 格式的配置示例,可以直接用于 MCP 客户端的服务器配置中。

{
  "server_name": "add-note",
  "command": "uv",
  "args": [
    "run",
    "add_note.server"
  ],
  "transport": "stdio"
}

配置参数说明:

  • 'server_name': 服务器名称,这里设置为 'add-note',与服务器代码中定义的名称一致。
  • 'command': 启动服务器的命令,这里使用 'uv run' 来运行 Python 脚本。
  • 'args': 传递给 'uv run' 命令的参数,'add_note.server' 指定了要运行的 Python 模块入口点 ('add_note/server.py' 中的 'main' 函数)。
  • 'transport': 指定客户端与服务器通信的传输协议,这里使用 'stdio' (标准输入输出)。

注意: 客户端需要确保运行命令 'uv' 可用,并且当前工作目录位于 'my-mcp-servers/servers/add-note' 目录下,或者命令中使用了正确的相对路径或绝对路径指向 'add_note.server' 模块。更推荐的做法是在 'my-mcp-servers' 根目录下启动客户端,配置中的 'args' 保持不变,并在客户端启动服务器时,将工作目录切换到 'servers/add-note'。

基本使用方法

  1. 启动服务器 在 'my-mcp-servers/servers/add-note' 目录下,运行以下命令启动 "add-note" 服务器:

    uv run add_note.server

    服务器将通过标准输入输出与 MCP 客户端进行通信。

  2. 使用 MCP 客户端连接服务器 配置 MCP 客户端,添加上述提供的服务器配置信息。客户端成功连接后,即可:

    • 列出资源: 客户端可以请求列出服务器提供的资源,将会看到笔记资源列表 (初始为空)。
    • 调用工具: 客户端可以调用名为 'add-note' 的工具,并提供 'name' (笔记名称) 和 'content' (笔记内容) 作为参数来创建新的笔记。
    • 读取资源: 创建笔记后,客户端可以根据笔记资源的 URI (例如 'note://internal/{note_name}') 读取笔记的内容。
  3. 开发阶段使用 MCP Inspector (可选) 为了方便开发和调试,可以使用 MCP Inspector 工具监控服务器的运行情况。参考仓库 'README.md' 中 "Development Tools" 部分的说明,使用 Inspector 运行服务器。

信息

分类

生产力应用