Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

GitHub plugin: issue_write / create_pull_request stall in headless automations on the MCP App form (needs X-MCP-Features opt-out)

未关闭 适合新手
#1,025 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
72/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
github, json
领域
tooling

调研方向

从 third_party/github/mcp.json 以及暴露 GITHUB_PERSONAL_ACCESS_TOKEN 的插件设置开始;停滞发生是因为只发送了 Authorization,而无头运行无法提交 MCP App 表单。决定是将 X-MCP-Features: mcp_apps_disable_form_deferral 添加到该 header 集合中,还是将其作为可选插件变量暴露,然后验证自动化可以运行 issue_write 并在没有表单的情况下创建 issue。外部决策逻辑位于 github-mcp-server 的 pkg/github/ui_capability.go 中,但修改属于此插件的配置。

由索引模型根据 Issue 内容生成。

描述

Summary

Since around Oct 22, Cursor automations that create issues through the github plugin (third_party/github) stop at an interactive approval form, and no issue is created. When you watch the run, it stops on a prompt. In an automation nobody is there to click Submit, so the run ends with no issue.

This isn't a token or permissions problem. Reconnecting with a fine-grained PAT that has issue write access didn't change anything.

Cause

GitHub's MCP server now hands form-backed write tools (issue_write, create_pull_request, update_pull_request) off to an MCP App form whenever the client advertises the io.modelcontextprotocol/ui capability. In that case the tool returns an "awaiting form submission" result ("An interactive form has been shown to the user… STOP… The issue has NOT been created yet") instead of creating the issue.

  • Form deferral is on by default: github/github-mcp-server@63f559545320fa72eaf184c4a42e05904c09e817 (#3348)
  • Decision logic: shouldDeferToForm in pkg/github/ui_capability.go
  • Opt-out: github/github-mcp-server@a217a7f43a76a4cd6909ba6814d88a886064488c adds the mcp_apps_disable_form_deferral feature flag, which the remote server accepts through the X-MCP-Features header.

The plugin's mcp.json only sends Authorization, and the plugin's settings only expose GITHUB_PERSONAL_ACCESS_TOKEN. That leaves plugin users no way to opt out.

Workaround (confirmed working)

Add a custom (non-plugin) MCP server with the extra header:

{
  "mcpServers": {
    "github-direct": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer <token>",
        "X-MCP-Features": "mcp_apps_disable_form_deferral"
      }
    }
  }
}

With this header, issue_write creates the issue directly again.

Suggested fix

Any of these would work:

  1. Don't advertise the MCP Apps UI capability to this server in headless runs (automations and background agents), since nobody can submit the form there.
  2. Add "X-MCP-Features": "mcp_apps_disable_form_deferral" to the plugin's mcp.json headers.
  3. Expose an optional plugin variable for X-MCP-Features so users can opt out themselves.
主要语言
TypeScript
星标
13.9k
派生
1.4k
平均合并
6 小时 55 分钟
30 天内合并 PR
158

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

cursor/plugins 的其他 Issue

查看 cursor/plugins 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。