Google表单MCP管理工具

一个通过Model Context Protocol (MCP)管理Google表单的工具,支持表单的创建、更新、关闭及问题管理。

  • by m5tshift
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 m5tshift/google-forms-mcp

使用说明

谷歌表单MCP

Google Forms MCP是一个工具,允许LLM通过Model Context Protocol(MCP)管理Google表单。

机会

  • 获取所有用户表单的列表
  • 通过ID获取特定表单的信息
  • 创造新形式
  • 更新现有表格
  • 截止新答复的表格
  • 将更新应用于表单元素(问题、字段等)

依赖

  • fastmcp 与MCP一起工作的库
  • google-api-python-client Google API客户端库
  • google-auth, google-auth-httplib2, google-auth-oauthlib -使用Google进行身份验证的库

设置

  1. 建立依赖关系:

    紫外线:

    uv sync
    

    pip:

    pip install -r requirements.txt
    
  2. 获取文件 credentials.json 通过OAuth 2.0设置 谷歌云控制台:

    • 创建新项目或使用现有项目
    • 启用Google Forms API和Google Drive API
    • 创建OAuth 2.0凭据
    • 下载JSON文件并将其重命名为 credentials.json
  3. 要测试工具导入并获取token.json,请运行MCP服务器:

    python server.py
    

    第一次启动时,将打开用于身份验证的网页,并在成功连接后创建一个文件 token.json 用于存储访问令牌。

可用工具

get_form(form_id)

通过ID元数据和元素(问题/字段)获取有关表单的所有信息。

  • 参数: form_id (STR)-Google Forms中的表单ID
  • 返回:表单对象,包含表单信息、设置、问题列表等。

list_forms()

通过Google Drive获取所有用户表单的列表。

  • 返回:表单对象数组-每个对象至少包含“id”和“name”

upsert_form(form_id, title, description)

创建新表单或更新现有表单(通过Formu ID)。

  • 参数:
    • form_id (str,optional)-用于更新的表单ID或用于创建新表单的none
    • title (str)-表单标题
    • description (str,optional)表单描述
  • 返回:有关创建/更新表单的信息

close_form(form_id)

关闭新的回复表单-停止接收新的提交。调用后,表单将保留,其结构将保留,但不会接受新的响应。

  • 参数: form_id (str)-要“关闭”的表单ID
  • 返回:更新的表单设置

apply_questions_patch(form_id, requests)

通过BatchUpdate将一组操作(补丁)应用于表单的问题/元素。 允许:

  • 添加/创建问题/项目(CreateItem)
  • 删除项目(deleteitem)
  • 移动项目(MoveItem)
  • 修改现有项目(updateitem)
  • 任何组合在同一时间-所有操作都将应用于同一事务
  • 参数:
    • form_id (str) - 表单ID
    • requests (List[dict])–Google Forms API格式的操作列表
  • 返回:更新的API响应

使用Claude Desktop

要在Claude Desktop上使用MCP服务器:

  1. 验证服务器.py文件中的mcp.run(…)是否安装在 stdio:

    mcp.run(transport="stdio")
    
  2. 配置Claude Desktop以连接到MCP服务器: 设置->开发人员->编辑配置

    claude_desktop_config json

    {
       "mcpServers": {
          "GoogleFormsMCP": {
             "command": "uv",
             "args": [
             "--directory",
             "/Путь/к/директории/проекта/",
             "run",
             "server.py"
             ]
          }
       }
    }
    

授权

该应用程序使用OAuth 2.0访问Google Forms API。第一次启动时,将打开浏览器进行用户身份验证。令牌存储在文件中 token.json.