M

MCP天气

一个简单的服务,使用模型上下文协议(MCP)为多个城市(包括福冈、东京、大阪、莫斯科和纽约)提供天气信息。

weather-servicesdeveloper-tools

192 查看 · 2026-07-07 更新

简介

一个简单的服务,使用模型上下文协议(MCP)为多个城市(包括福冈、东京、大阪、莫斯科和纽约)提供天气信息。

简介

一个简单的服务,使用模型上下文协议(MCP)为多个城市(包括福冈、东京、大阪、莫斯科和纽约)提供天气信息。

MCP 天气服务

此仓库提供了一个使用模型上下文协议 (MCP) 的简单天气信息服务。可以获取多个城市(如福冈、东京、大阪、莫斯科、纽约等)的天气信息。

Weather Service MCP server

许可证

本项目在 MIT许可证 下发布。

目录

  1. 先决条件
  2. 项目设置
  3. 使用方法
  4. 开发指南
  5. 上传到GitHub
  6. 故障排除

先决条件

运行此项目需要以下软件:

  • Node.js (版本 18 或更高)
  • npm (通常随Node.js一起安装)
  • Git

安装方法

安装Node.js和npm

  1. Node.js官方网站下载并安装安装程序。
  2. 安装完成后,在终端中执行以下命令以验证安装:

bash node -v npm -v

安装Git

  1. Git官方网站下载并安装安装程序。
  2. 安装完成后,在终端中执行以下命令以验证安装:

bash git --version

项目设置

创建新项目

  1. 创建一个新的目录,并进入该目录:

bash mkdir my-weather-mcp cd my-weather-mcp

  1. 初始化npm项目:

bash npm init -y

  1. 安装必要的包:

bash npm install @modelcontextprotocol/sdk axios zod typescript @types/node https-proxy-agent npm install --save-dev ts-node

  1. 创建TypeScript配置文件:

bash npx tsc --init

  1. 编辑tsconfig.json文件如下:

json { "compilerOptions": { "target": "ES2022", "module": "NodeNext", "moduleResolution": "NodeNext", "esModuleInterop": true, "outDir": "./build", "strict": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true }, "include": ["src/**/*"], "exclude": ["node_modules"] }

  1. 编辑package.json文件中的脚本部分如下:

json "scripts": { "build": "tsc && node -e "import('fs').then(fs => fs.default.chmodSync('build/index.js', 755))"", "start": "node build/index.js", "inspect": "npx @modelcontextprotocol/inspector build/index.js", "dev": "ts-node src/index.ts" }

  1. 创建项目的目录结构:

bash mkdir -p src test

克隆现有项目

如果您想使用现有的项目,请按照以下步骤克隆:

bash git clone https://github.com/terisuke/my-weather-mcp.git cd my-weather-mcp npm install

使用方法

构建与运行

要构建并运行项目,请使用以下命令:

bash npm run build && npm run start

使用检查器

要使用MCP检查器测试天气服务,请执行以下命令:

bash npm run build && npm run inspect当检测器启动后,您可以通过浏览器访问 http://127.0.0.1:6274 来与天气服务进行交互。

获取天气信息

使用检测器,您可以获取以下城市的天气信息:

  • 福冈
  • 东京
  • 大阪
  • 莫斯科
  • 纽约

也可以指定其他城市,但需要确保这些城市名称能够被 Open-Meteo API 识别。

开发指南

文件结构

my-weather-mcp/ ├── build/ # 编译后的JavaScript文件 ├── src/ # TypeScript源代码 │ └── index.ts # 主应用程序代码 ├── test/ # 测试文件 ├── package.json # 项目设置 ├── tsconfig.json # TypeScript配置 └── README.md # 本文件

代码修改

  1. 编辑 src/index.ts 文件以添加或修改功能。
  2. 要测试更改,请运行以下命令:

bash npm run build && npm run inspect

  1. 确认更改正常工作后,提交更改。

上传到GitHub

创建首个GitHub仓库

  1. 访问 GitHub 并创建账户或登录。
  2. 点击右上角的“+”按钮并选择“New repository”。
  3. 输入仓库名(例如:my-weather-mcp),根据需要添加描述。
  4. 设置仓库为公开或私有,并点击“Create repository”。

初始化本地仓库并推送

  1. 在本地项目目录中初始化Git仓库:

bash git init

  1. 将更改添加到暂存区:

bash git add .

  1. 提交更改:

bash git commit -m "初次提交:实现MCP天气服务"

  1. 添加远程仓库(使用GitHub仓库URL):

bash git remote add origin https://github.com/用户名/my-weather-mcp.git

  1. 将更改推送到远程仓库:

bash git push -u origin main

向现有仓库推送更改

  1. 将更改添加到暂存区:

bash git add .

  1. 提交更改:

bash git commit -m "更改内容说明"

  1. 将更改推送到远程仓库:

bash git push

创建拉取请求

  1. 访问GitHub上的仓库页面。
  2. 点击“Pull requests”标签页,然后点击“New pull request”按钮。
  3. 选择基础分支和比较分支。
  4. 点击“Create pull request”按钮。
  5. 输入拉取请求的标题和描述,然后点击“Create pull request”按钮。

故障排除

常见问题及解决方案

ERR_PACKAGE_PATH_NOT_EXPORTED 错误

此错误发生在 @modelcontextprotocol/sdk 包的导入路径不正确时。请按如下方式修正:

typescript // 错误的导入 import { McpServer } from "@modelcontextprotocol/sdk"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/transports";

// 正确的导入 import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

网络连接错误在API调用过程中如果发生网络错误,请检查代理设置。可以通过设置环境变量 HTTP_PROXYHTTPS_PROXY 来使用代理:

bash export HTTP_PROXY=http://代理服务器:端口 export HTTPS_PROXY=https://代理服务器:端口

其他问题

如果问题仍未解决,请创建一个包含以下信息的问题报告:

  • 发生的错误消息
  • 正在使用的Node.js和npm版本
  • 执行的命令
  • 期望的行为与实际行为

工具列表

  • get-weather: Get weather information for a city

来源