MCP Server Setup Documentation について
Python で MCP サーバーを構築し、Claude Desktop から AWS や GitHub の API を利用するための開発者向けガイドです。セットアップ、認証情報の管理、テスト、トラブルシューティングを扱います。
主な機能
- 01Python MCP サーバーの構築
- 02Claude Desktop 接続の設定
- 03環境変数による認証情報管理
- 04サーバーのテストと問題解決
活用シーン
- 01Claude に AWS リソース管理機能を提供
- 02Claude から GitHub リポジトリ情報を取得
MCP 対応
カスタム関数をツールとして Claude Desktop に公開する MCP サーバーの作成方法と、ローカルテストおよびクライアント設定を説明します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバーのセットアップドキュメント
概要
このガイドでは、Claude Desktop と連携する Model Control Protocol(MCP)サーバーのセットアップ方法を詳しく説明します。MCP サーバーを使用すると、Claude は AWS サービスや GitHub などの外部システムや API と連携できるようになり、その機能が拡張されます。
前提条件
- Python 3.8+ がインストールされていること
- Claude Desktop アプリケーション
uvパッケージマネージャーがインストールされていること- Python とコマンドライン操作の基本的な知識
インストール手順
1. 必要なパッケージをインストールする
まず、必要なパッケージが揃っていることを確認します。
# Install UV if not already installed
pip install uv
# Install MCP and dependencies using UV
uv add mcp[cli] pygithub boto3
2. サーバースクリプトを作成する
任意のディレクトリに server.py という名前のファイルを作成し、独自の関数を実装します。
server.py の構成例:
from mcp.server.fastmcp import FastMCP
import boto3
from dotenv import load_dotenv
from github import Github
load_dotenv()
# Initialize MCP server
mcp = FastMCP("Custom MCP Server", "0.1.0")
# Define your custom functions
@mcp.tool()
def fetch_aws_ec2_instances(region_name="us-east-1"):
"""
Fetches and describes all EC2 instances in the specified AWS region.
:param region_name: The name of the AWS region (e.g., 'us-east-1')
:return: A list of EC2 instances in the specified region.
"""
ec2 = boto3.client('ec2', region_name=region_name)
return ec2.describe_instances()
# Add more custom tools as needed...
3. サーバーをテストする
Claude Desktop に接続する前に、サーバーが正常に動作することを確認するため、テストします。
uv run mcp install server.py
通常はポート 8000 でサーバーが実行中であることを示す出力が表示されます。
4. Claude Desktop を設定する
- Claude Desktop アプリケーションを開きます
- 「File」>「Settings」>「Developer」>「Edit Config」に移動します
- MCP サーバーの詳細を設定に追加します。
{
"mcpServers": {
"Custom MCP Server": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli], pygithub, boto3",
"mcp",
"run",
"/full/path/to/your/server.py"
]
}
}
}
重要な設定に関する注意事項:
/full/path/to/your/server.pyを、server.py ファイルの絶対パスに置き換えてください- 必要に応じて、追加のパッケージを
--with引数に追加してください - 「Custom MCP Server」は任意の名前に変更できます
5. MCP サーバーを有効にして起動する
- Claude Desktop で「File」>「Settings」>「Developer」に移動します
- 設定した MCP サーバーをオンにします
- Claude がサーバーへの接続を試みます
高度な設定
環境変数
API キーや認証情報を安全に扱うには、.env ファイルを使用します。
server.py と同じディレクトリに .env ファイルを作成します。
.env file
AWS_ACCESS_KEY_ID=your_access_key_here AWS_SECRET_ACCESS_KEY=your_secret_key_here GITHUB_TOKEN=your_github_token_here
必要に応じて、ほかの環境変数を追加します
カスタム依存関係の追加
サーバーで追加の Python パッケージが必要な場合は、Claude Desktop の設定にある --with 引数に追加します。
"args": [
"run",
"--with",
"mcp[cli], pygithub, boto3, pandas, requests",
"mcp",
"run",
"/path/to/server.py"
]
エラー処理
サーバーの関数に適切なエラー処理を実装します。
@server.function()
def some_function(param):
try:
# Function logic
return result
except Exception as e:
return {"error": str(e), "status": "failed"}
トラブルシューティング
よくある問題と解決方法
-
接続拒否
- サーバーが実行中であることを確認します
- ポートがすでに使用中でないか確認します
- ファイアウォールの設定を確認します
-
インポートエラー
- すべての依存関係が
--with引数に含まれていることを確認します - パッケージを手動でインストールしてみます:
uv pip install [package-name]
- すべての依存関係が
-
権限エラー
- server.py のファイル権限を確認します
- AWS/GitHub の認証情報が正しく設定されていることを確認します
-
関数が見つからない
- 関数に
@server.function()デコレーターが正しく付与されていることを確認します - サーバーと Claude Desktop の両方を再起動します
- 関数に
使用例
AWS リソース管理
@server.function()
def describe_ec2_instances(region_name="us-east-1"):
ec2 = boto3.client('ec2', region_name=region_name)
return ec2.describe_instances()
@server.function()
def start_ec2_instance(instance_id, region_name="us-east-1"):
ec2 = boto3.client('ec2', region_name=region_name)
return ec2.start_instances(InstanceIds=[instance_id])
GitHub 連携
@server.function()
def fetch_github_repo_info(repo):
g = Github(os.getenv("GITHUB_TOKEN"))
repo = g.get_repo(repo)
return {
"name": repo.name,
"description": repo.description,
"stars": repo.stargazers_count,
"forks": repo.forks_count
}
セキュリティに関する考慮事項
- server.py ファイルに認証情報をハードコードしないでください
- 機密情報には環境変数を使用してください
- MCP サーバーに認証を実装することを検討してください
- MCP サーバーを通じて公開する関数には注意してください
リソース
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。