* docs: lead local/stdio install with OAuth login
Surface OAuth 2.1 login as a first-class option above the Personal Access
Token in the README install section and in every local-capable installation
guide, each in that client's own config syntax, linking to the dedicated
docs/oauth-login.md guide.
The github.com OAuth example needs no token; in Docker it publishes a fixed
callback port to loopback (-p 127.0.0.1:8085:8085). The PAT block is retained
below it and noted as taking precedence over OAuth.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs(oauth): correct PKCE/client-secret explanation
The previous "How it works" text claimed PKCE removes the need for a client
secret. In practice GitHub requires the client secret at the token endpoint for
both OAuth Apps and GitHub Apps, and the implementation sends it alongside the
PKCE verifier (Manager.oauth2Config populates ClientSecret; flow.go exchanges
with VerifierOption). The secret is baked into the distributed binary and is not
truly confidential; PKCE is what actually secures the flow. Reword to reflect
this accurately.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: don't frame OAuth login as github.com-only
The intro line said "On github.com you can skip the token entirely", which
implied OAuth login only works on github.com. OAuth works on GitHub Enterprise
too — you just supply your own app credentials there. Reword to lead with OAuth
as the mechanism and scope the zero-config claim correctly: on github.com the
official image already includes the app credentials, so the user provides none.
Enterprise / bring-your-own-app is covered by the linked OAuth guide.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Linux/macOS: actually set GITHUB_PAT instead of inlining via subshell, matching the heading.
- PowerShell: use Select-Object -First 1, split with max 2 parts, and trim quotes/whitespace so common .env formats work.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Fix README.md: Remove non-existent 'Claude Web' from description
- Add Windows PowerShell environment variable example for loading PAT from .env file
The previous documentation only showed bash syntax for loading environment
variables from .env files, which doesn't work on Windows PowerShell. This
adds a PowerShell equivalent to help Windows users set up the GitHub MCP
Server correctly.
Adds two new installation guides under docs/installation-guides/ covering MCP host applications that are not yet documented:
- install-zed.md: covers Zed's 'context_servers' settings key (command + args shape), the official GitHub MCP extension as an easier alternative, remote/local setup, the 'mcp:<server>:<tool>' permission key format introduced in Zed v0.224.0, and OAuth-vs-PAT trade-offs.
- install-opencode.md: covers OpenCode's 'mcp' config block (type-discriminated local/remote, command-as-array, 'environment' instead of 'env'), the 'oauth: false' opt-out needed when using a PAT, the '{env:VAR}' interpolation pattern, and the per-agent tool-gating pattern recommended for token-heavy servers like GitHub.
Also adds both hosts to:
- docs/installation-guides/README.md installation-guides index and the support-by-host-application table.
- README.md 'Install in other MCP hosts' and 'Install in Other MCP Hosts' lists.
Closes#2531.
Dynamic toolset discovery (the meta-tools enable_toolset, list_available_toolsets,
get_toolset_tools and the --dynamic-toolsets / GITHUB_DYNAMIC_TOOLSETS switch)
was a local-only feature never offered by the remote server. Removing it
deletes a meaningful chunk of branching, configuration surface and tests
for a path no longer in active use.
The deprecated closure-based NewServerToolWithDeps generic constructor was
only kept around for the dynamic tool registration path and is removed
together with it. Going forward there are exactly two constructors:
- NewServerTool — raw mcp.ToolHandler, no closure, no unmarshalling
- NewServerToolWithContextHandler[In, Out] — typed handler, deps via context
Inventory methods that only existed for the dynamic path
(ToolsForToolset, IsToolsetEnabled, EnableToolset, EnabledToolsetIDs)
are removed. ResolvedEnabledToolsets loses its dynamic flag.
Also strips dynamic references from the README, server configuration
docs, copilot-instructions, mcp-diff workflow, and conformance-test
script.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Build and Test Go Project / build (macos-latest) (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
Docker / build (push) Has been cancelled
Build and Test Go Project / build (ubuntu-latest) (push) Has been cancelled
Build and Test Go Project / build (windows-latest) (push) Has been cancelled
GoReleaser Release / release (push) Has been cancelled
MCP Server Diff / mcp-diff (push) Has been cancelled
Publish to MCP Registry / publish (push) Has been cancelled
Add a Windows/CLI note that `claude mcp add-json` may return "Invalid input"
when adding an HTTP server, and point users to the legacy `claude mcp add
--transport http ...` format.
Also add a Windows (PowerShell) example for the legacy command when the CLI
expects the MCP server name immediately after `claude mcp add`.
* docs: Add Google Gemini CLI installation guide and integration
- Add comprehensive installation guide for Google Gemini CLI
- Include Docker and binary configuration options
- Add authentication setup for Gemini API and Vertex AI
- Update main README.md to include Gemini CLI in installation guides
- Update installation guides index with Gemini CLI entry and support matrix
- Follow established documentation patterns and security best practices
* Fix Gemini CLI command syntax and add remote server method
- Replace all 'gemini-cli' commands with correct 'gemini' syntax
- Fix verification commands to use '/mcp list' and '/tools' prompts
- Add httpUrl remote server method as primary configuration option
- Update config file paths from settings.json to config.json
- Correct npx installation command syntax
- Add link to official Gemini CLI documentation
Addresses feedback from soisyourface in PR review.
* Emphasize official Gemini CLI documentation link
Reduce detailed installation steps and direct users to official docs for
up-to-date instructions, addressing reviewer feedback about maintainability.
* Fix Gemini CLI configuration file name: config.json -> settings.json
The correct configuration file for Gemini CLI is settings.json, not config.json.
This applies to both global (~/.gemini/settings.json) and project-specific
(.gemini/settings.json) configurations as confirmed by official documentation.
* Remove Gemini CLI installation and authentication sections
Removed lines 11-41 containing Gemini CLI installation commands and
authentication setup instructions.
* Add Podman as Docker alternative in prerequisites
Added Podman as container engine option alongside Docker.
* Remove references to deprecated npm package
* Add comprehensive ~/.gemini/.env file example
* Fix authorization header to use literal token placeholder
Environment variable substitution in headers is not yet supported
by Gemini CLI (see google-gemini/gemini-cli#5282).
* Add issue types (#869)
* feat: add type to issues
* test: add `type` test for create and update issues
* Generate docs and toolsnaps
* Update pkg/github/issues.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Use github ptr
---------
Co-authored-by: Pranav RK <pranavrk7@gmail.com>
Co-authored-by: Pranav RK <39577726+radar07@users.noreply.github.com>
Co-authored-by: Alon Kenneth <11458012+akenneth@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Enable Dependabot (#654)
* Create/Update dependabot.yaml
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Bump SDK version to 0.36.0 (#863)
* Use server.ServerResourceTemplate and server.ServerPrompt wrappers (#886)
* Update "Close inactive issues" workflow to close issues after 180 days of inactivity (#909)
* update PR_DAYS_BEFORE_STALE
* update to mark as stale after 60 days
* Update Claude MCP install guide after testing (#706)
* Revise Claude installation guide
- Verified Claude Code installation steps
- Identified and documented issues with Claude Desktop setup
- Updated installation documentation based on testing
* Revise instructions for opening Claude Code
Updated recommendations for opening Claude Code.
* Update docs/installation-guides/install-claude.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update docs/installation-guides/install-claude.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update installation guide for Claude setup
Added installation option for using Claude Code using a release binary.
* Change section title for Go Binary installation
Updated section title for clarity regarding installation without Docker.
* Close double quote in bash command
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: LuluBeatson <lulubeatson@github.com>
Co-authored-by: Matt Holloway <mattdholloway@github.com>
Co-authored-by: Tommaso Moro <37270480+tommaso-moro@users.noreply.github.com>
* Add actions job log buffer and profiler (#866)
* add sliding window for actions logs
* refactor: fix sliding
* remove trim content
* only use up to 1mb of memory for logs
* update to tail lines in second pass
* add better memory usage calculation
* increase window size to 5MB
* update test
* update vers
* undo vers change
* add incremental memory tracking
* use ring buffer
* remove unused ctx param
* remove manual GC clear
* fix cca feedback
* extract ring buffer logic to new package
* handle log content processing errors and use correct param for maxjobloglines
* fix tailing
* account for if tailLines exceeds window size
* add profiling thats reusable
* remove profiler testing
* refactor profiler: introduce safeMemoryDelta for accurate memory delta calculations
* linter fixes
* Update pkg/buffer/buffer.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* use flag for maxJobLogLines
* add param passing for context window size
* refactor: rename contextWindowSize to contentWindowSize for consistency
* fix: use tailLines if bigger but only if <= 5000
* fix: limit tailLines to a maximum of 500 for log content download
* Update cmd/github-mcp-server/main.go
Co-authored-by: Adam Holt <omgitsads@github.com>
* Update cmd/github-mcp-server/main.go
Co-authored-by: Adam Holt <omgitsads@github.com>
* move profiler to internal/
* update actions test with new profiler location
* fix: adjust buffer size limits
* make line buffer 1028kb
* fix mod path
* change test to use same buffer size as normal use
* improve test for non-sliding window implementation to not count empty lines
* make test memory measurement more accurate
* remove impossible conditional
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Adam Holt <omgitsads@github.com>
* Add get_release_by_tag tool (#938)
* add get_release_by_tag tool
* add tool
* add tests
* autogen
* remove comment
* docs(readme): Update readme to point to correct installation guides index (#892)
* docs(readme): Update readme to point to correct installation guides index
* feat(contributors): add list_repository_contributors tool
* Revert "feat(contributors): add list_repository_contributors tool"
This reverts commit ece480ea6f99f7131a6faa2d12fb2f62d3e53332.
---------
Co-authored-by: Tommaso Moro <37270480+tommaso-moro@users.noreply.github.com>
* Add Global Security Advisories Toolset (#919)
* Repository security advisories (#925)
* Add support for listing repo level security advisories
* Add support for listing repo security advisories at the org level
* Update Cursor installation link (#940)
* use new link
* update local install link
* Change role from "system" to "user" in prompt messages for `AssignCodingAgentPrompt` and `IssueToFixWorkflowPrompt`. Role "system" is not allowed by Claude Code in MCP provided prompt (allowed only role "user" and "assistant") (#941)
Co-authored-by: 0xGosu <0xGosu@gmail.com>
* Local MCP is supported
* Refactor Gemini CLI install guide
* Remove Bearer from Authorization header
* Add reference to main README for latest config
* Bearer needed for headers, add references
* Add minimal response to CRUD tools, `repositories` and `search` toolsets (#988)
* add comprehensive minimal response where appropriate
* remove unneeded comments
* remove incorrect diff param
* update docs
* rm comment
* Update pkg/github/repositories.go
Co-authored-by: Lulu <59149422+LuluBeatson@users.noreply.github.com>
* update toolsnaps and docs
* change minimal_output to use new OptionalBoolParamWithDefault
* Update pkg/github/repositories.go
Co-authored-by: Lulu <59149422+LuluBeatson@users.noreply.github.com>
* refactor minimal conversion funcs to minimal_types.go
* consolidate response structs and remove unneeded message field
* consolidate response further
* remove CloneURL field
* Update pkg/github/repositories.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update pkg/github/server.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix undefined
* change incorrect comment
* remove old err var declaration
* Update pkg/github/repositories.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix syntax issue
* update toolsnaps
---------
Co-authored-by: Lulu <59149422+LuluBeatson@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* initial org repo create support (#1023)
---------
Co-authored-by: JoannaaKL <joannaakl@github.com>
Co-authored-by: Pranav RK <pranavrk7@gmail.com>
Co-authored-by: Pranav RK <39577726+radar07@users.noreply.github.com>
Co-authored-by: Alon Kenneth <11458012+akenneth@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Zack Koppert <zkoppert@github.com>
Co-authored-by: Ksenia Bobrova <almaleksia@github.com>
Co-authored-by: Tommaso Moro <37270480+tommaso-moro@users.noreply.github.com>
Co-authored-by: Dimitrios Philliou <d1m1tr10s@github.com>
Co-authored-by: LuluBeatson <lulubeatson@github.com>
Co-authored-by: Matt Holloway <mattdholloway@github.com>
Co-authored-by: Adam Holt <omgitsads@github.com>
Co-authored-by: Rebecca Biju <113070179+beccccaboo@users.noreply.github.com>
Co-authored-by: Jurre <jurre@github.com>
Co-authored-by: 0xGosu <0xGosu@gmail.com>
Co-authored-by: Lulu <59149422+LuluBeatson@users.noreply.github.com>
* Revise Claude installation guide
- Verified Claude Code installation steps
- Identified and documented issues with Claude Desktop setup
- Updated installation documentation based on testing
* Revise instructions for opening Claude Code
Updated recommendations for opening Claude Code.
* Update docs/installation-guides/install-claude.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update docs/installation-guides/install-claude.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update installation guide for Claude setup
Added installation option for using Claude Code using a release binary.
* Change section title for Go Binary installation
Updated section title for clarity regarding installation without Docker.
* Close double quote in bash command
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: LuluBeatson <lulubeatson@github.com>
Co-authored-by: Matt Holloway <mattdholloway@github.com>
Co-authored-by: Tommaso Moro <37270480+tommaso-moro@users.noreply.github.com>
* Update installation guide for GitHub MCP Server
Removed reference to GitHub.com in the installation guide. The GitHub server is available to Coding Agent by default, without installation needed.
* Rename section to 'Install in Other MCP Hosts'
Updating title for consistency and adding a link to the "other Copilot IDEs" install guide.
* Revise installation guide for Cursor MCP setup
Updated installation guide for Cursor with steps clarified, remote server installation, and one-click install deeplinks to open Cursor and add the github server to the config file.
* Refactor README and add host installation guides, governance docs
- Reorganized README for clarity and navigation
- Added dedicated installation guides for Claude, Cursor, Windsurf, JetBrains, and more
- Clarified contribution guidelines and approval criteria
- Added policies and governance documentation
* Update README.md
* Update README with configuration section for remote GitHub MCP Server
* Update MCP access policy description in README
Removing coding agent from the policy note, as the GitHub server is unaffected by this policy
* Update configuration steps for GitHub Copilot in JetBrains IDEs...
...to reflect changes in accessing settings and configuring MCP.
* Update install-other-copilot-ides.md
* Update Eclipse MCP support version and configuration steps...
...for GitHub Copilot plugin in installation guide.
* Update docs/installation-guides/install-cursor.md
* Update docs/installation-guides/install-windsurf.md
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
* Apply suggestion from @tonytrg
---------
Co-authored-by: Tony Truong <tonytrg@github.com>