
Git and forge ops: local git via gitoxide, plus GitHub, GitLab, Gitea and Forgejo
Public tool metadata for what this MCP can expose to an agent.
repo_searchSearch repositories by name, paginatedSearch repositories by name, paginated
No parameter schema in public metadata yet.
gh_repo_listList repositories for the authenticated userList repositories for the authenticated user
No parameter schema in public metadata yet.
glab_project_listList projects for the authenticated userList projects for the authenticated user
No parameter schema in public metadata yet.
build_statusCI run or pipeline status for the current repositoryCI run or pipeline status for the current repository
No parameter schema in public metadata yet.
build_watchWait for a CI run's status to change, up to a bounded time; commit= waits for every run of a commit (task-capable)Wait for a CI run's status to change, up to a bounded time; commit= waits for every run of a commit (task-capable)
No parameter schema in public metadata yet.
pr_build_waitWait for a PR's checks to finish; structured verdict (task-capable)Wait for a PR's checks to finish; structured verdict (task-capable)
No parameter schema in public metadata yet.
pr_watchWatch PRs for merge, close, comments, reviews, checks, and pushes (task-capable)Watch PRs for merge, close, comments, reviews, checks, and pushes (task-capable)
No parameter schema in public metadata yet.
pr_mergeMerge a PR after checking state, draft, conflicts, checks and the allowed method; confirmedMerge a PR after checking state, draft, conflicts, checks and the allowed method; confirmed
No parameter schema in public metadata yet.
git_pushPush branches and tags to one, several, or all remotes; never forces; confirmedPush branches and tags to one, several, or all remotes; never forces; confirmed
No parameter schema in public metadata yet.
git_pullFast-forward the branch to its upstream; never mergesFast-forward the branch to its upstream; never merges
No parameter schema in public metadata yet.
git_fetchFetch one or all remotes, pruning deleted branchesFetch one or all remotes, pruning deleted branches
No parameter schema in public metadata yet.
git_statusStaged, unstaged, and untracked filesStaged, unstaged, and untracked files
No parameter schema in public metadata yet.
git_diffScoped patches, stats, or changed pathsScoped patches, stats, or changed paths
No parameter schema in public metadata yet.
git_logRecent commitsRecent commits
No parameter schema in public metadata yet.
git_showCommit details with subject, body, trailersCommit details with subject, body, trailers
No parameter schema in public metadata yet.
git_show_fileA tracked file at a revisionA tracked file at a revision
No parameter schema in public metadata yet.
git_blamePer-line attributionPer-line attribution
No parameter schema in public metadata yet.
git_addStage explicit pathsStage explicit paths
No parameter schema in public metadata yet.
git_commitCommit staged changes, with trailers or amendCommit staged changes, with trailers or amend
No parameter schema in public metadata yet.
git_branchCreate or delete a local branchCreate or delete a local branch
No parameter schema in public metadata yet.
Sponsors
MCP server for working in a git repository: local git in-process, and GitHub, GitLab, Gitea, and Forgejo behind one small set of tools.
The existing forge MCP servers expose the API, not a workflow. Counted from their own sources: GitHub's has ~125 tools, GitLab's ~88, Gitea's ~54. One tool per endpoint, three servers, three vocabularies, and an agent that has to work out which one it is talking to.
Skipper registers 20, and shows fewer than that: only the ones this repository can actually use, and the four that write only when you turn them on.
An agent does not need to be emperor of your forge. It does not need to create or destroy an organization on any given turn. It needs to know what this repository is, whether the build passed, and what broke. Skipper exposes that and skips the rest.
By default, no skipper tool can write to a forge. There is no create, delete, close, or fork, and out of the box no merge, push, fetch, or pull either: the only state any tool changes is local (staging, committing, local branches), so an agent cannot move a commit to a remote through skipper.
skipper