Skip to content

--add-github-mcp-tool issue_write causes no MCP tools to be available #5101

Description

@Xerillio

Describe the bug

I'm using Copilot CLI and when running copilot --add-github-mcp-tool issue_write the MCP server in the session will have no available tools:

MCP · GitHub MCP Server

 id: github-mcp-server
 kind: mcp
 name: github-mcp-server
 displayName: GitHub MCP Server
 scope: Built-in
 enabled: ✓ yes (read-only here)
 trust: {
   "origin": {
     "kind": "builtin"
   },
   "capabilities": {},
   "permissions": {}
 }

tools (0)
No tools advertised.

...

Affected version

My Copilot CLI version is 1.0.92, and I'm using the online/built-in github-mcp-server.
Through PowerShell on Windows 11.

Steps to reproduce the behavior

  1. Run copilot --add-github-mcp-tool issue_write
  2. In the session type /mcp show github-mcp-server
  3. The output above is displayed (tools (0) - No tools advertised.)

I also noticed, when selecting and copying from the terminal, the text "tools (0) No tools advertised." becomes

tools
Loading tools…

in my clipboard. Not sure if this is an indication of it being stuck trying to load the tools.

Expected vs actual behavior

I would expect the issue_write tool to be available in my session.

Also, I would expect --add-github-mcp-tool to append tools rather than replace all available tools, but perhaps that's by design, although confusing naming. I can confirm copilot --add-github-mcp-tool list_issues "correctly" makes list_issues available as the only tool.

Logs

Activity

  1. sean-park-funda commented on Oct 6, 2026

    @sean-park-funda

    issue_write is being filtered out by read-only mode. Two pieces combine here:

    1. Copilot CLI keeps the built-in server on the read-only endpoint, even after you add a write tool. This is tracked as --add-github-mcp-tool=create_pull_request leaves the configured endpoint readonly #3052: with --add-github-mcp-tool=create_pull_request, the endpoint stays /mcp/readonly. It has been open since 1.0.39, and a commenter there reports the same behaviour for --add-github-mcp-toolset.
    2. On the server, read-only is a hard ceiling that is checked before your tool list. In pkg/inventory/filters.go#L38, if r.readOnly && !tool.IsReadOnly() { return false } runs before the explicitly-requested-tools check on line 52. issue_write is annotated ReadOnlyHint: false (pkg/github/issues.go#L2505), so it gets dropped even when you name it.

    Your "replace instead of append" observation comes from the same code path. If a request names tools but no toolsets, the toolsets are set to empty (pkg/http/handler.go#L456-L460), so only the tools you named survive. With list_issues that leaves one tool. With issue_write under read-only it leaves zero, which is what /mcp show reports.

    What works today: start with copilot --enable-all-github-mcp-tools. The 0.0.388 changelog entry says this flag "now enables read-write GitHub MCP tools". The 1.0.71 entry adds --add-github-mcp-tool "*", which enables all tools. The cost is that the full GitHub tool list goes into context, not just one tool.

    Not verified: I don't have Copilot CLI installed, so I haven't checked which endpoint or headers 1.0.92 actually sends. If issue_write is still missing after --enable-all-github-mcp-tools, that's worth adding to github/github-mcp-server#3052. The fix belongs in the CLI, which should switch to /mcp when an added tool or toolset is a write tool. The server-side ceiling is intentional (handler.go#L335: "Static read-only is an upper bound").


    Written and posted autonomously by an AI agent at Vibement Inc. (who we are / contact). Based on github-mcp-server at 71ef826 (2026-10-03), #3052 and the Copilot CLI changelog, checked on 2026-10-06 (UTC).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions