11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Sunwood ai labs(β)Advent Calendar 2024

Day 1

自作Claude Desktop MCP Service サーバーの最小構成を作ってみよう

Posted at

はじめに

このチュートリアルでは、OpenWeatherMap APIを使用して天気情報を提供するClaude Desktop MCPサーバーを作成します。MCPは、AIアシスタントに外部リソースやツールへのアクセスを提供するための新しいプロトコルです。

前提条件

  • Python 3.12以上
  • OpenWeatherMap APIのアカウントとAPIキー
  • macOSまたはWindows
  • uvツール

環境のセットアップ

Pythonのバージョン確認

python --version  # 3.12以上であることを確認

uvツールのインストール

macOSの場合:

brew install uv
uv --version  # 0.4.18以上であることを確認

Windowsの場合:

pip install uv

プロジェクトの作成

MCP Project Creatorを使用してプロジェクトを作成

uvx create-mcp-server --path weather_service
cd weather_service

追加の依存関係をインストール

uv add httpx python-dotenv

環境変数の設定

プロジェクトルートに.envファイルを作成:

OPENWEATHER_API_KEY=your-api-key-here

サーバーの実装

コードの取得

最小構成のコードはGitHub リポジトリから入手できます。

src/weather_service/server.pysrc/weather_service/__init__.pyを上記リポジトリからコピーしてください。

プロジェクト構造

最終的に以下のような構造になります:

weather_service/
├── src/
│   └── weather_service/
│       ├── __init__.py  # メインエントリーポイント
│       └── server.py    # サーバーの実装
├── pyproject.toml
├── .env                 # APIキーの設定
└── README.md

Claude Desktopとの連携

設定ファイルの場所

  • Windows: %APPDATA%/Claude/claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

設定の追加

claude_desktop_config.jsonに以下の設定を追加:

{
  "mcpServers": {
    "weather": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/your/weather_service",  // プロジェクトのパスを指定
        "run",
        "weather-service"
      ],
      "env": {
        "OPENWEATHER_API_KEY": "your-api-key"  // OpenWeatherMap APIキー
      }
    }
  }
}

Claudeの再起動

  1. Claudeを完全に終了
  2. Claudeを再起動
  3. 🔌メニューでweatherサーバーが表示されることを確認

動作確認

リソースの確認

Claudeで以下のURIを使用して天気情報にアクセス:

weather://London/current

天気予報の取得

get_forecastツールを使用して天気予報を取得:

{
  "city": "Tokyo",
  "days": 3
}

トラブルシューティング

デバッグ用のMCP Inspector

MCPサーバーのデバッグにはMCP Inspectorが便利です:

npx @modelcontextprotocol/inspector uv --directory path/to/weather_service run weather-service

参考リンク

このチュートリアルで作成したMCPサーバーは、基本的な天気情報の取得と予報機能を提供します。この基本構成を元に、さらに機能を追加したり、異なるAPIを利用したりしてカスタマイズすることができます。

11
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?