* Add opt-in intent-aware Copilot issue assignment tool Add `assign_copilot_to_issue_with_intent` in a new non-default toolset `copilot_issue_intents`. The tool uses GraphQL's object-form `assignees: [AssigneeUpdateInput!]` so intent metadata (rationale, confidence, is_suggestion) is attached to the Copilot entry only, while existing assignees are preserved. - Reuses the existing Copilot actor lookup, target-repository resolution, base_ref, custom_instructions, GraphQL-Features header, and direct-assignment PR polling behavior. - `is_suggestion: true` records a pending Copilot assignment intent, returns a suggestion-shaped result, and does not launch Copilot or poll for a linked PR. - `rationale` is capped at 280 characters (schema + runtime); `confidence` is validated against `LOW`/`MEDIUM`/`HIGH`. - Toolset is non-default so its inputs do not add schema bloat to the default tool surface; available via `copilot_issue_intents`, `all`, or explicit tool selection. Includes unit tests for direct assignment (with existing assignees and with base_ref/custom_instructions), the suggestion path, invalid rationale length, invalid confidence, and Copilot-not-available; a generated toolsnap; regenerated docs; and an e2e test for the suggestion path. Refs: github/plan-track-agentic-toolkit#683 * Address review: tighten description, require intent fields Per review feedback on #2909: - Trim the tool description to mirror assign_copilot_to_issue and add "Prefer this tool over assign_copilot_to_issue when available", removing the verbose is_suggestion narrative from the schema. - Make rationale, confidence, and is_suggestion required inputs (schema and runtime). is_suggestion is now always sent explicitly on the Copilot AssigneeUpdateInput entry. - Update unit tests to supply the newly-required fields and cover the missing-rationale and missing-confidence rejection paths. - Regenerate toolsnap and README. * Address review: dedupe copilot, require is_suggestion, update doc link Per @RossTarrant review feedback on #2909: - Reject requests where `is_suggestion` is omitted from the raw args before decoding. `mapstructure.WeakDecode` defaults missing bools to false, which would silently launch Copilot instead of recording a suggestion. Presence-check the raw map so callers make the choice explicit. - Skip the copilot-swe-agent actor when copying existing assignees so we don't send its actorId twice (once without metadata and once with intent metadata) when Copilot is already assigned. - Update the stale about-assigning-tasks-to-copilot reference to the redirect target (about-cloud-agent). Applied to the const message, both tool descriptions, and the e2e/unit-test literals that assert on that message. New unit tests cover the missing-is_suggestion rejection and the copilot-dedup behavior. Regenerated toolsnaps.
28 KiB
Remote GitHub MCP Server 🚀
Easily connect to the GitHub MCP Server using the hosted version – no local setup or runtime required.
URL: https://api.githubcopilot.com/mcp/
About
The remote GitHub MCP server is built using this repository as a library, and binding it into GitHub server infrastructure with an internal repository. You can open issues and propose changes in this repository, and we regularly update the remote server to include the latest version of this code.
The remote server has additional tools that are not available in the local MCP server, such as the create_pull_request_with_copilot tool for invoking Copilot coding agent.
Remote MCP Toolsets
Below is a table of available toolsets for the remote GitHub MCP Server. Each toolset is provided as a distinct URL so you can mix and match to create the perfect combination of tools for your use-case. Add /readonly to the end of any URL to restrict the tools in the toolset to only those that enable read access. We also provide the option to use headers instead.
Additional Remote Server Toolsets
These toolsets are only available in the remote GitHub MCP Server and are not included in the local MCP server.
| Name | Description | API URL | 1-Click Install (VS Code) | Read-only Link | 1-Click Read-only Install (VS Code) |
|---|---|---|---|---|---|
copilot_spaces |
Copilot Spaces tools | https://api.githubcopilot.com/mcp/x/copilot_spaces | Install | read-only | Install read-only |
github_support_docs_search |
Retrieve documentation to answer GitHub product and support questions. Topics include: GitHub Actions Workflows, Authentication, ... | https://api.githubcopilot.com/mcp/x/github_support_docs_search | Install | read-only | Install read-only |
Optional Headers
The Remote GitHub MCP server has optional headers equivalent to the Local server env vars or flags:
X-MCP-Toolsets: Comma-separated list of toolsets to enable. E.g. "repos,issues".- Equivalent to
GITHUB_TOOLSETSenv var or--toolsetsflag for Local server. - If the list is empty, default toolsets will be used. Invalid or unknown toolsets are silently ignored without error and will not prevent the server from starting. Whitespace is ignored.
- Equivalent to
X-MCP-Tools: Comma-separated list of tools to enable. E.g. "get_file_contents,issue_read,pull_request_read".- Equivalent to
GITHUB_TOOLSenv var or--toolsflag for Local server. - Invalid tools will throw an error and prevent the server from starting. Whitespace is ignored.
- Equivalent to
X-MCP-Readonly: Enables only "read" tools.- Equivalent to
GITHUB_READ_ONLYenv var for Local server. - If this header is empty, "false", "f", "no", "n", "0", or "off" (ignoring whitespace and case), it will be interpreted as false. All other values are interpreted as true.
- Equivalent to
X-MCP-Lockdown: Enables lockdown mode, hiding public issue details created by users without push access.- Equivalent to
GITHUB_LOCKDOWN_MODEenv var for Local server. - If this header is empty, "false", "f", "no", "n", "0", or "off" (ignoring whitespace and case), it will be interpreted as false. All other values are interpreted as true.
- Equivalent to
X-MCP-Insiders: Enables insiders mode for early access to new features.- Equivalent to
GITHUB_INSIDERSenv var or--insidersflag for Local server. - If this header is empty, "false", "f", "no", "n", "0", or "off" (ignoring whitespace and case), it will be interpreted as false. All other values are interpreted as true.
- Equivalent to
Looking for examples? See the Server Configuration Guide for common recipes like minimal setups, read-only mode, and combining tools with toolsets.
Example:
{
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"X-MCP-Toolsets": "repos,issues",
"X-MCP-Readonly": "true",
"X-MCP-Lockdown": "false"
}
}
Insiders Mode
The remote GitHub MCP Server offers an insiders version with early access to new features and experimental tools. You can enable insiders mode in two ways:
-
Via URL path - Append
/insidersto the URL:{ "type": "http", "url": "https://api.githubcopilot.com/mcp/insiders" } -
Via header - Set the
X-MCP-Insidersheader totrue:{ "type": "http", "url": "https://api.githubcopilot.com/mcp/", "headers": { "X-MCP-Insiders": "true" } }
Both methods can be combined with other path modifiers (like /readonly) and headers.
URL Path Parameters
The Remote GitHub MCP server supports the following URL path patterns:
/- Default toolset (see "default" toolset)/readonly- Default toolset in read-only mode/insiders- Default toolset with insiders mode enabled/readonly/insiders- Default toolset in read-only mode with insiders mode enabled/x/all- All available toolsets/x/all/readonly- All available toolsets in read-only mode/x/all/insiders- All available toolsets with insiders mode enabled/x/all/readonly/insiders- All available toolsets in read-only mode with insiders mode enabled/x/{toolset}- Single specific toolset/x/{toolset}/readonly- Single specific toolset in read-only mode/x/{toolset}/insiders- Single specific toolset with insiders mode enabled/x/{toolset}/readonly/insiders- Single specific toolset in read-only mode with insiders mode enabled
Note: {toolset} can only be a single toolset, not a comma-separated list. To combine multiple toolsets, use the X-MCP-Toolsets header instead. Path modifiers like /readonly and /insiders can be combined with the X-MCP-Insiders or X-MCP-Readonly headers.
Example:
{
"type": "http",
"url": "https://api.githubcopilot.com/mcp/x/issues/readonly"
}




















