mcpField
P
Python MCP Server Template

Python MCP Server Template

ローカル
github.com/aj-geddes開発ツール263 週間前に更新

Python MCP Server Template について

Python MCP Server Templateは、PythonでMCPサーバーを作る開発者向けのFastMCPベースのテンプレートです。対話型セットアップに加え、セキュリティ検査、テスト、監視、Dockerデプロイの仕組みを備えています。

主な機能

  1. 01対話型プロジェクト設定ウィザード
  2. 02config.pyによる一元設定
  3. 03カスタムツールの実装例
  4. 04パス検証とコマンドのサンドボックス化
  5. 05テスト、ログ、ヘルスチェック
  6. 06Dockerビルドとデプロイ対応

活用シーン

  1. 01Python MCPサーバーのひな形作成
  2. 02ファイルやデータ処理ツールの追加
  3. 03Dockerを使ったサーバーのデプロイ
  4. 04サーバーのテストとセキュリティ確認

MCP 対応

MCPサーバーを構築するためのテンプレートです。サンプルサーバーはツール、ファイルリソース、コードレビュー用プロンプトをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

🚀 Python MCP サーバーテンプレート

Python FastMCP License Docker Tests Security Production Ready Setup Time

何時間もかけず、数分で本番環境対応の MCP サーバーを作成できます

インタラクティブなセットアップウィザードを使って、このテンプレートをカスタム MCP サーバーに変換できます。すべてが一元化され、ドキュメント化されており、本番環境へのデプロイに備えています。

Python で Model Context Protocol (MCP) サーバーを構築するための、セキュリティを最優先した包括的なテンプレートです。Docker サポート、自動テスト、エンタープライズグレードの CI/CD を組み込み、ゼロから数分で本番環境に移行できます。

⚡ 2 分でできる MCP サーバーのセットアップ

# 1. Clone and enter directory
git clone https://github.com/aj-geddes/python-mcp-server-template.git
cd python-mcp-server-template

# 2. Install dependencies
pip install -r requirements.txt

# 3. Run interactive setup wizard
python quick_setup.py

# 4. Start your custom MCP server!
python mcp_server.py

これだけです!🎉 本番環境対応の MCP サーバーが、以下の状態で稼働しています。

  • ✅ カスタムツールの設定済み
  • ✅ セキュリティスキャンの有効化済み
  • ✅ Docker デプロイの準備完了
  • ✅ モニタリングとログ記録の有効化済み

🎯 構築に最適な用途

ユースケースツールの例セットアップ時間
🤖 AI ツールサーバーファイル処理、計算機、フォーマッター2 分
🔌 API 連携データベースクエリ、Web API、クラウドサービス3 分
🛠️ カスタム自動化システムコマンド、ワークフロー、データパイプライン2 分
🏢 エンタープライズソリューションセキュアで、監視され、コンプライアンスに準拠した MCP サーバー5 分

✨ 開発者にこのテンプレートが選ばれる理由

  • ⚡ 2 分でセットアップ - インタラクティブなウィザードですべてを設定
  • 🎯 設定を一元管理 - ファイルに分散させず、すべての設定を config.py に集約
  • 🛠️ ツールの追加が簡単 - 例を参考に tools/custom_tools.py にツールを追加
  • 🔒 セキュリティを標準搭載 - 自動スキャンによる A+ グレードのセキュリティ
  • 📊 本番環境対応 - モニタリング、ログ記録、Docker、ヘルスチェックを搭載

🚀 テンプレートから独自の MCP サーバーへ

インタラクティブセットアップ
python quick_setup.py

ウィザードでは、以下の情報を入力します。

  • サーバー名(例:「weather-tools-server」)
  • 説明(サーバーの機能)
  • ブランド情報(名前、メールアドレス、リポジトリ)
  • ツールの目的(構築するツールの種類)
ファイルの更新
  • config.py - すべての設定を一か所に集約
  • tools/custom_tools.py - ツール実装用のテンプレート
  • README.md - プロジェクト情報に合わせて更新
ツールの追加
# In tools/custom_tools.py
async def my_awesome_tool_impl(param1: str, param2: int) -> Dict[str, Any]:
    # Your tool logic here
    return {"result": f"Processed {param1} with value {param2}"}
どこにでもデプロイ
# Local development
python mcp_server.py

# Production with Docker
docker build -t my-mcp-server .
docker run -p 8080:8080 my-mcp-server

🛠️ 開発

コード品質ツール
# Format code
black .
isort .

# Check types
mypy mcp_server/

# Lint code
flake8 mcp_server/

# Security scan
bandit -r mcp_server/

# Run tests
pytest

# Run tests with coverage
pytest --cov=mcp_server --cov-report=html
使用可能なコマンド
コマンド説明
pytestすべてのテストを実行
pytest -m unit単体テストのみ実行
pytest -m integration統合テストのみ実行
black .すべての Python ファイルをフォーマット
isort .インポートを並べ替え
mypy mcp_server/型チェック
flake8 mcp_server/コードの静的解析
bandit -r mcp_server/セキュリティ分析
./build.shDocker イメージをビルドしてテスト

🔧 設定

環境変数
変数デフォルト値説明
MCP_SERVER_NAME"template-server"サーバー名の識別子
MCP_TRANSPORT"stdio"トランスポートの種類(stdio、http、sse)
MCP_HOST"0.0.0.0"HTTP トランスポート用のホスト
MCP_PORT"8080"HTTP トランスポート用のポート
WORKSPACE_PATH"/workspace"ファイル操作用のベースパス
セキュリティ設定

