gh-enterprise-integration-service
A specialized Model Context Protocol (MCP) intermediary for seamless connection with GitHub Enterprise instances. This service facilitates robust querying of repository metadata, comprehensive issue tracking, and detailed management of pull requests directly within supporting IDE environments.
Author

ddukbg
Quick Info
Actions
Tags
GitHub Enterprise Connector MCP Implementation
This service acts as an MCP gateway, enabling deep programmatic interaction with private or self-hosted GitHub Enterprise APIs. It standardizes access to core repository functionalities, including content retrieval, lifecycle management (creation/modification/deletion), and advanced features like GitHub Actions orchestration and user administration.
Environment Compatibility
Designed primarily for self-hosted GitHub Enterprise Server (GHES) deployments. It maintains compatibility with standard GitHub.com and GitHub Enterprise Cloud (GHEC), though certain proprietary server statistics endpoints will be inaccessible when connecting to the public cloud.
Core Capabilities
This server exposes extensive capabilities via the MCP interface:
- Repository Operations: Fetching listings, viewing detailed configurations, branch inspection, and content fetching (files/directories).
- Collaboration Management: Full lifecycle handling for Issues and Pull Requests (creation, merging, querying).
- Automation: Control and monitoring of GitHub Actions workflows.
- User & Security Administration (Enterprise): Tools for enumerating, provisioning, modifying, and deactivating user accounts, plus querying enterprise-level licensing and system metrics.
Deployment Guide
Prerequisites
- Node.js (v18+).
- Network access to the target GitHub Enterprise API endpoint.
- A Personal Access Token (PAT) with appropriate scope permissions (
repo,workflow,admin:enterprise, etc.).
Execution via Containerization (Docker)
-
Image Construction: bash docker build -t enterprise-git-mcp .
-
Runtime Launch (Mapping required secrets/configs): bash docker run -p 3000:3000 -e GITHUB_TOKEN="
" -e GITHUB_ENTERPRISE_URL="https://git.corp.net/api/v3" enterprise-git-mcp
Development Setup (Hot Reload)
For rapid iteration, utilize the provided development script, which handles automatic recompilation and service restarts upon source code modification:
bash
Clone and dependencies
git clone https://github.com/ddukbg/github-enterprise-mcp.git cd github-enterprise-mcp npm install
Start server with environment variables set
export GITHUB_TOKEN="
IDE Connection Configuration
To connect your AI development environment (e.g., Cursor) to this locally running service (defaulting to port 3000):
In your IDE's configuration file (e.g., .cursor/mcp.json):
{ "mcpServers": { "gh-enterprise-prod": { "url": "http://localhost:3000/sse" } } }
Available Functions (Tool Signatures)
The service exposes a comprehensive set of callable functions for AI agents. Permissions required for each function are detailed below:
| Tool Name | Primary Action | Essential Permissions | Enterprise Scope |
|---|---|---|---|
list-repositories |
Query project listing | repo |
No |
get-repository |
Fetch single repository details | repo |
No |
list-branches |
Enumerate repository branches | repo |
No |
get-content |
Access file/directory structures | repo |
No |
create-pull-request |
Initiate a new feature merge request | repo |
No |
merge-pull-request |
Finalize a pull request | repo |
No |
create-issue |
Log a new problem report | repo |
No |
delete-repository |
Permanently remove a repository | delete_repo |
No |
list-workflows |
Audit CI/CD pipeline status | actions:read |
No |
trigger-workflow |
Manually initiate an automation run | actions:write |
No |
get-license-info |
Retrieve server licensing status | site_admin |
Yes |
list-users |
Enumerate instance users | admin:org (or equivalent) |
Yes |
suspend-user |
Deactivate an account | admin:org (or equivalent) |
Yes |
Note on Enterprise Tools: Functions like get-license-info mandate elevated privileges (site_admin). Using Classic PATs is strongly advised for these specific administrative endpoints, as fine-grained tokens may lack the necessary blanket permissions.
