返回市场
天气-mcp服务器

天气-mcp服务器

作者:terisuke5 星标更新:2025-05-07

项目介绍

MCP 天气服务

此仓库是一个使用 Model Context Protocol (MCP) 提供天气信息的简单服务。可以获取多个城市(如福冈、东京、大阪、莫斯科、纽约等)的天气信息。

<a href="https://glama.ai/mcp/servers/@terisuke/my-weather-mcp"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=535482579,4149246163&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Weather Service MCP server" /> </a> ## 许可证

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

目录

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

前提条件

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

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

安装方法

安装 Node.js 和 npm

  1. Node.js 官网 下载并安装安装程序。
  2. 安装完成后,在终端中执行以下命令进行确认:
node -v
npm -v

安装 Git

  1. Git 官网 下载并安装安装程序。
  2. 安装完成后,在终端中执行以下命令进行确认:
git --version

项目设置

创建新项目

  1. 创建一个新的目录,并进入该目录:
mkdir my-weather-mcp
cd my-weather-mcp
  1. 初始化 npm 项目:
npm init -y
  1. 安装所需的包:
npm install @modelcontextprotocol/sdk axios zod typescript @types/node https-proxy-agent
npm install --save-dev ts-node
  1. 创建 TypeScript 的配置文件:
npx tsc --init
  1. 编辑 tsconfig.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 文件中的脚本部分如下:
"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. 创建项目的目录结构:
mkdir -p src test

克隆现有项目

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

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

使用方法

构建和运行

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

npm run build && npm run start

使用检查器

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

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. 若要测试更改,请执行以下命令:
npm run build && npm run inspect
  1. 确认更改正常工作后,提交更改。

上传到GitHub

创建第一个GitHub仓库

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

初始化本地仓库并推送

  1. 在本地项目目录中初始化 Git 仓库:
git init
  1. 将更改添加到暂存区:
git add .
  1. 提交更改:
git commit -m "初始提交:MCP天气服务实现"
  1. 添加远程仓库(使用 GitHub 仓库 URL):
git remote add origin https://github.com/用户名/my-weather-mcp.git
  1. 将更改推送到远程仓库:
git push -u origin main

向现有仓库推送更改

  1. 将更改添加到暂存区:
git add .
  1. 提交更改:
git commit -m "更改内容说明"
  1. 将更改推送到远程仓库:
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 包的导入路径不正确时。请按以下方式修正:

// 错误的导入
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 可以使用代理:

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

其他问题

如果问题无法解决,请创建一个包含以下信息的问题:

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