Skip to content

Add GitHub Projects v2 API Toolset to MCP Server (Public Version) #843

@owenniblock

Description

@owenniblock

Describe the feature or problem you’d like to solve

Add support for the GitHub Projects v2 API to the public MCP server by implementing a new "projects" toolset. This will enable users and LLM agents to read and write to GitHub Projects using the MCP server, supporting automation, issue/PR triage, and developer workflow enhancements in public and open environments.

Proposed solution

  • Implement a "projects" toolset using the server's GraphQL client and toolset registration patterns (see pkg/toolsets/toolsets.go, internal/ghmcp/server.go).
  • Ensure host-agnostic logic: register only on hosts that support Projects v2, with clear error handling for unsupported hosts.
  • Respect configuration options:
    • Command line flags/environment variables for toolsets (see README.md: --toolsets, GITHUB_TOOLSETS)
    • Read-only mode (enable only read tools when set)
  • Tools to implement:
    • Read: List projects for owner, get project by owner+number, list fields/options, list items
    • Write: Add item, create draft issue, update field values, remove item (optional)
  • Use GraphQL queries/mutations for Projects v2 operations, with input validation and error handling matching public MCP conventions.
  • Integrate with public documentation and update README:
    • Document toolset usage, configuration, and agent prompt examples
    • Ensure compatibility with dynamic tool discovery (see README.md: Dynamic Tool Discovery, Docker usage)

Example prompts or workflows (for tools/toolsets only)

  • "List all open projects for org github"
  • "Add github/owner/repo#123 to org project Engineering and set Status to In Progress"
  • "Create a new draft issue in project X with title 'Refactor API layer'"

Additional context

Relevant code snippets for toolset registration and configuration:

Reference the feature_request.md template for section guidance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions