Skip to main content
Glama
by terisuke

MCP 天気サービス

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

このプロジェクトは MITライセンス の下で公開されています。

目次

  1. 前提条件

  2. プロジェクトのセットアップ

  3. 使い方

  4. 開発ガイド

  5. GitHubへのアップロード

  6. トラブルシューティング

Related MCP server: Weather Query MCP Server

前提条件

このプロジェクトを実行するには、以下のソフトウェアが必要です:

  • 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のバージョン

  • 実行したコマンド

  • 期待される動作と実際の動作

One-click Deploy
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/terisuke/my-weather-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server