Marketing AI MCP
项目简介
- 该仓库同时包含一个可运行的 MCP 服务端实现(Google Forms MCP,使用 Node/TypeScript 实现并通过 stdio 启动)以及一个 Flask 后端,用于托管、发现与调用 MCP 服务(通过 stdio 客户端与 MCP 服务器通信)。MCP 服务器负责提供工具、资源等能力,后端负责会话管理、统一路由和跨进程通信。
主要功能点
- MCP 服务器实现与工具集合
- Google Forms MCP 服务器实现了多种工具,支持创建表单、添加文本题、添加单选题、获取表单信息与表单回应等能力(通过 Google Forms API)。
- 服务器实现遵循 MCP 的工具暴露、请求处理、响应包装等约定,支持 JSON-RPC 调用风格的请求/响应。
- 后端 MCP 容器/编排
- Flask 后端提供健康检查、MCP 端点暴露,以及与 MCP 子服务器(如 Google Forms MCP)进行通信的能力(通过 Stdio 客户端进行 JSON-RPC 交互)。
- 支持通过配置文件/环境变量将一个或多个 MCP 子服务器以 stdio 子进程方式启动并管理。
- 传输与协议
- 采用 stdio(标准输入输出)方式实现 MCP 服务端与客户端的通信,遵循 MCP JSON-RPC 的初始化与请求-响应模型。
- 安全与扩展
- 提供会话管理、可选的安全参数与 OpenAI 集成等,后端可扩展接入更多 MCP 服务器实例及工具。
安装与运行步骤
- 依赖环境
- Node.js(用于 Google Forms MCP 服务器)
- Python 及 Flask(用于后端服务/编排 MCP 子服务器)
- 安装与构建
- 后端
- 安装 Python 依赖并运行后端服务
- 进入 backend 目录,安装依赖
- 复制并配置后端环境变量(backend/.env)
- 启动后端:运行 python run.py 或 python3 backend/run.py
- 安装 Python 依赖并运行后端服务
- Google Forms MCP 服务器
- 进入 google-forms-mcp 目录,安装依赖并构建
- 构建后在 build/index.js(或项目实际打包输出)可执行
- 后端
- 启动顺序与方式
- 配置环境变量以启动 Google Forms MCP 子服务器(示例: MCP_GOOGLE_FORMS_STDIO_COMMAND=node MCP_GOOGLE_FORMS_STDIO_ARGS=["./google-forms-mcp/build/index.js"] MCP_GOOGLE_FORMS_STDIO_ENV={GOOGLE_CLIENT_ID: "...", GOOGLE_CLIENT_SECRET: "...", GOOGLE_REFRESH_TOKEN: "..."} MCP_GOOGLE_FORMS_STDIO_CWD=./google-forms-mcp )
- 启动后端服务(Flask)以托管 MCP 客户端并对外提供 API
- MCP 客户端配置(供 MCP 客户端读取)
MCP 客户端配置示例(JSON,供 MCP 客户端读取使用,非代码块展示):
{
"server": "google_forms",
"command": "node",
"args": ["./google-forms-mcp/build/index.js"],
"cwd": "./google-forms-mcp",
"env": {
"GOOGLE_CLIENT_ID": "your-google-client-id",
"GOOGLE_CLIENT_SECRET": "your-google-client-secret",
"GOOGLE_REFRESH_TOKEN": "your-google-refresh-token"
}
}
说明:
- server 字段对应后端 registry 识别的服务器名称,与 backend/app/mcp/registry.py 的逻辑保持一致(google_forms)。
- command/args/cwd/env 需结合实际部署路径与凭证信息配置,确保 MCP 子服务器能够正确启动并访问所需 API。
- 基本使用方法
- 启动后端服务,确保后端能够发现并启动 Google Forms MCP 子服务器(如通过 stdio 启动)。
- 通过后端的 MCP 接口(如 /api/mcp/call、/api/mcp/tool、/api/mcp/health)与 MCP 服务器交互,执行工具、查询表单等。
- 参考工具定义,使用 create_form、add_text_question、add_multiple_choice_question、get_form、get_form_responses 等工具进行表单创建与信息获取。
- 如需排错,查看后端日志以及 Google Forms MCP 的 stdio 子进程输出与错误日志。
备注:该仓库已经提供完整的 MCP 服务端实现(Google Forms MCP)以及用于托管和调用 MCP 子服务器的后端服务,是一个可运行且明确实现 MCP 协议核心功能的系统。要确保完整运行,需要按照上述步骤正确启动 Node/MCP 服务端与 Flask 后端,并提供所需的 Google OAuth 凭据等配置。