Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: github/github-mcp-server
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.0.3
Choose a base ref
...
head repository: github/github-mcp-server
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.0.4
Choose a head ref
  • 7 commits
  • 18 files changed
  • 6 contributors

Commits on Apr 30, 2026

  1. Configuration menu
    Copy the full SHA
    926d049 View commit details
    Browse the repository at this point in the history

Commits on May 6, 2026

  1. Configuration menu
    Copy the full SHA
    4dbec2c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2dab994 View commit details
    Browse the repository at this point in the history

Commits on May 8, 2026

  1. fix(mcp-apps): defer _meta.ui strip to per-request RegisterTools (#2446)

    * fix(mcp-apps): defer _meta.ui strip to per-request RegisterTools
    
    The MCP Apps `_meta.ui` strip lived in `Builder.Build()`, which calls
    `checkFeatureFlag(context.Background())`. The HTTP feature checker
    (`createHTTPFeatureChecker`) reads insiders mode from the request
    context — a background context never has it set, so the FF reported
    MCP Apps off and the strip ran eagerly at server startup. Per-request
    inventory factories then served pre-stripped tools regardless of
    whether the request actually arrived on the `/insiders` route.
    
    Symptom: `github/github-mcp-server-remote` returns 0 tools with
    `_meta.ui` over HTTP `/insiders`, despite the source unconditionally
    setting it on `get_me`, `issue_write`, and `create_pull_request`.
    VS Code only renders MCP App UIs because of its persistent tool cache
    from earlier deploys. Reproducible locally with
    `cmd/github-mcp-server http --insiders` plus a vanilla curl tools/list.
    
    Fix: drop the strip from `Build()`. Apply it in `RegisterTools(ctx,…)`
    where the per-request context is in scope and the HTTP feature checker
    can correctly detect insiders mode (or the remote checker can correctly
    read user identity for Statsig flag lookup).
    
    The same root cause affects `github/github-mcp-server-remote` — its
    `featureflags.NewComposedFeatureFlagChecker` reads
    `requestctx.User(ctx)`, which background context lacks, so the
    `remote_mcp_ui_apps` Statsig flag always returned false. The fix here
    covers both downstreams since `RegisterTools` is the single entry
    point for tool registration.
    
    Stdio mode is unaffected: it uses a closure-captured insiders mode
    flag (`createFeatureChecker`) that does not depend on context, and the
    per-request strip in `RegisterTools` produces the same outcome.
    
    Verified end-to-end against the deployed remote tool definitions:
    
      HTTP /insiders     → 3 tools with _meta.ui (was 0)
      HTTP /             → 0 tools with _meta.ui (correct)
      stdio --insiders   → 3 tools with _meta.ui (unchanged)
      stdio              → 0 tools with _meta.ui (correct)
    
    Adds:
      - pkg/http: TestInsidersRoutePreservesUIMeta — pins the regression
      - pkg/inventory: updates the existing strip tests to use the new
        RegisterTools-as-strip-site contract via a captureRegisteredTools
        helper
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * style: gofmt handler_test.go and registry_test.go
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    * lint: address revive (context-as-argument) and unused checkFeatureFlag
    
    - Reorder captureRegisteredTools params to put context.Context first
    - Remove dead Builder.checkFeatureFlag (was only called by Build's
      former MCP Apps strip, now done in RegisterTools via the Inventory
      receiver's checkFeatureFlag instead)
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
    mattdholloway and Copilot authored May 8, 2026
    Configuration menu
    Copy the full SHA
    0e2fc38 View commit details
    Browse the repository at this point in the history

Commits on May 11, 2026

  1. Add ifc label for get_me tool (#2432)

    * Add ifc labels
    
    * Add test
    
    * Address PR review: deterministic output, type safety, universe validation, and tests
    
    - Fix grammar in ReadersSecurityLabelFromDict godoc
    - Sort GetReaders and FiniteReaderSet.String output for determinism
    - Fix godoc example to use UniversalReaders for public label
    - Panic on unsupported ReaderSet types in Union/Intersection/IsSubset
    - Add universe mismatch validation in PowersetLattice Join/Meet/Leq
    - Add comprehensive unit tests for pkg/ifc (lattice laws, serialization, panics)
    
    * Add a test
    
    * Pass parameters
    
    * Remove lattice
    
    * Script update
    JoannaaKL authored May 11, 2026
    Configuration menu
    Copy the full SHA
    1be1f38 View commit details
    Browse the repository at this point in the history
  2. Prevent inputs param from being stripped from actions_run_trigger too…

    …l schema (#2417)
    
    * add empty properties to inputs param
    
    * add test cases for valid and invalid inputs
    kerobbi authored May 11, 2026
    Configuration menu
    Copy the full SHA
    f48e82a View commit details
    Browse the repository at this point in the history
  3. 12 Configuration menu
    Copy the full SHA
    c3dedbe View commit details
    Browse the repository at this point in the history
Loading