Add CreateRelease tool for programmatic release creation
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 createthat 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.
This issue was (thoughtfully) created through Claude Code - it reads like AI because it is, but conveys generally what I wanted
I like this idea, but as the MCP specification currently stands there's going to be a limitation around uploading files to be included in the release. This means it will not have full feature parity with what the cli offers - is this feature still useful in this scenario?
@mattdholloway thanks for taking a look!
is this feature still useful
for my idiosyncratic needs, yes but would understand wanting to hold off pending full parity with the CLI
as the MCP specification currently stands
for my own edification, which part of the spec presents the limitation? like you couldn't practically b64 encode all release assets?
In theory, yes, this could be done - but it would consume a significant amount of tokens
yep that makes sense! will poke around upstream - ty
Hello guys, I just found out this issue because today, I test updating release note with gemini-cli. I wonder whether we should create a new UpdateRelease tool or do the update with CreateRelease tool