使用说明
项目简介
本项目是一个简单的MCP(Model Context Protocol)服务器,旨在演示如何基于MCP协议向LLM(大型语言模型)客户端提供上下文信息和工具能力。它实现了一个天气预报工具,允许LLM客户端查询美国地区的天气信息。
主要功能点
- 天气预报工具: 提供一个名为 'get-forecast' 的工具,可以根据经纬度查询美国国家气象局(NWS)提供的天气预报信息。
- MCP服务器实现: 基于 '@modelcontextprotocol/sdk' 库构建,实现了标准的MCP服务器功能,可以处理来自MCP客户端的请求。
- Stdio传输: 使用 Stdio (标准输入输出) 作为传输协议,方便与本地运行的MCP客户端进行通信,例如 Claude Desktop。
安装步骤
- 安装 Node.js 和 npm: 确保你的电脑上已经安装了 Node.js 和 npm (Node 包管理器)。
- 克隆仓库: 使用 git 命令克隆该仓库到本地:
git clone https://github.com/Alesion30/my-mcp-server.git - 进入项目目录: 打开终端,进入克隆下来的 'my-mcp-server' 目录:
cd my-mcp-server - 安装依赖: 运行 npm 命令安装项目所需的依赖包:
npm install - 构建项目: 运行 npm 命令构建项目,将 TypeScript 代码编译为 JavaScript 代码:
npm run build - 查找服务器文件路径: 运行以下命令查找构建后的服务器入口文件 'main.js' 的完整路径。请记录下这个路径,后续配置客户端时需要用到。
例如,输出可能是 '/path/to/my-mcp-server/build/main.js'。find 'pwd' -maxdepth 2 -name main.js
服务器配置
本MCP服务器主要用于配合 MCP 客户端使用,例如 Claude Desktop。以下是在 Claude Desktop 中配置本服务器的步骤。
Claude Desktop 配置 (以 macOS 为例):
-
打开配置文件: 找到 Claude Desktop 的配置文件 'claude_desktop_config.json'。在 macOS 系统中,该文件通常位于 '~/Library/Application Support/Claude/' 目录下。使用文本编辑器打开该文件。
-
添加 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' 替换为你之前步骤中找到的实际路径。
-
保存配置文件: 保存 'claude_desktop_config.json' 文件。
-
重启 Claude Desktop: 关闭并重新启动 Claude Desktop,使配置生效。
基本使用方法
-
启动 Claude Desktop: 启动配置了 MCP 服务器的 Claude Desktop 客户端。
-
验证服务器连接: 在 Claude Desktop 的设置中,检查是否成功注册并连接了名为 '"myMcp"' 的 MCP 服务器 (可以参考仓库 README 中的图片进行验证)。
-
向 Claude 提问: 在 Claude Desktop 中,你可以向 Claude 提问关于天气的问题,例如:
- "旧金山今天天气怎么样?"
- "请告诉我纽约的未来三天天气预报。"
- "查询一下经度 -122.4194,纬度 37.7749 的天气预报。"
Claude 应该能够调用 'get-forecast' 工具,从 MCP 服务器获取天气信息,并将其整合到回复中。
信息
分类
网页与API