03 チュートリアルで作成するもの - HiroyukiMakita/mcp-server-tutorial GitHub Wiki

03. チュートリアルで作成するもの

このチュートリアルでは、OpenWeatherMap API を利用して、指定された都市の天気情報を取得する機能を持つMCPサーバーを実際に作成します。

作成するMCPサーバーの概要

  • 名称: weather-server (仮)
  • 機能:
    • 指定された都市名に基づいて、現在の天気情報(気温、湿度、天気概況、風速など)を取得する。
    • 指定された都市名と日数に基づいて、数日間の天気予報を取得する。
  • 使用技術:
    • Node.js
    • TypeScript
    • MCP SDK (@modelcontextprotocol/sdk)
    • axios (HTTPクライアントライブラリ、OpenWeatherMap APIとの通信に使用)
    • zod (スキーマ定義およびバリデーションライブラリ)
  • 提供するMCPツール (予定):
    • get_current_weather: 指定した都市の現在の天気情報を取得するツール。
      • 入力: city (都市名、文字列)
      • 出力: 現在の天気情報 (JSON形式のテキスト)
    • get_forecast: 指定した都市の数日間の天気予報を取得するツール。
      • 入力: city (都市名、文字列), days (予報日数、数値、1〜5日)
      • 出力: 天気予報データ (JSON形式のテキスト)

学習のポイント

このMCPサーバーを作成する過程で、以下の点を重点的に学習します。

  1. MCPサーバーの基本的な構造:
    • MCPサーバーの初期化方法。
    • ツール定義の基本的な書き方。
    • 入力パラメータの受け取り方とバリデーション。
    • 処理結果の返し方。
  2. 外部APIとの連携:
    • axios を使用した外部HTTP APIへのリクエスト送信方法。
    • APIレスポンスのハンドリングと必要な情報の抽出。
    • APIキーなどの機密情報の安全な取り扱い方(環境変数経由)。
  3. 型安全な開発:
    • TypeScript と zod を用いた型定義とバリデーションにより、堅牢なコードを作成する方法。
  4. エラーハンドリング:
    • API通信エラーや予期せぬエラーが発生した場合の適切な処理方法。
    • MCPクライアントにエラー情報を伝える方法。
  5. ローカルでの実行とデバッグ:
    • 作成したMCPサーバーをローカル環境で実行し、動作を確認する手順。
    • MCP設定ファイル (mcp_settings.json) への登録方法。
  6. ユニットテストの導入:
    • 作成したツールや関数に対する簡単なユニットテストの作成方法。

このチュートリアルを通じて、あなたは実際に動作するMCPサーバーを一つ完成させ、MCP開発の基本的なスキルを習得することができます。