Skip to content

feat: add Releases & Tags tools #97

@nemolize

Description

@nemolize

Motivation

The README's feature-area comparison marks Releases & tags as ❌ for this server while both the official mcp__github__* server and the gh CLI cover it first-class. Releases are a common read target ("what changed in the latest release?", "is X released yet?") and a natural write target at release time.

Plan (phased, mirroring the Actions rollout in #8)

Phase 1 — read tools (#96)

  • list_releases — one line per release: ID, tag, name, draft / prerelease / published state, published date, author
  • get_release — single release detail; polymorphic lookup by release_id, by tag, or the latest release when neither is given. Renders the release notes body (truncated at the response cap)
  • list_tags — one line per tag: name, commit SHA

Phase 2 — write tools

  • create_release — create a release (and its tag) from tag_name + optional target_commitish, name, body, draft, prerelease, generate_release_notes
  • update_release — edit an existing release's fields by release_id
  • delete_release — delete a release by release_id (the underlying tag is left in place; note this in the output)

Same conventions as the existing tool modules: curated Markdown output (list = # Label + bullet-per-row, detail = heading + bulleted metadata per ADR-0003), wrapTool error surfacing, logRateLimit, logWrite on mutations, MAX_TEXT_FIELD_LENGTH cap on the release body input, stubbed-Octokit unit tests per tool.

Out of scope: release assets upload/download (binary handling — same reasoning as the artifacts metadata-only convention); git tag creation as a standalone tool (a release creates its tag; bare tag creation can come later if needed).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions