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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- 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/rriesco/github-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server