Skip to main content
Glama
TanNhatCMS

github-binary-mcp

by TanNhatCMS

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GITHUB_TOKENYesGitHub token used to push binary files. Only read from this environment variable; never logged or returned. Fine-grained token with Contents: Read and write for the allowlisted repos.
GITHUB_BINARY_MOCKNoSet to `1` to enable mock mode; mock mode always wins and all results are tagged `mock:true`, never performing a real push.
GITHUB_BINARY_ALLOWED_PATHSNoAllowlist of path prefixes (comma-separated) where files may be written. Files outside these prefixes are rejected. A denylist always wins: `.github/workflows/`, `.git/`, `*.env*`, `*.pem`, `*.key`, names containing `credentials` or `secret`, and path traversal `..` are always blocked.assets/,public/,docs/,static/,images/
GITHUB_BINARY_ALLOWED_REPOSYesAllowlist of repositories the server may push to, in the form `owner/repo`, comma-separated. If this is not set, every push is denied (fail-closed).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
push_binary_fileA

Push one binary file (image, audio, PDF, zip, ...) to a GitHub repo. content_base64 is forwarded verbatim to the GitHub API — unlike the official GitHub MCP tool, which treats content as plain text. Repo must be in GITHUB_BINARY_ALLOWED_REPOS, path must be under GITHUB_BINARY_ALLOWED_PATHS, max 10 MB.

push_binary_filesC

Push up to 20 binary files in a single commit via the Git Data API. Same allowlist, denylist and size limits (50 MB total).

get_binary_fileA

Read a file from a repo and return it as base64 (max 10 MB). Denied paths still apply; reads are not rate-limited.

delete_fileB

Delete a file under the allowed path prefixes (same allowlist/denylist as push). Rate-limited like pushes.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 4 tools

Disambiguation4/5

Each tool targets a distinct action (push single, push batch, read, delete) and the descriptions clearly separate the single-file path (verbatim base64) from the multi-file commit path. The only mild overlap is push_binary_file vs push_binary_files, since a single file could plausibly go through either, but the cardinality and API mechanism differences are stated explicitly.

Naming Consistency4/5

All four names are snake_case verb_noun and follow the same shape (push_binary_file(s), get_binary_file, delete_file). The only deviation is that delete_file and get_binary_file drop the 'push_' prefix while delete_file also omits 'binary', but the pattern remains predictable and readable.

Tool Count4/5

Four tools is a tight, purposeful surface for a narrowly scoped binary-file server, and each one maps to a real operation. The single vs batch push pair is arguably a slight over-split of one capability, keeping it just under a perfect score.

Completeness3/5

Create/overwrite, read, and delete are covered, but there is no listing or path-discovery tool, so an agent must already know exact repo paths. GitHub's content API also requires a blob SHA to delete or update an existing file, and nothing states that get_binary_file returns one, leaving a likely dead end for delete/overwrite workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues