-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Description
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.