Skip to main content
Glama
zishuowang696

gh-release-mcp

gh-release-mcp

An MCP server that lets an agent list and download GitHub release assets — with multi-mirror parallel ranged download and sha256 verification. Zero external binaries (pure Python standard library: no aria2, curl, gh, jq). By embedai.com.cn.

Built for restricted networks: it probes which mirrors support HTTP Range (206), splits a file across mirrors and downloads segments in parallel, then verifies sha256 from GitHub's own asset digest.

Tools

Tool

What it does

list_release_assets

List a release's assets (name, size, url).

download_release_asset

Download one asset (by name) or several (by glob pattern) with parallel ranged requests across mirrors; verifies sha256 when available.

Related MCP server: github-mcp-connector

Install / run

# run instantly (no install)
uvx gh-release-mcp

# or via pip
pip install gh-release-mcp
gh-release-mcp

It speaks MCP over stdio.

Configure your client

opencode (opencode.json):

{
  "mcp": {
    "gh-release": {
      "type": "local",
      "command": ["uvx", "gh-release-mcp"]
    }
  }
}

Claude Desktop / Cursor (mcpServers):

{
  "mcpServers": {
    "gh-release": { "command": "uvx", "args": ["gh-release-mcp"] }
  }
}

Tools in detail

download_release_asset arguments:

arg

meaning

owner, repo

e.g. NationalSecurityAgency, ghidra

tag

release tag; omit or latest

name

exact asset name (optional)

pattern

glob, e.g. *PUBLIC*.zip (optional)

dest

destination directory (default: cwd)

mirrors

mirror prefixes (must support Range); default ghproxy.net + ghfast.top

connections

segments per file (default 8)

Env vars: GITHUB_TOKEN (optional, raises API limits / private repos).

Example prompts

  • "Using gh-release, list the assets of BurntSushi/ripgrep latest."

  • "Download NationalSecurityAgency/ghidra Ghidra_12.1.4_build matching *PUBLIC*.zip into ./ghidra."

License

MIT

Available Tools

2 tools
download_release_assetA

Download release asset(s) with parallel ranged requests across mirrors. Pick one asset by exact name, or several via a glob pattern. Verifies sha256 when GitHub exposes a digest.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoRelease tag; omit or 'latest'.
destNoDestination directory (default: current dir).
nameNoExact asset name (optional).
repoYes
ownerYes
mirrorsNoMirror prefixes (must support HTTP Range). Default: ['https://ghproxy.net', 'https://ghfast.top']
patternNoGlob, e.g. '*PUBLIC*.zip' (optional).
connectionsNoParallel segments per file (default 8).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses parallel ranged requests, mirror fallback across defaults, and sha256 verification when a digest exists. It omits overwrite behavior for existing files and auth requirements for private repos, which would matter for a mutating download.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the action and mechanism, then the selection rule, then the integrity guarantee. No filler; every sentence informs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with no annotations and no output schema, the description adequately conveys mechanism, target selection, and verification. It leaves unaddressed where files land beyond the dest schema field and whether existing files are overwritten, but is otherwise self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, so the schema already documents tag, dest, mirrors, connections, and the name/pattern descriptors. The description adds genuine meaning by framing name and pattern as mutually exclusive alternatives (one asset vs several), beyond what the schema states individually. The undocumented owner/repo remain the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (download release asset) and describes mechanism (parallel ranged requests across mirrors). It differs clearly from the sibling list_release_assets, which discovers assets rather than fetching them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains how to select targets (exact name vs glob pattern), which is useful, but never states when to use this tool versus list_release_assets or any prerequisites (e.g., discovering names first). Usage context is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_release_assetsB

List the downloadable assets of a GitHub release (name, size, url).

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoRelease tag; omit or 'latest' for the latest release.
repoYesRepo name, e.g. ghidra
ownerYesRepo owner, e.g. NationalSecurityAgency

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears the full behavioral burden; 'List' implies a read-only operation and the parenthetical discloses the returned fields, which is genuinely useful. However, it omits pagination behavior, auth/token requirements, rate limits, and what happens when the release or its assets do not exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that identifies the resource and the return payload with zero filler. Nothing could be trimmed without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description partially compensates for the absent output schema by naming the returned fields, and parameters are fully covered by the schema. It is still thin for a GitHub API tool with no annotations, leaving auth requirements, pagination, and empty/error outcomes unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the 'omit or latest' convention for tag, so the schema fully documents all three parameters. The description adds no parameter-level meaning beyond what the schema already provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('downloadable assets of a GitHub release') and names the returned fields (name, size, url). It is clearly distinguishable from the sibling download_release_asset by verb, though it never explicitly contrasts the two.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scenario is implied by 'of a GitHub release,' but there is no explicit when-to-use guidance, no prerequisites (e.g., needing a valid release tag), and no routing to or away from download_release_asset. An agent must infer the boundary between listing and downloading.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.1.0
    • First observeddownload_release_asset
    • First observedlist_release_assets

TDQS

A3.6/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one lists metadata about assets, the other downloads asset content. An agent can easily tell which to invoke based on whether it needs information or the file itself.

Naming Consistency5/5

Both names follow a clean verb_noun pattern (list_release_assets, download_release_asset) with consistent snake_case and a shared 'release_asset' subject. There is no stylistic deviation.

Tool Count2/5

Two tools is very thin for a server named gh-release-mcp, which implies release management rather than just asset handling. The surface feels like a narrow slice of the domain rather than a complete toolkit.

Completeness2/5

The server covers listing and downloading release assets but omits core release lifecycle operations: listing releases, creating/deleting releases, and uploading assets. Agents needing anything beyond download will hit dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides secure filesystem operations, HTTP fetching with SSRF protection, JSON validation, artifact logging, and optional Redis key-value storage through both stdio and HTTP transports. Features production-ready security controls including sandbox enforcement, allowlist validation, and comprehensive input validation.
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    A single static Go binary that exposes GitHub operations (repos, branches, commits, file contents, issues, PRs, and search) as MCP tools, enabling agents to read and write GitHub data with no runtime dependencies.
    MIT
  • F
    license
    B
    quality
    C
    maintenance
    Enables parallel agent tasks on disposable Arch Linux drones by providing a local stdio gateway for batch job submission, status monitoring, log retrieval, artifact fetching, and cancellation across SSH-connected runners.
    13
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables LLM hosts to perform scoped GitHub operations over stdio, including repository intelligence, pull request lifecycle and diff inspection, and commit history queries. It exposes 12 FastMCP tools backed by PyGithub for repository, PR, and commit workflows.
    MIT