关于 🤖 Dialogflow CX MCP Server 🚀
这是一个连接 AI 助手与 Google Dialogflow CX Agent 的 Python MCP 服务,提供文本和音频意图处理、会话管理及 Webhook 操作。
主要功能
- 01文本意图检测与匹配
- 02基于音频的意图检测
- 03对话会话管理
- 04Webhook 请求与响应处理
- 05Dialogflow CX 身份验证
适用场景
- 01将文本查询路由到 Dialogflow CX
- 02使用 Agent 解析语音音频
- 03处理 Webhook 交互
- 04维护多轮对话会话
MCP 相关
它向 MCP 客户端提供 Dialogflow CX 初始化、意图检测与匹配、音频处理、会话及 Webhook 等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🤖 Dialogflow CX MCP 服务 🚀
这是一个功能强大的 Google Dialogflow CX 模型上下文协议(MCP)服务实现,可在 AI 助手与 Google 的先进对话平台之间实现无缝集成。
💡 专业提示: 此服务搭起了 AI 助手与 Dialogflow CX 之间的桥梁,解锁强大的对话能力!
📋 概览
此项目提供一套工具,让 AI 助手能够通过标准化协议与 Dialogflow CX Agent 交互。该服务负责处理管理对话、处理意图检测以及与 Google 强大的 NLU 系统交互所涉及的全部复杂工作。
✨ 主要功能
- 🔄 与 Dialogflow CX 双向通信
- 🎯 意图检测与匹配功能
- 🎤 用于语音识别的音频处理
- 🔌 Webhook 请求/响应处理
- 📝 持久化对话的会话管理
- 🔒 安全的 API 身份验证
🔧 要求
| 要求 | 描述 | 版本 |
|---|---|---|
| 🐍 Python | 编程语言 | 3.12+ |
| ☁️ Google Cloud | 已启用 Dialogflow CX 的项目 | 最新版 |
| 🤖 Dialogflow CX | 对话 Agent | 最新版 |
| 🔑 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 | Agent 所在位置 | "us-central1" |
agentId | 你的 Dialogflow CX Agent 的 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 集成
此项目已配置为与 Smithery.ai 配合使用。Smithery.ai 是一个便于部署和管理 MCP 服务的平台。
💡 专业提示: 集成 Smithery.ai 后,你可以一键部署并轻松管理 Dialogflow CX MCP 服务!
📄 许可证
👥 贡献
欢迎贡献!请随时提交 Pull Request。
贡献流程
- 🍴 Fork 此仓库
- 🔧 创建功能分支(
git checkout -b feature/amazing-feature) - 💻 提交更改(
git commit -m 'Add some amazing feature') - 🚀 将分支推送到远程仓库(
git push origin feature/amazing-feature) - 🔍 创建 Pull Request
由 MCP Server 团队倾心打造 ❤️
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。