Unified MCP server for Git forge management. Tools for GitHub, GitLab, Gitea, and Bitbucket.
= poly-git-mcp :toc: :toc-placement!:
image:https://img.shields.io/badge/RSR-compliant-gold[RSR Compliant,link=https://github.com/hyperpolymath/rhodium-standard-repositories] image:https://img.shields.io/badge/MCP-server-blue[MCP Server,link=https://github.com/modelcontextprotocol] image:https://img.shields.io/badge/license-MIT-green[License]
Unified MCP server for Git forge management. Provides Model Context Protocol tools for interacting with GitHub, GitLab, Gitea, and Bitbucket through their respective CLI tools and APIs.
toc::[]
== Overview
poly-git-mcp exposes Git forge capabilities through the Model Context Protocol (MCP), enabling AI assistants and other MCP clients to manage repositories, issues, pull requests, and CI/CD across multiple Git platforms.
== Adapters
=== GitHub (13 tools)
GitHub via gh CLI:
gh_repo_list- List repositoriesgh_repo_view- View repository detailsgh_repo_clone- Clone a repositorygh_issue_list- List issuesgh_issue_view- View an issuegh_issue_create- Create an issuegh_pr_list- List pull requestsgh_pr_view- View a pull requestgh_pr_create- Create a pull requestgh_pr_merge- Merge a pull requestgh_release_list- List releasesgh_workflow_list- List workflow runsgh_auth_status- Check authentication status
=== GitLab (12 tools)
GitLab via glab CLI:
glab_project_list- List projectsglab_project_view- View project detailsglab_issue_list- List issuesglab_issue_view- View an issueglab_issue_create- Create an issueglab_mr_list- List merge requestsglab_mr_view- View a merge requestglab_mr_create- Create a merge requestglab_mr_merge- Merge a merge requestglab_pipeline_list- List pipelinesglab_ci_status- Show CI/CD statusglab_auth_status- Check authentication status
=== Gitea (11 tools)
Gitea/Forgejo via tea CLI:
tea_repo_list- List repositoriestea_repo_view- View repository detailstea_issue_list- List issuestea_issue_view- View an issuetea_issue_create- Create an issuetea_pr_list- List pull requeststea_pr_view- View a pull requesttea_pr_create- Create a pull requesttea_release_list- List releasestea_org_list- List organizationstea_login_list- List configured logins
=== Bitbucket (10 tools) Bitbucket via REST API:
bb_repo_list- List repositoriesbb_repo_view- View repository detailsbb_issue_list- List issuesbb_pr_list- List pull requestsbb_pr_view- View a pull requestbb_pipeline_list- List pipelinesbb_branches- List branchesbb_commits- List commitsbb_workspaces- List workspacesbb_user- Get current user info
== Requirements
- https://deno.land/[Deno] runtime
- https://cli.github.com/[GitHub CLI (gh)] (for GitHub tools)
- https://gitlab.com/gitlab-org/cli[GitLab CLI (glab)] (for GitLab tools)
- https://gitea.com/gitea/tea[tea] (for Gitea tools)
- Bitbucket app password (for Bitbucket tools)
== Configuration
=== Bitbucket Authentication
Set environment variables for Bitbucket API access:
[source,bash]
export BITBUCKET_USERNAME=your-username export BITBUCKET_APP_PASSWORD=your-app-password
Create an app password at: https://bitbucket.org/account/settings/app-passwords/
== Installation
[source,bash]
git clone https://github.com/hyperpolymath/poly-git-mcp cd poly-git-mcp npm install npm run build
== Usage
Run as MCP server:
[source,bash]
deno run --allow-run --allow-read --allow-env --allow-net main.js
Or use the systemd service:
[source,bash]
systemctl --user enable poly-git-mcp systemctl --user start poly-git-mcp
== License
MIT