项目简介

example-mcp 仓库包含多个基于 Model Context Protocol (MCP) 的服务器示例,旨在帮助开发者理解和构建自己的 MCP 服务器,以便与 Cursor IDE 等 MCP 客户端集成,扩展 AI 功能。

本仓库提供了以下 MCP 服务器示例:

  • 任务管理器 (Task Manager): 允许 AI 助手创建、查看、完成和删除任务。
  • 文件浏览器 (File Explorer): 允许 AI 助手浏览本地文件系统,读取、创建和删除文件。
  • 天气服务 (Weather Service): 允许 AI 助手查询实时天气、天气预报和历史天气数据。

这些示例服务器展示了如何使用 '@modelcontextprotocol/server' 库快速搭建 MCP 服务器,并注册工具 (Tools) 来提供特定功能。

主要功能点

  • 资源 (Resources) 管理 (部分实现): 文件浏览器服务器可以视为对本地文件系统的资源管理。
  • 工具 (Tools) 注册和执行: 所有示例服务器都注册了多个工具,例如任务管理器的 'create_task'、文件浏览器的 'list_files'、天气服务的 'get_current_weather' 等,这些工具可以被 MCP 客户端(如 Cursor IDE)调用。
  • Prompt 模板 (Prompts) (未明确实现): 仓库中未明确展示 Prompt 模板功能,但 MCP 服务器框架本身支持,可以在实际应用中扩展。
  • JSON-RPC 通信: 使用 JSON-RPC 协议与客户端通信,通过 HTTP with SSE 或 Stdio 传输协议。
  • 会话管理和能力声明 (库自动处理): '@modelcontextprotocol/server' 库自动处理 MCP 服务器的基础协议细节,包括会话管理和能力声明。
  • 多种传输协议支持: 示例中主要展示了 HTTP with SSE 传输协议。

请注意: 这些示例服务器为了演示目的,功能较为简化,例如天气服务使用了 Mock 数据。实际应用中需要根据需求进行扩展和对接真实的数据源和服务。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/dang-w/example-mcp.git
    cd example-mcp
  2. 选择并进入服务器目录: 选择你想要运行的 MCP 服务器示例,例如任务管理器:

    cd mcp-servers/task-manager

    或者文件浏览器:

    cd mcp-servers/file-explorer

    或者天气服务:

    cd mcp-servers/weather-service
  3. 安装依赖: 在服务器目录下运行:

    npm install
  4. 启动服务器: 在服务器目录下运行:

    npm start

    服务器将会在 'http://localhost:端口号' 启动,端口号分别为:

    • 任务管理器: 3000
    • 文件浏览器: 3001
    • 天气服务: 3002

服务器配置 (Cursor IDE)

在 Cursor IDE 中添加 MCP 服务器时,需要配置以下信息。以任务管理器为例:

对于 SSE 传输类型:

{
  "serverName": "Task Manager MCP",
  "transportType": "sse",
  "transportOptions": {
    "url": "http://localhost:3000" //  任务管理器服务器的 URL,请根据实际情况修改端口号
  }
}

对于 Stdio 传输类型:

{
  "serverName": "Task Manager MCP",
  "transportType": "stdio",
  "transportOptions": {
    "command": "node", // 启动命令,这里使用 node 解释器
    "args": [
      "/path/to/example-mcp/mcp-servers/task-manager/index.js" //  任务管理器服务器 index.js 文件的绝对路径,请替换为实际路径
    ]
  }
}

配置步骤:

  1. 打开 Cursor IDE。
  2. 点击左下角的齿轮图标 (Settings)。
  3. 导航到 "Features" -> "MCP"。
  4. 点击 "Add New MCP Server"。
  5. 填写 "Server Name" (例如: Task Manager MCP)。
  6. 选择 "Transport Type" (SSE 或 Stdio)。
  7. 根据选择的传输类型,填写相应的 "Transport Options" (URL 或 Command/Args),请务必根据实际情况修改路径和端口号
  8. 点击 "Add"。

基本使用方法 (Cursor IDE)

成功添加 MCP 服务器后,在 Cursor IDE 的 AI 聊天面板 (Cmd+I 或 Ctrl+I) 中,你可以指示 AI 助手使用 MCP 工具。

任务管理器示例:

  • 提问: 'Please create a new task titled "编写 MCP 客户端示例" with the description "创建一个 Node.js 客户端来测试 MCP 服务器"。' (AI 助手会调用 'create_task' 工具)
  • 提问: 'Show me all the current tasks in the task manager.' (AI 助手会调用 'list_tasks' 工具)

文件浏览器示例:

  • 提问: 'List files in directory /Users/yourname/Documents' (AI 助手会调用 'list_files' 工具,请替换 '/Users/yourname/Documents' 为你的实际路径)
  • 提问: 'Read the content of file /Users/yourname/Documents/example.txt' (AI 助手会调用 'read_file' 工具,请替换 '/Users/yourname/Documents/example.txt' 为你的实际路径)

天气服务示例:

  • 提问: 'What's the current weather in New York?' (AI 助手会调用 'get_current_weather' 工具)
  • 提问: 'What's the weather forecast for London for the next 3 days?' (AI 助手会调用 'get_weather_forecast' 工具)

请根据每个示例服务器提供的工具名称和参数,在 Cursor IDE 中引导 AI 助手使用这些功能。

信息

分类

开发者工具