MCP Weather Service

MCP Weather Service

A simple service using Model Context Protocol (MCP) to provide weather information for multiple cities including Fukuoka, Tokyo, Osaka, Moscow, and New York.

Category
Visit Server

Tools

get-weather

Get weather information for a city

README

MCP 天気サービス

このリポジトリは、Model Context Protocol (MCP) を使用して天気情報を提供するシンプルなサービスです。複数の都市(福岡、東京、大阪、モスクワ、ニューヨークなど)の天気情報を取得できます。

<a href="https://glama.ai/mcp/servers/@terisuke/my-weather-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@terisuke/my-weather-mcp/badge" 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_PROXY または HTTPS_PROXY を設定することで、プロキシを使用できます:

export HTTP_PROXY=http://プロキシサーバー:ポート
export HTTPS_PROXY=https://プロキシサーバー:ポート

その他の問題

問題が解決しない場合は、以下の情報を含むイシューを作成してください:

  • 発生したエラーメッセージ
  • 使用しているNode.jsとnpmのバージョン
  • 実行したコマンド
  • 期待される動作と実際の動作

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured