内容
# 🤖 Dialogflow CX MCP Server 🚀



一个强大的模型控制协议(Model Control Protocol,MCP)服务器实现,专为**Google Dialogflow CX**设计,实现AI助手与Google先进对话平台之间的无缝集成。
> 💡 **专业提示:** 该服务器弥合了AI助手与Dialogflow CX之间的差距,解锁强大的对话能力!
## 📋 概述
该项目提供了一套工具,使AI助手能够通过标准化协议与Dialogflow CX代理进行交互。服务器处理管理对话、处理意图检测以及与Google强大的自然语言理解(NLU)系统接口的所有复杂性。
### ✨ 主要特性
- 🔄 与 Dialogflow CX 的双向通信
- 🎯 意图检测和匹配能力
- 🎤 语音识别的音频处理
- 🔌 Webhook 请求/响应处理
- 📝 持久对话的会话管理
- 🔒 安全的 API 认证
## 🔧 需求
| 需求 | 描述 | 版本 |
|-------------|----------------------------|--------|
| 🐍 Python | 编程语言 | 3.12+ |
| ☁️ Google Cloud | 启用 Dialogflow CX 的项目 | 最新版 |
| 🤖 Dialogflow CX | 对话代理 | 最新版 |
| 🔑 API Credentials | Google 服务的认证 | - |
## 🚀 安装
### 🐳 使用 Docker
```bash
```
# 克隆仓库
git clone https://github.com/Yash-Kavaiya/mcp-server-conversation-agents.git
cd mcp-server-conversation-agents
# 构建 Docker 镜像
docker build -t dialogflow-cx-mcp .
# 运行容器
docker run -it dialogflow-cx-mcp
```
### 💻 手动安装
```bash
```
# 克隆仓库
git clone https://github.com/Yash-Kavaiya/mcp-server-conversation-agents.git
cd mcp-server-conversation-agents
# 创建虚拟环境(可选但推荐)
python -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
# 安装包
pip install -e .
## ⚙️ 配置
您需要提供以下配置参数:
| 参数 | 描述 | 示例 |
|------|------|------|
| `dialogflowApiKey` | 您的 Dialogflow API 密钥 | `"abc123def456"` |
| `projectId` | Google Cloud 项目 ID | `"my-dialogflow-project"` |
| `location` | 代理的位置 | `"us-central1"` |
| `agentId` | 您的 Dialogflow CX 代理 ID | `"12345-abcde-67890"` |
这些可以设置为环境变量:
```bash
export DIALOGFLOW_API_KEY=your_api_key
export PROJECT_ID=your_project_id
export LOCATION=your_location
export AGENT_ID=your_agent_id
```
## 📊 架构
```mermaid
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 Server 提供了以下工具供 AI 助手使用:
### 🔍 initialize_dialogflow
使用您的项目详细信息初始化 Dialogflow CX 客户端。
```python
await initialize_dialogflow(
project_id="your-project-id",
location="us-central1",
agent_id="your-agent-id",
credentials_path="/path/to/credentials.json" # 可选
)
```
### 💬 detect_intent
从文本输入中检测意图。
```python
response = await detect_intent(
text="Hello, how can you help me?",
session_id="user123", # 可选
language_code="en-US" # 可选
)
```
### 🎤 detect_intent_from_audio
处理音频文件以检测意图。
```python
response = await detect_intent_from_audio(
audio_file_path="/path/to/audio.wav",
session_id="user123", # 可选
sample_rate_hertz=16000, # 可选
audio_encoding="AUDIO_ENCODING_LINEAR_16", # 可选
language_code="en-US" # 可选
)
```
### 🎯 match_intent
在不影响对话会话的情况下匹配意图。
```python
response = await match_intent(
text="What are your hours?",
session_id="user123", # 可选
language_code="en-US" # 可选
)
```
### 🔄 Webhook 处理
解析 webhook 请求并创建 webhook 响应:
```python
```
# 解析 webhook 请求
parsed_request = await parse_webhook_request(request_json)
# 创建一个 webhook 响应
response = await create_webhook_response({
"messages": ["你好!我今天能帮你什么?"],
"parameter_updates": {"user_name": "John"}
})
## 🔧 响应格式
以下是响应格式的示例:
<details>
<summary>📋 点击展开</summary>
```json
{
"messages": [
{
"type": "text",
"content": "你好!今天我能帮你什么?"
}
],
"intent": {
"name": "greeting",
"confidence": 0.95
},
"parameters": {
"user_name": "John"
},
"current_page": "欢迎页面",
"session_id": "user123",
"end_interaction": false
}
```
</details>
## 🔗 Smithery 集成
该项目已配置为与 [Smithery.ai](https://smithery.ai/) 一起使用,这是一个允许轻松部署和管理 MCP 服务器的平台。
> 💡 **专业提示:** Smithery.ai 集成支持一键部署和简化管理您的 Dialogflow CX MCP 服务器!
## 📄 许可证
[](LICENSE)
## 👥 贡献
欢迎贡献!请随时提交 Pull Request。
### 贡献工作流程
1. 🍴 Fork 这个仓库
2. 🔧 创建一个功能分支 (`git checkout -b feature/amazing-feature`)
3. 💻 提交你的更改 (`git commit -m 'Add some amazing feature'`)
4. 🚀 推送到分支 (`git push origin feature/amazing-feature`)
5. 🔍 打开一个 Pull Request
---
<p align="center">
由 MCP Server 团队用 ❤️ 构建
</p>