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 依赖并运行后端服务
        1. 进入 backend 目录,安装依赖
        2. 复制并配置后端环境变量(backend/.env)
        3. 启动后端:运行 python run.py 或 python3 backend/run.py
    • Google Forms MCP 服务器
      • 进入 google-forms-mcp 目录,安装依赖并构建
      • 构建后在 build/index.js(或项目实际打包输出)可执行
  • 启动顺序与方式
    1. 配置环境变量以启动 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 )
    2. 启动后端服务(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。
  • 基本使用方法
    1. 启动后端服务,确保后端能够发现并启动 Google Forms MCP 子服务器(如通过 stdio 启动)。
    2. 通过后端的 MCP 接口(如 /api/mcp/call、/api/mcp/tool、/api/mcp/health)与 MCP 服务器交互,执行工具、查询表单等。
    3. 参考工具定义,使用 create_form、add_text_question、add_multiple_choice_question、get_form、get_form_responses 等工具进行表单创建与信息获取。
    4. 如需排错,查看后端日志以及 Google Forms MCP 的 stdio 子进程输出与错误日志。

备注:该仓库已经提供完整的 MCP 服务端实现(Google Forms MCP)以及用于托管和调用 MCP 子服务器的后端服务,是一个可运行且明确实现 MCP 协议核心功能的系统。要确保完整运行,需要按照上述步骤正确启动 Node/MCP 服务端与 Flask 后端,并提供所需的 Google OAuth 凭据等配置。

服务器信息