Labsco
MCP SERVER

GitHub

by ildunari

Read and change a GitHub repository from your assistant — files, branches, issues, pull requests, releases and labels — with an escape hatch to the raw REST API.

Git Hosting & Code ReviewVerified
Summary
Write access across the whole repository surface, with the raw API behind a confirmation string.

The coverage is wide enough that most GitHub work never needs a browser — file commits, branch creation, PR review requests and merges are all here — and the two generic REST tools mean an uncovered endpoint is not a dead end, with the write one requiring an explicit confirmation before it fires. The detail worth planning around is the SHA rule: updating or deleting a file needs the current SHA, so a read always precedes a write. Lazy tool loading exists for a real reason — forty-odd schemas is a lot of context to hand a client that only needs to read a file.

What it is

A broad GitHub server covering repository exploration and the full issue and pull-request lifecycle, with write operations that commit directly rather than only reading.

What you get
  • Repository metadata, directory listings, a file's decoded contents with the SHA needed to update it, the README found regardless of casing, and code search within a repository
  • Repositories listed for a user or organization, searched globally, created, or forked
  • Issues listed, opened in full, created, updated and commented on, with labels created, listed, added, replaced and removed
  • Pull requests listed and opened with diff stats and merge status, created, updated, given reviewers and merged
  • Commits listed with filters for path, author, branch and date, one commit read with its complete diff, and two refs compared with ahead/behind counts and file changes
  • Branches listed with protection status, created from a resolved ref, and deleted
  • Files created, updated or deleted by direct commit — updates and deletions requiring the current SHA
  • Releases listed with notes and asset URLs, and new ones created; user and organization profiles read
  • Two generic tools for anything not covered: an arbitrary REST GET, and an arbitrary REST write guarded behind an explicit confirmation string
  • Optional lazy tool loading — groups listed, searched and loaded on demand, so the client is not handed every schema at startup
Requirements

A GitHub personal access token in GITHUB_TOKEN or GITHUB_PERSONAL_ACCESS_TOKEN — a classic token with repo for private repositories and write operations, public_repo for read-only public access, and read:user for profile lookups. Passing it as a command-line flag is possible but exposes it to anyone who can run ps on the machine. Run it with npx github-mcp-server-kosta over stdio, from the npm package github-mcp-server-kosta, currently 3.1.0. --transport http serves a single Streamable HTTP endpoint, bound to 127.0.0.1 by default; if you bind anywhere else, set --http-auth-token and consider the host and origin allowlists, with --http-require-auth-on-public-bind refusing startup otherwise. An idle timeout exits the process after a period without requests, adjustable through MCP_IDLE_TIMEOUT_MS with 0 disabling it. In lazy tool mode only the bootstrap tools and the preloaded groups are exposed, defaulting to core and search.

Setup effort

One command plus a key — npm install -g github-mcp-server-kosta, then supply credentials