article
README
🚀 谷歌表单与CamelAIOrg集成项目
本项目展示了如何借助Model Context Protocol(MCP)协议,将谷歌表单与CamelAIOrg代理服务进行集成。用户能够通过自然语言发起创建表单的请求,系统内部则利用MCP协议完成交互,为表单创建提供了便捷、高效的方式。
🚀 快速开始
安装与运行
使用Docker运行
docker-compose up --build
此命令将启动MCP服务器(监听5000端口)和代理服务(监听5001端口)。
环境配置
创建项目根目录下的.env文件:
# 谷歌API凭证
GOOGLE_CLIENT_ID=你的_client_id
GOOGLE_CLIENT_SECRET=你的_client_secret
GOOGLE_REFRESH_TOKEN=你的_refresh_token
# 服务器配置
FLASK_ENV=development
PORT=5000
DEBUG=True
# CamelAIOrg代理配置
AGENT_ENDPOINT=http://agents:5001/process
AGENT_API_KEY=你的代理API密钥
获取刷新令牌步骤:
- 使用OAuth 2.0 Playground工具:https://developers.google.com/oauthplayground/
- 配置项目凭证
- 筛选所需权限:
- https://www.googleapis.com/auth/forms
- https://www.googleapis.com/auth/drive
- https://www.googleapis.com/auth/drive.file
Web界面访问
访问地址:http://localhost:5000
界面功能:
- 输入自然语言请求
- 查看组件间交互流程
- 查看生成的表单信息和链接
- 查看MCP协议包交换记录
✨ 主要特性
功能说明
- 用户界面
- 支持提交自然语言请求,例如:"创建一个包含3个问题的客户反馈表单"。
- 可查看组件间请求流程。
- 能查看生成的表单详细信息和链接。
- 内部交互
- 代理服务可解析自然语言并生成MCP请求。
- MCP服务器处理表单创建请求,并与谷歌API通信。
- 请求结果通过MCP协议返回给代理服务。
- 支持场景
- 客户反馈收集
- 市场调研问卷
- 活动RSVP表单
- 任意自定义问题类型
📚 详细文档
项目架构
google-form-mcp-server/
├── server/ # MCP服务器实现
│ ├── app.py # 主Flask应用程序
│ ├── config.py # 配置管理
│ ├── forms_api.py # 谷歌表单API集成
│ ├── mcp_handler.py # MCP协议处理逻辑
│ ├── requirements.txt # Python依赖项
│ ├── static/ # 静态资源文件
│ ├── templates/ # HTML模板
│ └── utils/ # 工具函数
├── agents/ # CamelAIOrg代理服务
│ ├── agent_integration.py # 代理集成实现
│ ├── agent_server.py # 代理API服务器
│ └── requirements.txt # Python依赖项
├── Dockerfile # MCP服务器Docker镜像配置
├── docker-compose.yml # 多容器部署配置
├── .env.example # 环境变量示例文件
└── README.md # 项目文档
API接口说明
MCP服务器接口(5000端口)
GET /api/health:健康检查GET /api/swagger:查看API文档POST /api/create-form:创建新表单- 支持JSON格式请求体,如:
{ "form_name": "客户反馈表单", "questions": [ { "type": "文本", "prompt": "您的姓名" }, { "type": "邮箱", "prompt": "您的邮箱地址" } ] }
- 支持JSON格式请求体,如:
代理服务接口(5001端口)
POST /process:处理自然语言请求- 支持HTTP POST请求,如:
curl -X POST http://localhost:5001/process \ -H "Content-Type: application/json" \ -d '{"command": "创建表单", "details": {"question_count": 3}}'
- 支持HTTP POST请求,如:
🔧 技术细节
项目依赖
- Python 3.8+
- Flask框架
- google-auth库
- requests库
贡献指南
- 提交代码前请先格式化(
black .) - 提交PR时需包含单元测试
- 现有功能不足之处请在Issues中提出
📄 许可证
项目采用MIT许可证,具体条款参见LICENSE文件。
👏 致谢
感谢以下项目的支持:
- Model Context Protocol(MCP)社区
- CamelAIOrg开发团队
- 谷歌开发者服务
扫码联系在线客服