Model Context Protocol (MCP) Server Project について
GeminiとMCPサーバーのツール連携を示すコマンドラインプロジェクトです。AIのツール呼び出しを学ぶ開発者向けで、加算とTwitter/Xへの投稿を例として扱います。
主な機能
- 01CLIからGeminiとチャット
- 02MCP経由でサーバーツールを呼び出し
- 032つの数値を加算
- 04Twitter/Xの投稿を作成
活用シーン
- 01Geminiに簡単な計算を依頼
- 02会話からTwitter/Xに投稿
MCP 対応
MCPサーバーはZodの入力スキーマ付きでツールを登録し、クライアントはSSEで接続してGeminiのツール呼び出しを中継します。サーバーはツールを実行し、結果をクライアントに返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Model Context Protocol (MCP) サーバープロジェクト
このプロジェクトでは、クライアントアプリケーションと MCP(Model Context Protocol)サーバーの連携を実演し、ツール実行機能を備えた AI 対話を可能にします。
プロジェクト概要
このアプリケーションは、次の 2 つの主要なコンポーネントで構成されています。
- Google の Gemini AI モデルと MCP サーバーに接続するクライアント
- AI モデルが使用するツールを登録して提供するMCP サーバー
このシステムでは、コマンドラインインターフェースを通じて、Gemini AI モデルと対話できます。AI はユーザーの質問に応答し、ツイートの投稿や計算など、MCP サーバー上でホストされている専用ツールを実行できます。
アーキテクチャ
├── client/ # Client application
│ ├── .env # Environment variables for client
│ ├── index.js # Client implementation
│ └── package.json # Client dependencies
└── server/ # MCP server
├── .env # Environment variables for server
├── index.js # Server implementation
├── mcp.tool.js # Tool implementations
└── package.json # Server dependencies
機能
- Google の Gemini モデルを使用した AI チャットインターフェース
- MCP プロトコルを通じたツール実行
- 使用可能なツール:
addTwoNumbers:2 つの数値を加算しますcreatePost:Twitter/X に投稿を作成します
セットアップとインストール
前提条件
- Node.js(v14 以降)
- npm または yarn
- Twitter/X API の認証情報
サーバーのセットアップ
- サーバーディレクトリに移動します。
cd server - 依存関係をインストールします。
npm install - Twitter API の認証情報を使って
.envファイルを設定します。TWITTER_API_KEY=your_api_key TWITTER_API_KEY_SECRET=your_api_secret TWITTER_ACCESS_TOKEN=your_access_token TWITTER_ACCESS_TOKEN_SECRET=your_access_token_secret - サーバーを起動します。
node index.js
クライアントのセットアップ
- クライアントディレクトリに移動します。
cd client - 依存関係をインストールします。
npm install - Gemini API キーを使って
.envファイルを設定します。GEMINI_API_KEY=your_gemini_api_key - クライアントを起動します。
node index.js
使用方法
- まずサーバーを起動し、その後クライアントを起動します
- クライアントが接続すると、入力を促すプロンプトが表示されます
- 質問またはリクエストを入力します
- AI が直接応答するか、必要に応じてツールを使用します
やり取りの例:
- 「25 と 17 を足すといくつですか?」(addTwoNumbers ツールを使用します)
- 「『Hello from my MCP project!』とツイートしてください」(createPost ツールを使用します)
動作の仕組み
- クライアントが SSE(Server-Sent Events)経由で MCP サーバーに接続します
- サーバーが Zod バリデーションを使って、入力スキーマとともに使用可能なツールを登録します
- ユーザーの質問が Google の Gemini AI モデルに送信されます
- AI がツールを使うべきだと判断した場合、関数呼び出しを行います
- 関数呼び出しが MCP クライアントを経由して MCP サーバーに渡されます
- サーバーが要求されたツールを実行し、結果を返します
- 結果がユーザーに提示され、チャット履歴に追加されます
使用技術
- @modelcontextprotocol/sdk - MCP の実装用
- @google/genai - Gemini AI との連携用
- Express - Web サーバーフレームワーク
- twitter-api-v2 - Twitter API クライアント
- zod - スキーマバリデーション
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。