MCP ジェミニ サーバー
Claude のような AI アシスタントが Google の Gemini API と対話できるようにする Model Context Protocol (MCP) のサーバー実装。
プロジェクト概要
このプロジェクトは、モデルコンテキストプロトコル(MCP)に準拠したサーバーを実装し、AIアシスタントがGoogleのGeminiモデルと通信できるようにします。このMCPサーバーにより、AIアシスタントはGemini APIを介してテキスト生成やテキスト分析をリクエストしたり、チャット会話を維持したりできるようになります。
Related MCP server: Gemini MCP Server
特徴
クライアント/サーバー通信: クライアントとサーバー間の安全なメッセージ交換のための MCP プロトコルを実装します。
メッセージ処理: クライアント要求を処理し、適切な応答を送信します。
エラー処理とログ記録: サーバーのアクティビティをログに記録し、スムーズなエラー回復を保証します。
環境変数のサポート: 機密情報を安全に保存するために
.envファイルを使用します。API テストとデバッグ: Postman とテスト スクリプトを使用した手動テストと自動テストをサポートします。
インストール
前提条件
Python 3.7以上
Google AI APIキー
設定
このリポジトリをクローンします:
git clone https://github.com/yourusername/mcp-gemini-server.git
cd mcp-gemini-server仮想環境を作成します。
python -m venv venv仮想環境をアクティブ化します。
Windows:
venv\Scripts\activatemacOS/Linux:
source venv/bin/activate
依存関係をインストールします:
pip install -r requirements.txtGemini API キーを使用してルート ディレクトリに
.envファイルを作成します。
GEMINI_API_KEY=your_api_key_here使用法
サーバーを起動します。
python server.pyサーバーはデフォルトで
http://localhost:5000/で実行されます。POSTメソッドを使用してMCPリクエストを
/mcpエンドポイントに送信する
リクエスト例
import requests
url = 'http://localhost:5000/mcp'
payload = {
'action': 'generate_text',
'parameters': {
'prompt': 'Write a short poem about AI',
'temperature': 0.7
}
}
response = requests.post(url, json=payload)
print(response.json())APIリファレンス
エンドポイント
GET /health: サーバーが稼働しているかどうかを確認するGET /list-models: 利用可能なGeminiモデルの一覧POST /mcp: MCPリクエストのメインエンドポイント
MCPアクション
1. テキストを生成する
Gemini を使用してテキスト コンテンツを生成します。
パラメータ:
prompt(必須): 生成のためのテキストプロンプトtemperature(オプション):ランダム性(0.0~1.0)を制御max_tokens(オプション): 生成するトークンの最大数
例:
{
"action": "generate_text",
"parameters": {
"prompt": "Write a short story about a robot",
"temperature": 0.8,
"max_tokens": 500
}
}2. テキスト分析
テキストコンテンツを分析します。
パラメータ:
text(必須): 分析するテキストanalysis_type(オプション): 分析の種類 ('sentiment'、'summary'、'keywords'、または 'general')
例:
{
"action": "analyze_text",
"parameters": {
"text": "The weather today is wonderful! I love how the sun is shining.",
"analysis_type": "sentiment"
}
}3. チャット
ジェミニと会話しましょう。
パラメータ:
messages(必須): 'role' と 'content' を持つメッセージオブジェクトの配列temperature(オプション):ランダム性(0.0~1.0)を制御
例:
{
"action": "chat",
"parameters": {
"messages": [
{"role": "user", "content": "Hello, how are you?"},
{"role": "assistant", "content": "I'm doing well! How can I help?"},
{"role": "user", "content": "Tell me about quantum computing"}
],
"temperature": 0.7
}
}エラー処理
サーバーは適切な HTTP ステータス コードとエラー メッセージを返します。
200: リクエスト成功400: 不正なリクエスト (パラメータが欠落しているか無効です)500: サーバーエラー (API の問題など)
テスト
付属のテスト スクリプトを使用して、さまざまな機能をテストします。
# Test all functionalities
python test_client.py
# Test specific functionality
python test_client.py text # Test text generation
python test_client.py analyze # Test text analysis
python test_client.py chat # Test chat functionalityMCPプロトコル仕様
ここで実装されているモデルコンテキストプロトコルは、次の仕様に従います。
リクエスト形式:
action: 操作を指定する文字列parameters: アクション固有のパラメータを含むオブジェクト
応答形式:
result: 操作結果を含むオブジェクトerror: エラーを説明する文字列(該当する場合)
ライセンス
MITライセンス
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.