Skip to content

RFC: Partitioning tools by product/feature #189

Closed

Description

@SamMorrowDrums

As GitHub we have loads of tools, and we'd love to expose them all - but we don't want models to get confused and provide a bad experience. We imagine a future with a more dynamic solution, but so far to make more of our platform available via MCP, this is what we would propose:

  • Partition tools in groups according to product area, feature area
  • Enable setting the available features via ENV and CLI flags.
  • Have a default set of features that so far consists of repos, issues, pull_requests & search
  • Have a means of enabling everything
  • Additionally provide an experiments option that enables us to stage new tools, or variations of tools without breaking semver conventions, or requiring a version bumps.
  • Build and release Docker images that pass individual product features as arguments, so they can be used as separate servers.

PR for technical implementation details: http://github.com/github/github-mcp-server/pull/188

This means that if you start a server with limited tools, you would need to restart it or load an additional server to get access to the remaining tools.

We're curious to hear what people think, and as the MCP specification evolves, we anticipate that there will be more dynamic solutions in the future, but we want to enable users to access the full range of features possible, without breaking the experience generally.

Activity

  1. toby commented on Apr 8, 2025

    @toby
    Contributor

    This is great! I would say maybe we only need a single Docker image if we allow the toolsets to be defined by an env var since we could pass that in with docker run -e.

  2. digitarald commented on Apr 9, 2025

    @digitarald
    Member

    Two improvements, where list_changed notifications would be used to dynamically adjust the tools list for the clients:

    • It would be even better when the provided list be based on the scope of the current PAT. I usually just provide repo access; the other tools would just fail anyways.
    • Can the server provide a tool that toggle on groups of tools as needed?
  3. SamMorrowDrums commented on Apr 15, 2025

    @SamMorrowDrums
    CollaboratorAuthor

    This has landed in main, although not in a formal release - so I will close, and #275 can track any feedback.

  4. added a commit that references this issue on Oct 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

enhancementNew feature or requestquestionFurther information is requested

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions