使用说明

项目简介

本项目是一个简单的MCP(Model Context Protocol)服务器,旨在演示如何基于MCP协议向LLM(大型语言模型)客户端提供上下文信息和工具能力。它实现了一个天气预报工具,允许LLM客户端查询美国地区的天气信息。

主要功能点

  • 天气预报工具: 提供一个名为 'get-forecast' 的工具,可以根据经纬度查询美国国家气象局(NWS)提供的天气预报信息。
  • MCP服务器实现: 基于 '@modelcontextprotocol/sdk' 库构建,实现了标准的MCP服务器功能,可以处理来自MCP客户端的请求。
  • Stdio传输: 使用 Stdio (标准输入输出) 作为传输协议,方便与本地运行的MCP客户端进行通信,例如 Claude Desktop。

安装步骤

  1. 安装 Node.js 和 npm: 确保你的电脑上已经安装了 Node.js 和 npm (Node 包管理器)。
  2. 克隆仓库: 使用 git 命令克隆该仓库到本地:
    git clone https://github.com/Alesion30/my-mcp-server.git
  3. 进入项目目录: 打开终端,进入克隆下来的 'my-mcp-server' 目录:
    cd my-mcp-server
  4. 安装依赖: 运行 npm 命令安装项目所需的依赖包:
    npm install
  5. 构建项目: 运行 npm 命令构建项目,将 TypeScript 代码编译为 JavaScript 代码:
    npm run build
  6. 查找服务器文件路径: 运行以下命令查找构建后的服务器入口文件 'main.js' 的完整路径。请记录下这个路径,后续配置客户端时需要用到。
    find 'pwd' -maxdepth 2 -name main.js
    例如,输出可能是 '/path/to/my-mcp-server/build/main.js'。

服务器配置

本MCP服务器主要用于配合 MCP 客户端使用,例如 Claude Desktop。以下是在 Claude Desktop 中配置本服务器的步骤。

Claude Desktop 配置 (以 macOS 为例):

  1. 打开配置文件: 找到 Claude Desktop 的配置文件 'claude_desktop_config.json'。在 macOS 系统中,该文件通常位于 '~/Library/Application Support/Claude/' 目录下。使用文本编辑器打开该文件。

  2. 添加 MCP 服务器配置: 在 'claude_desktop_config.json' 文件中,找到 '"mcpServers"' 字段。如果不存在,则手动添加。在该字段下,添加一个新的服务器配置项,例如命名为 '"myMcp"'。配置内容如下:

    {
      "mcpServers": {
        "myMcp": {
          "command": "node",
          "args": ["/path/to/my-mcp-server/build/main.js"]
        }
      }
    }

    配置参数说明:

    • '"myMcp"': 服务器名称,可以自定义,用于在 Claude Desktop 中标识该服务器。
    • '"command": "node"': 启动服务器的命令,这里指定使用 'node' 运行时环境。请确保 'node' 命令在你的系统 PATH 环境变量中,或者提供 'node' 可执行文件的完整路径(例如 '/usr/local/bin/node')。
    • '"args": ["/path/to/my-mcp-server/build/main.js"]': 传递给 'node' 命令的参数,这里指定了服务器入口文件 'main.js' 的完整路径。请将 '/path/to/my-mcp-server/build/main.js' 替换为你之前步骤中找到的实际路径。
  3. 保存配置文件: 保存 'claude_desktop_config.json' 文件。

  4. 重启 Claude Desktop: 关闭并重新启动 Claude Desktop,使配置生效。

基本使用方法

  1. 启动 Claude Desktop: 启动配置了 MCP 服务器的 Claude Desktop 客户端。

  2. 验证服务器连接: 在 Claude Desktop 的设置中,检查是否成功注册并连接了名为 '"myMcp"' 的 MCP 服务器 (可以参考仓库 README 中的图片进行验证)。

  3. 向 Claude 提问: 在 Claude Desktop 中,你可以向 Claude 提问关于天气的问题,例如:

    • "旧金山今天天气怎么样?"
    • "请告诉我纽约的未来三天天气预报。"
    • "查询一下经度 -122.4194,纬度 37.7749 的天气预报。"

    Claude 应该能够调用 'get-forecast' 工具,从 MCP 服务器获取天气信息,并将其整合到回复中。

信息

分类

网页与API