Universal GitHub MCP Server
Provides tools for managing GitHub repositories, branches, pull requests, and files via the GitHub API, with support for multi-repository configuration and company documentation enforcement.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Universal GitHub MCP Servershow open pull requests for my-frontend"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: Git MCP Server
π Available Actions
GitHub Actions
Action | Description |
| Show all configured repositories |
| List branches in a repository |
| Create a new branch (with validation) |
| List open pull requests |
| Create a pull request (with template) |
| Get file content from repository |
| Update file content in repository |
Documentation Actions
Action | Description |
| Show all available company documentation |
| Get specific documentation (git, coding, review, pr) |
| Search through documentation for specific terms |
| Get company rules for specific categories |
| 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 repositoriesFor 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 configurationEnsure your GitHub token has the necessary permissions
Ready to use with your own repositories! π
Available Tools
3 toolsdocsC
Company documentation and best practices - enforces rules for development
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query for finding specific information | |
| action | Yes | Action to perform | |
| document | No | Document name or category (git, coding, review, pr, github) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden, but it says nothing concrete about return behavior, side effects, or access needs. The claim that it 'enforces rules' is not backed by the actual list/get/search actions and could mislead an agent into expecting enforcement rather than documentation retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence with no filler and puts the core noun phrase first. However, the 'enforces rules' fragment is vague and does not fully earn its place as written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is too thin: it does not explain what happens when each action is invoked, what kind of content is returned, or when the agent should consult it. The schema provides the action vocabulary, but the description leaves too much behavioral context to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a clear description and action is constrained to an enum. The description adds no parameter semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (company documentation and best practices) and signals a normative purpose, but it lacks a specific operation verb like retrieve or read. It also says the tool 'enforces rules,' which is more suggestive than a clear definition of what calling the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as github or wpcli is provided. The phrase 'enforces rules for development' implies you should consult it for compliance, but the intended selection criteria are left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
githubC
GitHub API integration - pure remote operations for repositories: example-repo
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| repoName | Yes | Repository name from configured repos: example-repo | |
| taskBranch | No | Branch name (required for create_branch, create_pr) | |
| taskDescription | No | Description/title for branch/PR, or filepath for file operations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It offers only 'pure remote operations', which hints that actions occur remotely, but does not disclose that actions like create_branch, create_pr, and update_file are mutating operations, nor any authentication, rate-limit, or side-effect information. The repository scope constraint (example-repo) is stated, but broader behavioral traits are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, and the core scope (GitHub, remote operations, example-repo) is front-loaded. While terse, it is not padded or redundant, which fits the conciseness criterion. It loses a point because it is so brief that it omits essential detail, but it is still appropriately compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexityβfour parameters, seven actions, no output schema, and no annotationsβthe description is severely incomplete. It does not explain what any of the actions do, when to use them, what inputs they require, or what the results look like. The schema covers parameter names but not action semantics. An agent could not correctly plan a call without substantial unstated knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter has a description. The tool description, however, adds no value beyond the schemaβit does not clarify how taskBranch relates to actions, what taskDescription means for file operations, or how the action enum values differ. Baseline 3 is appropriate because the schema already documents parameters, but the description does not enrich them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a GitHub API integration for remote repository operations, and the repo scope example-repo, which gives a general sense of purpose. However, it relies on a noun phrase rather than a specific verb+resource, and the seven distinct operations are only discoverable by opening the schema. It is distinguishable from siblings (wpcli, docs) but does not state the actual capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The phrase 'GitHub API integration' weakly implies it is for GitHub-related tasks, but no when-to-use, when-not-to-use, or alternative conditions are provided. With siblings like wpcli and docs, an agent must infer selection purely from the tool name and description's mention of GitHub.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wpcliD
WordPress CLI tool for CreatorLMS
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | WP-CLI command to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of explaining behavior. It does not disclose that arbitrary WP-CLI commands may be executed, nor any security, destructive, permission, output, or error implications. For a command-passthrough tool this is a serious omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, but under-specification is not conciseness. The phrase 'WordPress CLI tool' is largely redundant with the tool name, and the sentence does not carry enough operational information to justify its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic WP-CLI execution tool with no annotations, no output schema, and no behavioral notes, the description must explain usage, side effects, and expected results. It provides almost none of this, leaving the agent unable to predict consequences or outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes command as 'WP-CLI command to execute'. The description adds only the CreatorLMS scope and no additional syntax, examples, or constraints, so it does not go beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lacks a verb and mainly restates the tool name: 'WordPress CLI tool' adds no action such as execute, run, or manage. Scoping it to CreatorLMS adds context but does not say what the tool actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description never states when to use this tool instead of the sibling tools github or docs, despite those being plausible alternatives for different kinds of tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The three tools are distinct in their domains: WordPress CLI, GitHub API, and documentation. There is no overlap between them, so an agent is unlikely to confuse one for another, though the GitHub tool is broadly scoped.
All tool names are lowercase single nouns, but they do not follow a verb-noun or consistent action-based pattern. 'wpcli' is a compound name, 'github' is a platform name, and 'docs' is an abbreviation, which feels ad hoc rather than systematic.
Three tools is within the acceptable range and not excessive. However, the server is named 'Universal GitHub MCP Server' yet includes a WordPress tool and a docs tool, making the count feel both under-scoped for GitHub and over-inclusive for the stated purpose.
For a GitHub-oriented server, there is only one vague 'github' tool with no explicit CRUD or workflow operations visible. The other two tools address unrelated domains, leaving major gaps in GitHub functionality that would likely cause agent failures.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personalβ¦
Create, deploy, and operate MCP servers directly from your GitHub repositories.
An MCP server that gives your AI access to the source code and docs of all public github repos
MCP server for Product Management
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables Git repository operations and GitHub PR workflows, allowing users to manage repositories, create branches, commit changes, and create pull requests through natural language.2
- AlicenseBqualityDmaintenanceA modular MCP server that provides a unified interface for interacting with GitHub and GitLab, including enterprise and self-hosted instances. It enables comprehensive management of repositories, issues, pull requests, and CI/CD pipelines through natural language.2378MIT
- FlicenseNot gradedqualityDmaintenanceStandalone MCP server for GitHub that enables repository management, branch operations, pull request handling, and commit retrieval via tools listed in the README.1
- AlicenseCqualityCmaintenanceA production-ready MCP server for GitHub operations, providing tools for repository management, issues, pull requests, and more via both MCP stdio and REST API.27MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nasimcoderex/tasker-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server