MCP_Open は何をしますか?
このプロジェクトは、Claude、GPT、Gemini、またはオープンソースモデルなど、あらゆるLLMをカスタムツール、プロンプト駆動スキル、リモートサーバーネットワークと単一の統一プロトコル層で橋渡しする、本番環境対応のMCPサーバーです。
特徴
- 任意のLLMとの互換性: Claude、GPT、Gemini、およびオープンソースモデルをサポート
- カスタムツール: 任意のAPI、データベース、またはサービスと連携するツールを作成
- プロンプト駆動スキル: 動的プロンプトテンプレートによる高度なワークフロー
- リモートサーバーネットワーク: 分散MCPサーバー間のシームレスな通信
- 統一プロトコル層: MCP/SSEプロトコルに基づく標準化されたインターフェース
必要条件
- Python 3.10以上
- Node.js 18以上(オプション)
- APIキー(使用するLLMプロバイダーによる)
インストール
git clone https://github.com/RockyRocks/MCP_Open.git
cd MCP_Open
pip install -r requirements.txt
クイックスタート
- 設定ファイル
config.yamlを編集してLLMプロバイダーを設定します:
llm:
provider: "openai" # claude, gemini, openai, または "local"
api_key: "${OPENAI_API_KEY}"
model: "gpt-4"
- サーバーを起動します:
python server.py --config config.yaml
- MCPクライアントから接続します(例:Claude Code):
{
"mcpServers": {
"my-server": {
"command": "python",
"args": ["server.py", "--config", "config.yaml"],
"env": {
"OPENAI_API_KEY": "your-key-here"
}
}
}
}
カスタムツールの定義
tools/ディレクトリに新しいPythonファイルを作成します:
# tools/weather.py
from mcp_open import tool
@tool(
name="get_weather",
description="指定された都市の現在の天気を取得します",
parameters={
"city": {
"type": "string",
"description": "都市名"
}
}
)
async def get_weather(city: str) -> dict:
# 天気APIを呼び出すロジック
return {"temperature": 22, "conditions": "曇り"}
プロンプトスキルの定義
skills/ディレクトリにYAMLファイルを作成します:
# skills/code_review.yaml
name: "コードレビュースキル"
description: "提供されたコードの包括的なレビューを実行します"
prompt: |
あなたはシニアソフトウェアエンジニアです。
以下のコードをレビューし、改善点を提案してください:
{code}
フォーカスエリア:
- セキュリティ
- パフォーマンス
- 可読性
- ベストプラクティス
リモートサーバーとの連携
リモートMCPサーバーに接続するには:
python client.py --connect https://remote-server.example.com/mcp
環境変数
| 変数名 | 説明 | 必須 |
|---|---|---|
OPENAI_API_KEY | OpenAI APIキー | OpenAI使用時 |
ANTHROPIC_API_KEY | Anthropic APIキー | Claude使用時 |
GOOGLE_API_KEY | Google APIキー | Gemini使用時 |
MCP_PORT | サーバーポート(デフォルト:8000) | 任意 |
MCP_HOST | サーバーホスト(デフォルト:0.0.0.0) | 任意 |
アーキテクチャ
+-----------+ MCP/SSE +-------------+
| LLM | <--------------> | MCP_Open |
| (Claude, | | サーバー |
| GPT等) | +------+------+
+-----------+ |
|
+---------+---------+
| |
+-----+-----+ +-------+------+
| ツール | | リモート |
| レジストリ | | サーバー |
+-----------+ +--------------+
ライセンス
MITライセンス
貢献
バグレポートや機能リクエストはGitHub Issuesまでお寄せください。
プルリクエストも歓迎します。大きな変更を加える前に、まずissueを作成して変更内容について議論してください。