GitHub MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITHUB_REPO | No | Default repository name for all operations | |
| GITHUB_OWNER | No | Default repository owner for all operations | |
| GITHUB_TOKEN | Yes | GitHub Personal Access Token with repo scope |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| batch_update_issuesA | Update multiple GitHub issues in parallel (max 50 per batch). Each update object: {issue_number (required), title, body, state, labels, milestone, assignees} Note: labels/assignees replace existing (not append). Returns: {total, successful, failed, success_rate, execution_time_seconds, results} |
| batch_add_labelsA | Add labels to multiple issues in parallel. Labels are ADDED (not replaced). Each operation: {issue_number (required), labels (required)} Returns: {total, successful, failed, success_rate, execution_time_seconds, results} |
| batch_link_to_projectA | Link multiple issues to a GitHub Project (v2) board in parallel. project_id: Project node ID starting with "PVT_" (from GraphQL API, not project number) Requires token with project (write) scope. Returns: {total, successful, failed, success_rate, execution_time_seconds, results} |
| check_ci_statusA | Check CI workflow status for a branch. Returns overall and per-workflow status. Returns: {overall_status, overall_conclusion, branch, workflows: [{name, status, conclusion, url, jobs}]} If no CI runs found, returns status="no_runs". |
| get_ci_logsA | Get CI workflow logs for debugging failed jobs. Provide either branch OR run_id (not both). Optional filters:
Returns: {run_id, run_url, branch, status, conclusion, jobs: [{job_id, name, status, conclusion, logs, log_url}]} |
| create_issuesA | Create GitHub issues (1 or more). Parallel execution for multiple. Each issue: {title (required), body, labels, milestone, assignees} Options:
Returns: {total, successful, failed, results: [{index, success, data/error}]} |
| get_issueC | Retrieve full GitHub issue details including body content. Returns: {number, title, body, state, labels, milestone, created_at, updated_at, url} |
| list_issuesA | List and filter GitHub issues with pagination. Optional filters:
Returns: {total, count, issues: [{number, title, state, labels, milestone, assignee, url}]} |
| close_issueB | Close a GitHub issue with optional comment and reason. Optional:
Returns: {number, state, state_reason, comment_added, url} |
| create_milestoneB | Create a GitHub milestone. Optional:
Returns: {number, title, description, state, due_on, url} |
| list_milestonesA | List repository milestones with filtering and sorting. Options:
Returns: {total, milestones: [{number, title, state, open_issues, closed_issues, due_on, url}]} |
| create_pr_with_contentA | Create a GitHub PR with structured content. Auto-detects current branch as head. Required content:
Optional:
Returns: {pr_number, url, state, head, base, created_at} |
| get_pull_requestB | Get PR details including mergeable status and statistics. Returns: {number, title, state, merged, mergeable, mergeable_state, draft, head, base, commits, additions, deletions, changed_files, created_at, updated_at, merged_at, url} mergeable_state: "clean", "dirty", "unstable", "blocked", or "unknown" |
| update_prA | Update PR metadata. Only provided fields are updated; None values ignored. Optional updates:
Returns: {number, title, state, updated_fields, url} Note: Cannot update merged PRs. |
| merge_prA | Merge a PR after checking mergeable status. Options:
Returns: {merged, sha, message, branch_deleted} |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
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/rriesco/github-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server