GitHub Enterprise MCP Server
About
Integrate with the GitHub Enterprise API to access repositories, issues, pull requests, and workflows.
Explore
- Retrieve repository list from GitHub Enterprise instances
- Get detailed repository information
- List repository branches
- View file and directory contents
- Manage issues and pull requests
- Repository management (create, update, delete)
- GitHub Actions workflows management
- User management (list, create, update, delete, suspend/unsuspend users)
- Access enterprise statistics
- Enhanced error handling and user-friendly response formatting
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
GitHub Enterprise MCP ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
- Node.js 18 or higher
- Access to a GitHub Enterprise instance
- Personal Access Token (PAT)
1. Build the Docker image:
docker build -t github-enterprise-mcp .
2. Run the Docker container with environment variables:
docker run -p 3000:3000 \
-e GITHUB_TOKEN="your_github_token" \
-e GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" \
-e DEBUG=true \
github-enterprise-mcp
> Note: The Dockerfile is configured to run with --transport http by default. If you need to change this, you can override the command:
docker run -p 3000:3000 \
-e GITHUB_TOKEN="your_github_token" \
-e GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" \
-e DEBUG=true \
github-enterprise-mcp node dist/index.js --transport http --debug
This method is useful for local development:
npm install
This MCP server supports both English and Korean languages. You can configure the language using:
bash
mcp_github_enterprise_get_repository(owner="octocat", repo="hello-world")
list-repositories
Retrieve repository list for a user or organization
get-repository
Get detailed repository information
list-branches
List branches of a repository
get-content
Retrieve file or directory contents
list-pull-requests
List pull requests in a repository
get-pull-request
Get pull request details
create-pull-request
Create a new pull request
merge-pull-request
Merge a pull request
list-issues
List issues in a repository
get-issue
Get issue details
list-issue-comments
List comments on an issue or pull request
create-issue
Create a new issue
create-repository
Create a new repository
update-repository
Update repository settings
delete-repository
Delete a repository
list-workflows
List GitHub Actions workflows
list-workflow-runs
List workflow runs
trigger-workflow
Trigger a workflow
get-license-info
Get GitHub Enterprise license information
get-enterprise-stats
Get GitHub Enterprise system statistics
This MCP server provides the following tools:
| Tool Name | Description | Parameters | Required PAT Permissions |
|---|---|---|---|
| list-repositories | Retrieve repository list for a user or organization | owner: Username/org name<br>isOrg: Whether it's an organization<br>type: Repository type<br>sort: Sort criteria<br>page: Page number<br>perPage: Items per page | repo |
| get-repository | Get detailed repository information | owner: Repository owner<br>repo: Repository name | repo |
| list-branches | List branches of a repository | owner: Repository owner<br>repo: Repository name<br>protected_only: Whether to show only protected branches<br>page: Page number<br>perPage: Items per page | repo |
| get-content | Retrieve file or directory contents | owner: Repository owner<br>repo: Repository name<br>path: File/directory path<br>ref: Branch/commit (optional) | repo |
| list-pull-requests | List pull requests in a repository | owner: Repository owner<br>repo: Repository name<br>state: PR state filter<br>sort: Sort criteria<br>direction: Sort direction<br>page: Page number<br>per_page: Items per page | repo |
| get-pull-request | Get pull request details | owner: Repository owner<br>repo: Repository name<br>pull_number: Pull request number | repo |
| create-pull-request | Create a new pull request | owner: Repository owner<br>repo: Repository name<br>title: PR title<br>head: Head branch<br>base: Base branch<br>body: PR description<br>draft: Create as draft PR | repo |
| merge-pull-request | Merge a pull request | owner: Repository owner<br>repo: Repository name<br>pull_number: Pull request number<br>merge_method: Merge method<br>commit_title: Commit title<br>commit_message: Commit message | repo |
| list-issues | List issues in a repository | owner: Repository owner<br>repo: Repository name<br>state: Issue state filter<br>sort: Sort criteria<br>direction: Sort direction<br>page: Page number<br>per_page: Items per page | repo |
| get-issue | Get issue details | owner: Repository owner<br>repo: Repository name<br>issue_number: Issue number | repo |
| list-issue-comments | List comments on an issue or pull request | owner: Repository owner<br>repo: Repository name<br>issue_number: Issue/PR number<br>page: Page number<br>per_page: Items per page | repo |
| create-issue | Create a new issue | owner: Repository owner<br>repo: Repository name<br>title: Issue title<br>body: Issue body content<br>labels: Array of label names<br>assignees: Array of user logins<br>milestone: Milestone ID | repo |
| create-repository | Create a new repository | name: Repository name<br>description: Repository description<br>private: Whether private<br>auto_init: Initialize with README<br>gitignore_template: Add .gitignore<br>license_template: Add license<br>org: Organization name | repo |
| update-repository | Update repository settings | owner: Repository owner<br>repo: Repository name<br>description: New description<br>private: Change privacy<br>default_branch: Change default branch<br>has_issues: Enable/disable issues<br>has_projects: Enable/disable projects<br>has_wiki: Enable/disable wiki<br>archived: Archive/unarchive | repo |
| delete-repository | Delete a repository | owner: Repository owner<br>repo: Repository name<br>confirm: Confirmation (must be true) | delete_repo |
| list-workflows | List GitHub Actions workflows | owner: Repository owner<br>repo: Repository name<br>page: Page number<br>perPage: Items per page | actions:read |
| list-workflow-runs | List workflow runs | owner: Repository owner<br>repo: Repository name<br>workflow_id: Workflow ID/filename<br>branch: Filter by branch<br>status: Filter by status<br>page: Page number<br>perPage: Items per page | actions:read |
| trigger-workflow | Trigger a workflow | owner: Repository owner<br>repo: Repository name<br>workflow_id: Workflow ID/filename<br>ref: Git reference<br>inputs: Workflow inputs | actions:write |
| get-license-info | Get GitHub Enterprise license information | - | Requires site_admin (Administrator) account |
| get-enterprise-stats | Get GitHub Enterprise system statistics | - | Requires site_admin (Administrator) account |
> Note: For Enterprise-specific tools (get-license-info and get-enterprise-stats), a user with site administrator privileges is required. A Classic Personal Access Token is recommended, as Fine-grained tokens may not support these Enterprise-level permissions.
Once you have set up the MCP server and configured Cursor to connect to it, you can use the GitHub Enterprise tools directly in Cursor's AI chat. Here are some examples:
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"github enterprise mcp server": {
"github-enterprise": {
"command": "npx",
"args": [
"@ddukbg/github-enterprise-mcp"
],
"env": {
"GITHUB_ENTERPRISE_URL": "https://github.your-company.com/api/v3",
"GITHUB_TOKEN": "your_github_token"
}
}
}
}
}
McpServers
{
"github-enterprise": {
"command": "npx",
"args": [
"@ddukbg/github-enterprise-mcp"
],
"env": {
"GITHUB_ENTERPRISE_URL": "https://github.your-company.com/api/v3",
"GITHUB_TOKEN": "your_github_token"
}
}
}
An MCP (Model Context Protocol) server for integration with GitHub Enterprise API. This server provides an MCP interface to easily access repository information, issues, PRs, and more from GitHub Enterprise in Cursor.
Compatibility
This project is primarily designed for GitHub Enterprise Server environments, but it also works with:
- GitHub.com
- GitHub Enterprise Cloud
> Note: Some enterprise-specific features (like license information and enterprise statistics) will not work with GitHub.com or GitHub Enterprise Cloud.
Key Features
- Retrieve repository list from GitHub Enterprise instances
- Get detailed repository information
- List repository branches
- View file and directory contents
- Manage issues and pull requests
- Repository management (create, update, delete)
- GitHub Actions workflows management
- User management (list, create, update, delete, suspend/unsuspend users)
- Access enterprise statistics
- Enhanced error handling and user-friendly response formatting
Getting Started
Prerequisites
- Node.js 18 or higher
- Access to a GitHub Enterprise instance
- Personal Access Token (PAT)
Docker Installation and Setup
Option 1: Running with Docker
1. Build the Docker image:
docker build -t github-enterprise-mcp .
2. Run the Docker container with environment variables:
docker run -p 3000:3000 \
-e GITHUB_TOKEN="your_github_token" \
-e GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" \
-e DEBUG=true \
github-enterprise-mcp
> Note: The Dockerfile is configured to run with --transport http by default. If you need to change this, you can override the command:
docker run -p 3000:3000 \
-e GITHUB_TOKEN="your_github_token" \
-e GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3" \
-e DEBUG=true \
github-enterprise-mcp node dist/index.js --transport http --debug
Option 2: Using Docker Compose
1. Create a .env file in the project root with the required environment variables:
GITHUB_ENTERPRISE_URL=https://github.your-company.com/api/v3
GITHUB_TOKEN=your_github_token
DEBUG=true
2. Start the container with Docker Compose:
docker-compose up -d
3. Check the logs:
docker-compose logs -f
4. Stop the container:
docker-compose down
Installation and Setup
Local Development (Using Concurrent Mode)
This method is recommended for active development with automatic recompilation and server restarts:
1. Clone the repository and install required packages:
git clone https://github.com/ddukbg/github-enterprise-mcp.git
cd github-enterprise-mcp
npm install
2. Run the development server:
export GITHUB_TOKEN="your_github_token"
export GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3"
npm run dev
This will:
- Compile TypeScript code automatically when files change
- Restart the server when compiled files are updated
- Run the server in HTTP mode for URL-based connections
3. Connect to Cursor using URL mode as described below
Installation and Setup for Production
Option 1: Using URL Mode (Recommended for Local Development)
This method is the most stable and recommended for local development or testing:
1. Clone the repository and install required packages:
git clone https://github.com/ddukbg/github-enterprise-mcp.git
cd github-enterprise-mcp
npm install
2. Build the project:
npm run build
chmod +x dist/index.js
3. Run the server:
export GITHUB_TOKEN="your_github_token"
export GITHUB_ENTERPRISE_URL="https://github.your-company.com/api/v3"
node dist/index.js --transport http --debug
4. Connect to Cursor using URL mode:
- Add the following to your Cursor's .cursor/mcp.json file:
{
"mcpServers": {
"github-enterprise": {
"url": "http://localhost:3000/sse"
}
}
}
Option 2: Install as a Global Command (npm link)
This method is useful for local development:
```bash
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



