Universal GitHub MCP Server
A configurable MCP server for managing multiple GitHub repositories, branches, pull requests, and files, with built-in company documentation and validation.
README
Universal GitHub MCP Server
A configurable Model Context Protocol (MCP) server that provides GitHub API integration for any repositories you specify.
🚀 Features
- Pure GitHub API Operations - No local file dependencies
- Multi-Repository Support - Work with multiple GitHub repositories
- Configurable - Easily configure for your own repositories
- Branch Management - Create, list, and manage branches
- Pull Request Operations - Create and manage PRs
- File Operations - Read and update files via GitHub API
- 🆕 Company Documentation Integration - Enforces company rules and best practices
- 🆕 Automatic Validation - Validates branch names, PR formats according to your guidelines
- 🆕 Smart Documentation Search - Find specific rules and guidelines quickly
📋 Available Actions
GitHub Actions
| Action | Description |
|---|---|
list_repos |
Show all configured repositories |
list_branches |
List branches in a repository |
create_branch |
Create a new branch (with validation) |
list_prs |
List open pull requests |
create_pr |
Create a pull request (with template) |
get_file |
Get file content from repository |
update_file |
Update file content in repository |
Documentation Actions
| Action | Description |
|---|---|
list |
Show all available company documentation |
get |
Get specific documentation (git, coding, review, pr) |
search |
Search through documentation for specific terms |
rules |
Get company rules for specific categories |
guidelines |
Get action-specific guidelines |
⚙️ Configuration
Method 1: Environment Variable (Recommended)
Set the GITHUB_REPOS environment variable with your repository configuration:
export GITHUB_REPOS='[
{
"name": "my-frontend",
"repo": "myusername/frontend-app",
"defaultBranch": "main"
},
{
"name": "my-backend",
"repo": "myusername/backend-api",
"defaultBranch": "develop"
}
]'
Method 2: Configuration File
Edit config/repos.json:
{
"repositories": [
{
"name": "my-project",
"repo": "owner/repository-name",
"defaultBranch": "main"
},
{
"name": "another-project",
"repo": "owner/another-repo",
"defaultBranch": "develop"
}
]
}
🔑 GitHub Token Setup
-
Generate a Personal Access Token:
- Go to GitHub → Settings → Developer settings → Personal access tokens
- Generate new token with
repopermissions
-
Set the token as environment variable:
export GITHUB_TOKEN="your_github_token_here"
🏃♂️ Running the Server
# Install dependencies
npm install
# Set your GitHub token
export GITHUB_TOKEN="your_token_here"
# Optional: Set custom repositories
export GITHUB_REPOS='[{"name":"my-repo","repo":"owner/repo","defaultBranch":"main"}]'
# Start the MCP server
npm start
# or
node index.js
🔧 Claude Desktop Integration
Add to your Claude Desktop config.json:
{
"mcpServers": {
"github-mcp": {
"command": "node",
"args": ["/path/to/your/github-mcp/index.js"],
"env": {
"GITHUB_TOKEN": "your_github_token_here",
"GITHUB_REPOS": "[{\"name\":\"my-repo\",\"repo\":\"owner/repo\",\"defaultBranch\":\"main\"}]"
}
}
}
}
📝 Usage Examples
List Configured Repositories
{
"repoName": "any-repo-name",
"action": "list_repos"
}
Create a New Branch
{
"repoName": "my-frontend",
"action": "create_branch",
"taskBranch": "feature/new-component",
"taskDescription": "Add new React component"
}
Get File Content
{
"repoName": "my-backend",
"action": "get_file",
"taskDescription": "src/server.js"
}
List Pull Requests
{
"repoName": "my-frontend",
"action": "list_prs"
}
🔒 Security Notes
- Never commit your GitHub token to version control
- Use environment variables for sensitive configuration
- The server only requires
repopermissions for private repositories - For public repositories, you can use a token with minimal permissions
🛠 Development
# Clone the repository
git clone <your-repo-url>
cd github-mcp
# Install dependencies
npm install
# Create your configuration
cp config/repos.json.example config/repos.json
# Edit config/repos.json with your repositories
# Set environment variables
export GITHUB_TOKEN="your_token"
# Run the server
npm start
📄 Example Configuration Files
For Open Source Projects
{
"repositories": [
{
"name": "react",
"repo": "facebook/react",
"defaultBranch": "main"
},
{
"name": "vue",
"repo": "vuejs/vue",
"defaultBranch": "dev"
}
]
}
For Company Projects
{
"repositories": [
{
"name": "web-app",
"repo": "company/web-application",
"defaultBranch": "develop"
},
{
"name": "mobile-app",
"repo": "company/mobile-app",
"defaultBranch": "main"
},
{
"name": "api-service",
"repo": "company/api-service",
"defaultBranch": "master"
}
]
}
🎯 Default Behavior
If no configuration is found, the server will use example configuration and show helpful error messages to guide you through setup.
📞 Support
- Check the server logs for configuration loading messages
- Use the
list_reposaction to verify your configuration - Ensure your GitHub token has the necessary permissions
Ready to use with your own repositories! 🚀
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.