M

MCP天气

@terisuke/my-weather-mcp
0 Stars 202 次浏览 terisuke 更新于 2026-08-23

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

该服务暂未提供标准配置,请参考 README 手动接入

可用工具 (1 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

get-weather 1 个参数 需填 1 项

Get weather information for a city

必填参数:city

服务介绍

MCP 天气服务

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

许可证

本项目在 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版本
  • 执行的命令
  • 期望的行为与实际行为

相关 MCP 服务