Skip to content

Add CreateRelease tool for programmatic release creation #1012

@zzstoatzz

Description

@zzstoatzz

Describe the feature or problem you'd like to solve

Currently, the GitHub MCP server provides excellent read-only access to releases through list_releases, get_latest_release, and get_release_by_tag tools. However, there's no way to create releases programmatically through the MCP interface.

While we can use the GitHub CLI (gh release create) for this, it would be more consistent and convenient to have this capability directly in the MCP server, especially when automating workflows that already use other MCP write operations.

Proposed solution

Add a CreateRelease tool that mirrors the functionality of the GitHub API's Create a release endpoint. The tool would accept parameters like:

  • owner - Repository owner (required)
  • repo - Repository name (required)
  • tag_name - The name of the tag (required)
  • target_commitish - The commitish value for the tag (optional, defaults to repo's default branch)
  • name - The name of the release (optional)
  • body - Text describing the release contents (optional)
  • draft - Whether this is a draft release (optional, default false)
  • prerelease - Whether this is a pre-release (optional, default false)
  • generate_release_notes - Whether to auto-generate release notes (optional)

Why this makes sense

The GitHub MCP server already has:

  • Many other write operations (CreateIssue, CreatePullRequest, CreateRepository, CreateBranch, etc.)
  • Read-only release operations (listing and fetching releases)
  • The authentication and permissions framework to handle write operations

Adding CreateRelease would complete the release management capabilities and provide a consistent interface for automation tools that need to create releases as part of their workflow.

Use cases

  • Any workflow currently using gh release create that would benefit from MCP integration

Additional context

Looking at the existing codebase, this would follow the same pattern as other create operations in pkg/github/repositories.go. The implementation would be straightforward, using the existing GitHub client infrastructure.

Would you be open to a PR adding this functionality? I'd be happy to contribute this feature following your existing patterns and conventions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions