Skip to main content
Glama

Devin MCP プロキシサーバー

任意のMCPクライアントとDevin MCP APIをシームレスに統合するFastMCPベースのプロキシサーバーです。AIを活用したリポジトリ分析と質疑応答機能を提供します。

🚀 クイックスタート

Dockerを使用(推奨)

# 1. リポジトリをクローン
git clone https://github.com/your-username/devin-mcp-proxy.git
cd devin-mcp-proxy

# 2. 環境設定
cp .env.example .env
# .envファイルを編集してDEVIN_API_KEYを設定

# 3. ワンコマンドでデプロイ
./scripts/deploy.sh

Pythonで直接実行

# 1. 依存関係をインストール
uv sync

# 2. 環境設定
cp .env.example .env
# .envファイルを編集してDEVIN_API_KEYを設定

# 3. サーバー起動
uv run python main.py

Related MCP server: code2prompt-mcp

📋 機能

  • 🔗 MCPプロトコル準拠: 任意のMCPクライアント(Claude Desktop、Cursor、Clineなど)で動作

  • 🤖 Devin統合: DevinのAI駆動リポジトリ分析への直接アクセス

  • 🐳 Docker対応: プロダクション級設定での完全なコンテナ化

  • 🔒 セキュア: 非rootユーザー実行、環境変数管理、入力検証

  • 📊 可観測性: 組み込みヘルスチェック、包括的ログ機能

  • ⚡ 高速: 適切なエラーハンドリングを含む最適化された非同期実装

  • 📱 簡単デプロイ: ビルドとデプロイの自動化スクリプト

🏗️ アーキテクチャ

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   MCPクライアント │    │  Devin MCP       │    │   Devin MCP     │
│ (Claude等)      │───▶│  プロキシサーバー  │───▶│   APIサービス    │
│                 │    │  (このプロジェクト) │    │                 │
└─────────────────┘    └──────────────────┘    └─────────────────┘

プロキシサーバーの動作:

  1. クライアントからMCPツール呼び出しを受信

  2. ask_questionリクエストをDevin MCP APIに転送

  3. 設定されたリポジトリに関するAI生成レスポンスを返却

🛠️ 前提条件

  • Docker & Docker Compose(コンテナ化デプロイ用)

  • Python 3.10以降(直接実行用)

  • 有効なDevin APIキー(全てのデプロイで必要)

📦 インストール

オプション1: Dockerデプロイ

  1. クイックセットアップ

    git clone https://github.com/your-username/devin-mcp-proxy.git
    cd devin-mcp-proxy
    cp .env.example .env
    # .envを編集: DEVIN_API_KEY=実際のAPIキー
    ./scripts/deploy.sh
  2. 手動Docker

    docker-compose up -d --build
  3. プロダクションデプロイ

    # レジストリ用ビルド
    REGISTRY=your-registry.com ./scripts/build.sh v1.0.0
    
    # プロダクション環境でデプロイ
    docker-compose -f docker-compose.prod.yml up -d

オプション2: ローカルPython

  1. UV のインストール(未インストールの場合)

    curl -LsSf https://astral.sh/uv/install.sh | sh
    source $HOME/.local/bin/env
  2. プロジェクトセットアップ

    git clone https://github.com/your-username/devin-mcp-proxy.git
    cd devin-mcp-proxy
    uv sync
    cp .env.example .env
    # .envを編集: DEVIN_API_KEY=実際のAPIキー
  3. サーバー実行

    uv run python main.py

⚙️ 設定

環境変数

変数名

必須

デフォルト

説明

DEVIN_API_KEY

-

あなたのDevin APIキー

REPO_NAME

smartfnexta/pms

クエリ対象のリポジトリ

リポジトリ設定

対象リポジトリを変更するには、main.pyを編集:

REPO_NAME = "your-org/your-repo"  # この行を変更

🔧 使用方法

Difyとの連携

  1. DifyでMCPサーバーを追加

    • Dify管理パネルでツール → MCPに移動

    • サーバーを追加: http://localhost:8000/sse/

    • プロトコルバージョン: 2025-03-26

  2. ワークフローでの使用

    • ask_questionツールを選択

    • リポジトリに関する質問を入力

    • コードベースに関するAI駆動の洞察を取得

Claude Desktopとの連携

Claude Desktop設定に追加:

{
  "mcpServers": {
    "devin-proxy": {
      "serverUrl": "http://localhost:8000/sse",
      "headers": {
        "Authorization": "Bearer オプション認証トークン"
      }
    }
  }
}

直接APIテスト

# サーバーエンドポイントのテスト
curl http://localhost:8000

# ヘルスチェック
curl http://localhost:8000/health

📊 監視

ヘルスチェック

# Dockerヘルス状態
docker-compose ps

# 手動ヘルスチェック
curl -f http://localhost:8000 && echo "✅ 正常" || echo "❌ 異常"

ログ

# Dockerログ
docker-compose logs -f devin-mcp-proxy

# タイムスタンプ付きログ
docker-compose logs -f --timestamps devin-mcp-proxy

# システムサービスログ(systemd使用時)
sudo journalctl -u devin-mcp-proxy -f

🚀 開発

プロジェクト構成

devin-mcp-proxy/
├── main.py                 # メインサーバーアプリケーション
├── pyproject.toml          # Python依存関係(uv)
├── requirements.txt        # Python依存関係(pip)
├── Dockerfile              # コンテナ定義
├── docker-compose.yml      # ローカルデプロイ
├── .env.example           # 環境テンプレート
├── scripts/
│   ├── build.sh           # ビルド自動化
│   └── deploy.sh          # デプロイ自動化
├── CLAUDE.md              # Claude Code用ガイダンス
├── DOCKER.md              # Docker詳細ガイド
└── README.md              # このファイル

ローカル開発

# 開発モードでインストール
uv sync --dev

# 自動リロード付き実行(開発用)
uv run python main.py

# テスト実行(利用可能な場合)
uv run pytest

# コードフォーマット
uv run black main.py
uv run isort main.py

カスタムイメージのビルド

# カスタムタグでビルド
./scripts/build.sh v1.2.3

# 特定レジストリ用ビルド
REGISTRY=ghcr.io/your-org ./scripts/build.sh v1.2.3

# レジストリにプッシュ
docker push ghcr.io/your-org/devin-mcp-proxy:v1.2.3

🔒 セキュリティ

  • 非root実行: コンテナはmcpユーザーで実行

  • 環境分離: APIキーは環境変数経由

  • 入力検証: 全ての入力は処理前に検証

  • 最小攻撃面: 必要なポートのみ公開

  • 定期更新: セキュリティパッチのためのベースイメージ更新

📚 ドキュメント

🐛 トラブルシューティング

よくある問題

問題

原因

解決策

Repository not found

無効なリポジトリ名または権限

リポジトリの存在とアクセス可能性を確認

Invalid API key

間違ったまたは未設定のDevin APIキー

.envDEVIN_API_KEYを確認

Port already in use

ポート8000が使用中

docker-compose.ymlでポートを変更

Container unhealthy

サービスが応答しない

ログを確認: docker-compose logs devin-mcp-proxy

デバッグコマンド

# コンテナステータス確認
docker-compose ps

# 詳細ログ表示
docker-compose logs --details devin-mcp-proxy

# コンテナ内でシェル実行
docker-compose exec devin-mcp-proxy bash

# 環境変数確認
docker-compose exec devin-mcp-proxy env | grep DEVIN

# MCP接続の手動テスト
docker-compose exec devin-mcp-proxy python -c "
import asyncio
from main import call_devin_mcp
print(asyncio.run(call_devin_mcp('このリポジトリについて教えて')))
"

パフォーマンス調整

# メモリ制限を増加
echo "
deploy:
  resources:
    limits:
      memory: 1G
      cpus: '1.0'
" >> docker-compose.yml

# レプリカのスケール(ロードバランサーと併用)
docker-compose up -d --scale devin-mcp-proxy=3

🤝 貢献

  1. リポジトリをフォーク

  2. フィーチャーブランチを作成: git checkout -b feature/your-feature

  3. 変更を加えて十分にテスト

  4. コミット: git commit -m "機能を追加"

  5. プッシュ: git push origin feature/your-feature

  6. プルリクエストを開く

開発ガイドライン

  • Python PEP 8スタイルガイドラインに従う

  • 新機能にはテストを追加

  • 変更に対してドキュメントを更新

  • Dockerビルドが通ることを確認

  • 複数のMCPクライアントでテスト

📄 ライセンス

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

🙏 謝辞

📞 サポート


❤️ Claude Codeで作成

🏠 ホーム · 📚 ドキュメント · 🐛 問題報告 · 💬 ディスカッション

Related MCP Connectors

Related MCP Servers