⚠️ 重要なセキュリティ上の注意事項:

  • デフォルトのホスト 0.0.0.0 はすべてのインターフェースにバインドされます。本番環境では 127.0.0.1 または特定の IP を使用してください
  • ファイル操作は WORKSPACE_PATH ディレクトリ内に制限されています
  • コマンド実行にはタイムアウト制限と入力検証が適用されます
  • ディレクトリトラバーサル攻撃を防ぐため、すべてのファイルパスが検証されます

🏗️ アーキテクチャ

コアコンポーネント
mcp_server/
├── __init__.py          # Main server implementation
├── __main__.py          # Module entry point
└── tools/               # Tool implementations (future)

mcp_server.py            # Application entry point
tests/                   # Comprehensive test suite
docker/                  # Docker configurations
scripts/                 # Build and utility scripts
利用可能なツール
ツール説明セキュリティ機能
health_check()サーバーのヘルスステータス読み取り専用の操作
echo(message)エコー機能入力検証
list_files(directory)ディレクトリ一覧パス検証
read_file(file_path)ファイル読み込みサイズ制限、パス検証
write_file(file_path, content)ファイル書き込みパス検証、エンコーディングチェック
run_shell_command(command)コマンド実行タイムアウト制限、サンドボックス化
利用可能なリソース
  • file://{path} - パス検証による安全なファイルリソースへのアクセス
利用可能なプロンプト
  • code_review_prompt(code, language, focus) - 構造化されたコードレビュー用プロンプト

🐳 Docker デプロイ

ビルドオプション
# Standard build
./build.sh

# Build with version tag
./build.sh v1.0.0

# Alternative builds
docker build -f Dockerfile.alternative -t mcp-server-alt .
docker build -f Dockerfile.fixed -t mcp-server-fixed .
本番環境へのデプロイ
# Run with volume mount
docker run -v /host/workspace:/workspace \
  -e MCP_TRANSPORT=http \
  -e MCP_PORT=8080 \
  -p 8080:8080 \
  python-mcp-server-template:latest

# Run with docker-compose
docker-compose up -d

🧪 テスト

テスト構成
tests/
├── test_mcp_server.py   # Comprehensive server tests
├── test_server.py       # Additional server tests
└── conftest.py          # Test configuration
テストのカテゴリ
  • ユニットテスト:個々の関数をテストします
  • 統合テスト:エンドツーエンドのワークフローをテストします
  • セキュリティテスト:パス検証とコマンドインジェクションをテストします
  • パフォーマンステスト:タイムアウトとリソース制限をテストします
テストの実行
# All tests
pytest

# With coverage
pytest --cov=mcp_server --cov-report=html

# Specific test types
pytest -m unit
pytest -m integration
pytest -m "not slow"

# Verbose output
pytest -v

# Stop on first failure
pytest -x

🔒 セキュリティ

セキュリティ機能
  • パス検証:ディレクトリトラバーサル攻撃を防ぎます
  • コマンドのサンドボックス化:タイムアウト付きでコマンド実行を制限します
  • ファイルサイズ制限:リソースの枯渇を防ぎます
  • 入力検証:包括的な入力サニタイズを行います
  • 環境設定:ハードコードされたシークレットはありません
セキュリティスキャン
# Run security analysis
bandit -r mcp_server/

# Check for known vulnerabilities
safety check

# Generate security report
bandit -r mcp_server/ -f json -o security-report.json

📊 監視と可観測性

ヘルスチェック
# Check server health
curl http://localhost:8080/health

# Get server status
python -c "from mcp_server import health_check; import asyncio; print(asyncio.run(health_check()))"
ロギング
  • Rich コンソール出力による構造化ロギング
  • 設定可能なログレベル
  • リクエスト/レスポンスの追跡
  • スタックトレースを含むエラー報告

🤝 コントリビューション

開発環境のセットアップ
# Install pre-commit hooks
pre-commit install

# Run full quality check
./scripts/quality-check.sh

# Create feature branch
git checkout -b feature/new-tool
コントリビューションガイドライン
  1. セキュリティを最優先:すべてのコードがセキュリティスキャンに合格する必要があります
  2. テストカバレッジ:80%以上のテストカバレッジを維持してください
  3. コード品質:すべてのリンティングと型チェックに合格してください
  4. ドキュメント:新機能についてドキュメントを更新してください
  5. 後方互換性:既存の API に影響を与えないでください

📝 ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルを参照してください。

📚 ドキュメント

🌐 ドキュメント全文

ガイド説明
🚀 クイックスタート5 分で実行を開始できます
🔒 セキュリティガイドA+ のセキュリティ機能とベストプラクティス
🏗️ API リファレンスAPI ドキュメント全文
👨‍💻 開発環境のセットアップコントリビューションと拡張
🐳 Docker ガイド本番環境向け Docker デプロイ

🎓 品質保証

このテンプレートは、Dr. Alexandra Chen の本番環境向け基準を達成しています。

  • 🟢 最終評価:GOOD(B+)- 78/100
  • 💎 セキュリティ評価:EXCEPTIONAL(A+)
  • ✅ 本番環境ステータス:デプロイ承認済み
  • 🧪 テスト結果:99 件のテストに合格
  • 🔒 セキュリティスキャン:安全(脆弱性 0 件)

🔗 リンク

🆘 サポート


⭐ MCP サーバーの素晴らしい構築に役立ったら、このリポジトリにスターを付けてください!

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。