Workflows MCP Server について
Workflows MCP Serverは、都市の天気を調べるワークフローをツールとして提供し、直接利用できるREST APIも備えています。READMEではMCP実装に互換性の問題があり得るため、簡易APIの利用を推奨しています。
主な機能
- 01`get-weather`による都市の天気取得
- 02`check-weather`プロンプトテンプレート
- 03LLMによる天気データの解釈
- 04直接利用できるREST天気エンドポイント
活用シーン
- 01都市の現在の天気の確認
- 02天気情報の自然言語での要約
- 03REST経由での天気JSON取得
MCP 対応
MCP実装はHTTP/SSEを使用し、`get-weather`ツールと`check-weather`プロンプトを公開します。READMEでは互換性の問題があり得るとされています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Workflows MCP サーバー
これは、シンプルな API を通じて都市の天気情報を提供する Model Context Protocol(MCP)サーバーです。
機能
- エージェントが利用できるツールとしてワークフローを公開します。この場合、天気ワークフローは一連のツールとして公開されます。
- あらゆる都市の天気データを取得する
get-weatherツールを公開します - LLM と簡単に連携できる
check-weatherプロンプトテンプレートを提供します - クライアントとの通信に HTTP/SSE トランスポートを使用します
- あらゆる都市の天気データを取得する
ワークフローのアーキテクチャ

get-weather ツールが呼び出されると、次のワークフローが実行されます。
- 都市名を入力として受け取ります
- OpenWeatherMap サービスに問い合わせ、その場所の現在の天気データを取得します
- 生の天気データを解釈のため LLM に渡します
- 現在の天候を、親しみやすく自然な言葉で説明して返します
このアーキテクチャにより、正確な天気データの取得と高度な処理の両方が可能になり、より会話的でわかりやすい形式で天気情報を提供できます。
現在の実装に関する注意
MCP プロトコルの実装に技術的な課題があるため、2 つの方法を用意しています。
-
オリジナルの MCP サーバー -
srcディレクトリ内の TypeScript 実装です。現在の SDK バージョンとの互換性に問題が生じる場合があります。 -
簡易版の直接 API - ルートディレクトリにあるプレーンな JavaScript 実装(
direct-server.jsとdirect-client.js)です。MCP プロトコルを使用せず、シンプルな RESTful エンドポイントを提供します。
すぐに利用する場合は、簡易版の直接 API を使用することをおすすめします。
前提条件
- Node.js 18 以降
- npm または yarn
インストール
- このリポジトリをクローンします
- 依存関係をインストールします。
npm install
使い方 - 簡易版 API
-
サーバーを起動します。
node direct-server.js -
サーバーはポート 3000 で起動し、次のエンドポイントを提供します。
- 天気 API:
http://localhost:3000/api/weather?city=New%20York - ヘルスチェック:
http://localhost:3000/health
- 天気 API:
-
クライアントの実行例を実行します。
node direct-client.js
使い方 - MCP 方式
この方式では TypeScript コードのビルドが必要で、互換性に問題が生じる場合があります。
-
プロジェクトをビルドします。
npm run build -
サーバーを起動します。
npm start -
サーバーはポート 3000 で起動します。
- SSE エンドポイント:
http://localhost:3000/sse - メッセージエンドポイント:
http://localhost:3000/messages?connectionId=YOUR_CONNECTION_ID - ヘルスチェック:
http://localhost:3000/health
- SSE エンドポイント:
接続 ID について
接続 ID は、SSE エンドポイントへの接続時に各クライアントセッションへ割り当てられる一意の識別子です。双方向通信を維持するための重要な仕組みとして機能します。
- クライアントが
/sseエンドポイントに接続すると、サーバーは一意の接続 ID を生成します - この ID は最初の SSE レスポンスでクライアントに返されます
- クライアントは、以降のすべての
/messagesエンドポイントへのリクエストに、この ID をクエリパラメーターとして含める必要があります - これにより、サーバーは適切なクライアントの SSE 接続へレスポンスを振り分けられます
たとえば、接続 ID が 1742761520489 の場合、次のようにツールを呼び出します。
http://localhost:3000/messages?connectionId=1742761520489
API リファレンス
直接 API
GET /api/weather
指定した都市の天気情報を取得します。
パラメーター:
city(string):天気を取得する都市の名前です。
戻り値:
- 天気情報を含む JSON レスポンスです。
MCP ツール
get-weather
指定した都市の天気情報を取得します。
パラメーター:
city(string):天気を取得する都市の名前です。
戻り値:
- テキスト形式の天気情報です。
MCP プロンプト
check-weather
LLM に天気情報の確認と要約を依頼するためのプロンプトテンプレートです。
パラメーター:
city(string):天気を確認する都市の名前です。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。