🤖 Dialogflow CX MCP Server 🚀 について
AI アシスタントを Google Dialogflow CX のエージェントに接続する Python 製 MCP サーバーです。テキストや音声によるインテント処理、セッション管理、Webhook 操作を提供します。
主な機能
- 01テキストによるインテント検出と照合
- 02音声によるインテント検出
- 03会話セッション管理
- 04Webhook リクエストとレスポンス処理
- 05Dialogflow CX 認証
活用シーン
- 01テキストクエリを Dialogflow CX に渡す
- 02エージェントで音声を解析する
- 03Webhook のやり取りを処理する
- 04複数ターンの会話セッションを維持する
MCP 対応
MCP クライアント向けに、Dialogflow CX の初期化、インテント検出と照合、音声処理、セッション、Webhook のツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🤖 Dialogflow CX MCP サーバー 🚀
Google Dialogflow CX 向けの強力な Model Control Protocol(MCP)サーバー実装です。AI アシスタントと Google の高度な会話プラットフォームをシームレスに統合できます。
💡 プロのヒント: このサーバーは AI アシスタントと Dialogflow CX の間をつなぎ、強力な会話機能を活用できるようにします!
📋 概要
このプロジェクトは、標準化されたプロトコルを介して AI アシスタントが Dialogflow CX エージェントとやり取りできるツール群を提供します。サーバーが会話の管理、インテント検出の処理、Google の強力な NLU システムとの連携に関する複雑な処理をすべて担います。
✨ 主な機能
- 🔄 Dialogflow CX との双方向通信
- 🎯 インテントの検出およびマッチング機能
- 🎤 音声認識のための音声処理
- 🔌 Webhook のリクエスト/レスポンス処理
- 📝 会話を継続するためのセッション管理
- 🔒 安全な API 認証
🔧 必要条件
| 必要条件 | 説明 | バージョン |
|---|---|---|
| 🐍 Python | プログラミング言語 | 3.12+ |
| ☁️ Google Cloud | Dialogflow CX を有効にしたプロジェクト | Latest |
| 🤖 Dialogflow CX | 会話エージェント | Latest |
| 🔑 API 認証情報 | Google サービスの認証 | - |
🚀 インストール
🐳 Docker を使用する場合
# Clone the repository
git clone https://github.com/Yash-Kavaiya/mcp-server-conversation-agents.git
cd mcp-server-conversation-agents
# Build the Docker image
docker build -t dialogflow-cx-mcp .
# Run the container
docker run -it dialogflow-cx-mcp
💻 手動インストール
# Clone the repository
git clone https://github.com/Yash-Kavaiya/mcp-server-conversation-agents.git
cd mcp-server-conversation-agents
# Create a virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install the package
pip install -e .
⚙️ 設定
以下の設定パラメーターを指定する必要があります。
| パラメーター | 説明 | 例 |
|---|---|---|
dialogflowApiKey | Dialogflow API キー | "abc123def456" |
projectId | Google Cloud プロジェクト ID | "my-dialogflow-project" |
location | エージェントのロケーション | "us-central1" |
agentId | Dialogflow CX エージェントの ID | "12345-abcde-67890" |
これらは環境変数として設定できます。
export DIALOGFLOW_API_KEY=your_api_key
export PROJECT_ID=your_project_id
export LOCATION=your_location
export AGENT_ID=your_agent_id
📊 アーキテクチャ
graph TD
A[AI Assistant] <-->|MCP Protocol| B[MCP Server]
B <-->|Google API| C[Dialogflow CX]
C <-->|NLU Processing| D[Intent Detection]
C <-->|Conversation Management| E[Session Management]
B <-->|Webhooks| F[External Services]
🛠️ 使用方法
MCP サーバーは AI アシスタント向けに以下のツールを公開します。
🔍 initialize_dialogflow
プロジェクトの詳細を指定して Dialogflow CX クライアントを初期化します。
await initialize_dialogflow(
project_id="your-project-id",
location="us-central1",
agent_id="your-agent-id",
credentials_path="/path/to/credentials.json" # Optional
)
💬 detect_intent
テキスト入力からインテントを検出します。
response = await detect_intent(
text="Hello, how can you help me?",
session_id="user123", # Optional
language_code="en-US" # Optional
)
🎤 detect_intent_from_audio
音声ファイルを処理してインテントを検出します。
response = await detect_intent_from_audio(
audio_file_path="/path/to/audio.wav",
session_id="user123", # Optional
sample_rate_hertz=16000, # Optional
audio_encoding="AUDIO_ENCODING_LINEAR_16", # Optional
language_code="en-US" # Optional
)
🎯 match_intent
会話セッションに影響を与えずにインテントをマッチングします。
response = await match_intent(
text="What are your hours?",
session_id="user123", # Optional
language_code="en-US" # Optional
)
🔄 Webhook の処理
Webhook リクエストを解析し、Webhook レスポンスを作成します。
# Parse a webhook request
parsed_request = await parse_webhook_request(request_json)
# Create a webhook response
response = await create_webhook_response({
"messages": ["Hello! How can I help you today?"],
"parameter_updates": {"user_name": "John"}
})
🔧 レスポンス形式
レスポンス形式の例を以下に示します。
📋 クリックして展開
{
"messages": [
{
"type": "text",
"content": "Hello! How can I help you today?"
}
],
"intent": {
"name": "greeting",
"confidence": 0.95
},
"parameters": {
"user_name": "John"
},
"current_page": "Welcome Page",
"session_id": "user123",
"end_interaction": false
}
🔗 Smithery との統合
このプロジェクトは、MCP サーバーのデプロイと管理を簡単に行えるプラットフォームである Smithery.ai と連携するように設定されています。
💡 プロのヒント: Smithery.ai との統合により、ワンクリックでのデプロイと Dialogflow CX MCP サーバーの簡単な管理が可能になります!
📄 ライセンス
👥 貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
貢献のワークフロー
- 🍴 リポジトリをフォークする
- 🔧 機能ブランチを作成する(
git checkout -b feature/amazing-feature) - 💻 変更をコミットする(
git commit -m 'Add some amazing feature') - 🚀 ブランチにプッシュする(
git push origin feature/amazing-feature) - 🔍 プルリクエストを作成する
MCP Server チームが ❤️ を込めて作成
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。