13 Commits

Author SHA1 Message Date
Sam Morrow 3bad3bc651 fix(http): make server lockdown mode an upper bound over requests (#3112) 2026-08-19 15:20:19 +02:00
Sam Morrow 769340d6a1 fix(lockdown): harden pull_request_read get_commits handling
pull_request_read's get_commits method previously returned commit
messages without any lockdown check, unlike get_diff and get_files
which restrict the whole result when the PR author lacks push access.
Commit content is part of the same untrusted head branch as the diff
and file list, so GetPullRequestCommits now reuses
enforcePullRequestLockdown for consistent, fail-closed behavior
without adding a per-commit permission lookup.

Also updates the lockdown documentation in README.md and
docs/server-configuration.md to:
- list pull_request_read:get_diff, get_files, and get_commits among
  the tools that error when the PR author lacks push access (get_diff
  and get_files were already implemented this way but undocumented)
- clarify that lockdown mode is a best-effort content filter to
  reduce prompt-injection risk, not an authorization boundary
- document the existing intentional trusted-bot exception
  (github-actions[bot], copilot) accurately

Fixes #3105

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-08-19 14:41:45 +02:00
Connor Peet a217a7f43a Add MCP App form deferral opt-out
Allow clients to keep MCP App views enabled while making form-backed write tools execute directly when explicitly configured.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-22 19:02:50 +02:00
Sam Morrow 0f0506d2fd refactor: remove dynamic toolsets and deprecated closure constructor (#2512)
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>
2026-05-20 10:51:47 +02:00
Sam Morrow b482ac6ead docs: add MCP Apps feature flag configuration section
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-16 11:41:19 +02:00
Sam Morrow 61a34c1454 docs: document SERVER_NAME and SERVER_TITLE overrides
Add documentation for the server name and title customization feature
to the README i18n section and server-configuration.md quick reference.
This helps users running multiple GitHub MCP Server instances discover
how to configure unique identities via environment variables or the
config JSON file.

Co-authored-by: Anika Reiter <1503135+Anika-Sol@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-16 15:03:13 +01:00
Tommaso Moro 1fec99f74e Add docs for Insiders Mode (#2095)
* update docs

* add mention of new doc

* Update docs/insiders-features.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-25 17:57:24 +00:00
tommaso-moro c38802ac80 rename to --exclude-tools 2026-02-18 17:13:41 +01:00
tommaso-moro 0b76ca8fd2 add disallowed-tools flag to enable shuting off tools as part of server configuration 2026-02-18 17:13:41 +01:00
Sam Morrow c80976661e Mention OAuth scope challenges in server-configuration.md 2026-01-05 16:05:24 +00:00
Sam Morrow 9aef43596e Fix server-configuration.md scope filtering description 2026-01-05 16:05:24 +00:00
Sam Morrow f45b94a8f5 Make scope filtering always enabled (remove flag)
Scope filtering is now a built-in feature rather than a configurable option.
The server automatically fetches token scopes at startup and filters tools
accordingly. If scope detection fails, it logs a warning and continues with
all tools available.
2026-01-05 16:05:24 +00:00
Tommaso Moro 9c73e88deb Tommy/server-config-docs (#1495)
* small doc update to add x-mcp-tools header

* update

* add server configuration guide

* update

* Update docs/server-configuration.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs/remote-server.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs/server-configuration.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update README.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs/server-configuration.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs/server-configuration.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs/server-configuration.md

Co-authored-by: Tony Truong <tonytrg@github.com>

* use relative paths

* use relative path

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Tony Truong <tonytrg@github.com>
2025-11-28 10:17:47 +00:00