Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GITHUB_REPONoDefault repository name for all operations
GITHUB_OWNERNoDefault repository owner for all operations
GITHUB_TOKENYesGitHub 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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:

  • job_name: filter by job name (e.g., "test", "lint")

  • status: "failure" (default), "success", or "all"

  • max_lines: tail N lines of logs (default: 200)

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:

  • max_workers: parallel workers (default: 5, max: 10)

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:

  • state: "open" (default), "closed", or "all"

  • labels: filter by label names

  • milestone: filter by milestone title (not number)

  • assignee: filter by username, or "none" for unassigned

  • sort: "created" (default), "updated", or "comments"

  • limit: max issues to return (default: 30, max: 100)

Returns: {total, count, issues: [{number, title, state, labels, milestone, assignee, url}]}

close_issueB

Close a GitHub issue with optional comment and reason.

Optional:

  • comment: add closing comment before closing

  • state_reason: "completed" or "not_planned"

Returns: {number, state, state_reason, comment_added, url}

create_milestoneB

Create a GitHub milestone.

Optional:

  • description: markdown description

  • due_date: ISO 8601 format (e.g., "2025-12-31T23:59:59Z")

  • state: "open" (default) or "closed"

Returns: {number, title, description, state, due_on, url}

list_milestonesA

List repository milestones with filtering and sorting.

Options:

  • state: "open" (default), "closed", or "all"

  • sort: "due_on" (default) or "completeness"

  • direction: "asc" (default) or "desc"

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:

  • problem: why this change is needed (2-4 sentences)

  • solution: how it works (4-8 sentences)

  • key_changes: bulleted markdown list of changes

Optional:

  • issue: GitHub issue number to close (adds "Closes #N" to PR)

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:

  • title: new PR title

  • body: new PR description

  • base: change base branch

  • state: "open" or "closed"

Returns: {number, title, state, updated_fields, url}

Note: Cannot update merged PRs.

merge_prA

Merge a PR after checking mergeable status.

Options:

  • merge_method: "squash" (default), "merge", or "rebase"

  • commit_title/commit_message: custom merge commit text (squash/merge only)

  • delete_branch: delete head branch after merge (default: True)

Returns: {merged, sha, message, branch_deleted}

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 15 tools

Disambiguation5/5

Each tool targets a distinct resource or operation: issues (create, get, list, close, batch update, batch add labels), milestones (create, list), PRs (create, get, update, merge), and CI (check status, get logs). No two tools have overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., close_issue, create_milestone, get_ci_logs). Batch operations are prefixed with 'batch_', and names are descriptive without mixing conventions.

Tool Count5/5

15 tools is a well-scoped set for a GitHub MCP server. It covers core workflows without being overly numerous or too sparse, providing a balanced surface for common development tasks.

Completeness4/5

The tool set covers CRUD-like operations for issues, PRs, milestones, and CI monitoring. Minor gaps exist (e.g., no tool for adding comments to issues, managing individual labels, or PR review actions), but the core workflows are well-supported, and agents can work around the gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues