Feature request: expose an MCP server so AI agents can interact with PRs and issues
维护者通常 1 天内回复
评估
这个 Issue 还没有评估数据。
描述
Summary
Add a Model Context Protocol (MCP) server to the extension so that AI coding agents running inside VS Code (Claude Code, GitHub Copilot extensions, etc.) can programmatically invoke the extension's PR and issue capabilities without a human clicking UI elements.
Motivation
The extension already exposes a rich set of commands through VS Code's command palette. Agents like Claude Code can call vscode.commands.executeCommand, but that requires the agent to be running inside VS Code and to know the exact command IDs. An MCP server would give any MCP-capable agent a stable, discoverable, schema-validated interface, regardless of how it is hosted.
Concretely: when an agent is working a PR (rebasing, fixing CI, iterating on review feedback) it currently has to shell out to gh CLI for everything. If the extension exposed an MCP server the agent could instead call typed tools and get back structured data that matches what the extension already knows — open diffs, review threads, CI status, notifications — without leaving the editor context.
Proposed tool groups
The list below was derived by querying contributes.commands from the extension's package.json and grouping commands by functional area. Each group maps naturally to one or more MCP tools.
Pull request lifecycle
| MCP tool | Source commands |
|---|---|
create_pull_request |
pr.create, pr.pushAndCreate, pr.createPrMenuCreate, pr.createPrMenuDraft |
get_pull_request |
pr.openDescription, pr.refreshPullRequest, pr.refreshList |
checkout_pull_request |
pr.pick, pr.checkoutByNumber, pr.checkoutFromDescription, pr.pickInWorktree, pr.pickInWorktreeFromDescription |
merge_pull_request |
pr.merge, pr.acceptMerge, pr.createPrMenuMerge, pr.createPrMenuMergeWhenReady, pr.createPrMenuRebase, pr.createPrMenuSquash |
mark_ready_for_review |
pr.readyForReview, pr.readyForReviewAndMerge |
get_pull_request_diff |
pr.openChanges, pr.openDiffView, pr.showDiffAll, pr.showDiffSinceLastReview |
add_to_stack |
pr.addToStack |
generate_title_and_description |
pr.generateTitleAndDescription |
Review
| MCP tool | Source commands |
|---|---|
start_review |
pr.startReview, pr.preReview |
submit_review |
review.approve, review.requestChanges, review.comment |
create_review_comment |
pr.createComment, pr.createSingleComment, pr.addFileComment |
edit_review_comment |
pr.editComment, pr.saveComment, pr.deleteComment |
resolve_review_thread |
pr.resolveReviewThread, pr.unresolveReviewThread |
create_suggestion |
pr.makeSuggestion, review.createSuggestionFromChange, review.createSuggestionsFromChanges |
apply_suggestion |
pr.applySuggestion, pr.applySuggestionWithCopilot |
mark_file_viewed |
pr.markFileAsViewed, pr.unmarkFileAsViewed, pr.resetViewedFiles |
diff_with_pr_head |
review.diffWithPrHead, review.diffLocalWithPrHead, pr.diffOutdatedCommentWithHead |
Issues
| MCP tool | Source commands |
|---|---|
create_issue |
issue.createIssue, issue.createIssueFromSelection, issue.createIssueFromClipboard, issue.createIssueFromFile |
get_issue |
issue.openIssue, issue.openDescription, issue.getCurrent |
start_working_on_issue |
issue.startWorking, issue.startWorkingBranchPrompt |
stop_working_on_issue |
issue.stopWorking |
copy_issue_link |
issue.copyIssueUrl, issue.copyIssueNumber, issue.copyGithubPermalink |
Notifications
| MCP tool | Source commands |
|---|---|
list_notifications |
notifications.refresh |
mark_notification_read |
notification.markAsRead, notifications.markPullRequestsAsRead |
mark_notification_done |
notification.markAsDone, notifications.markPullRequestsAsDone |
summarize_notification |
notification.chatSummarizeNotification |
Metadata helpers (new PR creation)
| MCP tool | Source commands |
|---|---|
add_assignees |
pr.addAssigneesToNewPr |
add_reviewers |
pr.addReviewersToNewPr |
add_labels |
pr.addLabelsToNewPr |
add_milestone |
pr.addMilestoneToNewPr |
add_projects |
pr.addProjectsToNewPr |
Implementation notes
- The MCP server can be registered via
vscode.lm.registerMcpServer(available since VS Code 1.99) and activated lazily when an MCP-capable client connects. - For read-only tools (
get_pull_request,list_notifications, …) the server can delegate directly to the extension's existing data models — no extra GitHub API calls needed. - For write tools (
submit_review,merge_pull_request, …) a confirmation prompt to the user would be appropriate before the first call, similar to how Copilot Edits asks for approval. - The
github.api.preloadPullRequestinternal command suggests there is already an API surface; the MCP server could build on that.
Alternatives considered
- Using the
ghCLI: works but has no awareness of what the extension has already fetched; forces duplicate API calls and loses the extension's diff/comment context. - VS Code Language Model tools: the
vscode.lmtool registration API is closer but limited to Copilot Chat inside VS Code; MCP reaches agents running outside the editor.
Related
- MCP spec: https://modelcontextprotocol.io/
- VS Code MCP extension hosting docs: https://code.visualstudio.com/api/extension-guides/mcp
- 主要语言
- TypeScript
- 星标
- 2.6k
- 派生
- 805
- 平均合并
- 1 天 23 小时
- 30 天内合并 PR
- 41
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
microsoft/vscode-pull-request-github 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 82/100
microsoft/vscode-pull-request-github#9072 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
microsoft/vscode-pull-request-github#8792 ·
维护者通常 1 天内回复
-
Plugin no longer gives access to GitHub issues while using personal account.可能已有人在做 @alexr00 于 2 天前认领。 未关闭info-needed
microsoft/vscode-pull-request-github#9064 · 2 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Dependabot PR description is blank in VS Code but renders correctly on GitHub可能已有人在做 @alexr00 于 3 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 50/100
microsoft/vscode-pull-request-github#9063 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Configurable issue completion trigger可能已有人在做 @alexr00 于 3 天前认领。 未关闭
microsoft/vscode-pull-request-github#9062 · 已指派 1 人 ·
维护者通常 1 天内回复
查看 microsoft/vscode-pull-request-github 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 73/100
anomalyco/opencode#56380 · 1 条评论 ·
维护者通常 1 天内回复
-
enhancement
难度 2/5 1-3 小时 新手友好度 72/100
-
BUG | `MCP 服务器` | 全局层行的停用/启用与删除报 404 server row not found,编辑保存会在 profile 层复制出重复行可能已有人在做 @w6242652 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 72/100
Chocobozzz/PeerTube#7832 ·
维护者通常 3 天内回复
-
Pay to use?未关闭
难度 1/5 1 小时以内 新手友好度 66/100
darkreader/darkreader#16108 · 1 条评论 ·
维护者通常 2 天内回复