Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GITHUB_TOKENYesGitHub Personal Access Token
GITHUB_API_URLNoAPI URL (change for GitHub Enterprise)https://api.github.com
GITHUB_TIMEOUTNoRequest timeout in seconds30
GITHUB_PROTOCOLNoPreferred clone protocol (ssh or https)ssh
GITHUB_MCP_CACHE_DIRNoCredential cache directory~/.github-mcp-cache

Capabilities

Features and capabilities supported by this server

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

Tools

Functions exposed to the LLM to take actions

NameDescription
github_connectA

Connect to GitHub API with a Personal Access Token.

Credentials are automatically cached for future reconnection.

Args: token: GitHub Personal Access Token (generate at https://github.com/settings/tokens) api_url: GitHub API URL (default: https://api.github.com, change for GitHub Enterprise) protocol: Preferred clone/push protocol — 'ssh' or 'https' (default: ssh) timeout: Request timeout in seconds (default: 30) session_name: Name for this session (default: 'default')

github_disconnectC

Disconnect a GitHub session.

Args: session_name: Name of the session to disconnect (default: 'default')

github_statusA

Show connection status, authenticated user info, and API rate limits.

Args: session_name: Session to check (default: 'default')

github_save_credentialsB

Save GitHub credentials to disk cache for future use.

Args: session_name: Name to save credentials under token: GitHub Personal Access Token api_url: GitHub API URL protocol: Preferred clone protocol — 'ssh' or 'https'

github_list_reposA

List repositories for the authenticated user or a specific user/org.

Args: owner: Username or org name (empty = authenticated user's repos) repo_type: Filter — 'all', 'owner', 'public', 'private', 'member' (default: all) sort: Sort by — 'updated', 'created', 'pushed', 'full_name' (default: updated) max_results: Maximum number of repos to return (default: 30) session_name: GitHub session to use

github_get_repoB

Get detailed information about a specific repository.

Shows stars, forks, languages, default branch, license, and more.

Args: owner: Repository owner (user or org) repo: Repository name session_name: GitHub session to use

github_create_repoA

Create a new GitHub repository.

Args: name: Repository name description: Repository description private: Make repository private (default: False = public) auto_init: Initialize with a README (default: True) gitignore_template: Gitignore template name (e.g., 'Python', 'Node', 'Go') license_template: License template (e.g., 'mit', 'apache-2.0', 'gpl-3.0') org: Organization to create repo under (empty = personal repo) session_name: GitHub session to use

github_delete_repoA

Delete a GitHub repository permanently.

⚠️ This action cannot be undone. All data, issues, PRs, and wiki will be lost.

Args: owner: Repository owner repo: Repository name session_name: GitHub session to use

github_fork_repoC

Fork a repository to your account or an organization.

Args: owner: Original repo owner repo: Original repo name org: Organization to fork to (empty = your personal account) new_name: Custom name for the fork (empty = keep original name) session_name: GitHub session to use

github_update_repoA

Update repository settings.

Only provided fields will be updated. Leave empty to keep current value.

Args: owner: Repository owner repo: Repository name description: New description (empty = no change) homepage: Homepage URL (empty = no change) private: 'true' or 'false' (empty = no change) archived: 'true' to archive (empty = no change) default_branch: New default branch name (empty = no change) session_name: GitHub session to use

github_list_topicsC

Get repository topics/tags.

Args: owner: Repository owner repo: Repository name session_name: GitHub session to use

github_update_topicsA

Set repository topics/tags (replaces all existing topics).

Args: owner: Repository owner repo: Repository name topics: Comma-separated topic names (e.g., 'python,mcp,devops') session_name: GitHub session to use

github_list_languagesB

Get the language breakdown for a repository (bytes per language).

Args: owner: Repository owner repo: Repository name session_name: GitHub session to use

github_list_contributorsC

List repository contributors with commit counts.

Args: owner: Repository owner repo: Repository name max_results: Maximum contributors to return (default: 30) session_name: GitHub session to use

github_list_branchesC

List all branches in a repository.

Args: owner: Repository owner repo: Repository name max_results: Maximum branches to return (default: 30) session_name: GitHub session to use

github_get_branchA

Get detailed information about a specific branch.

Args: owner: Repository owner repo: Repository name branch: Branch name session_name: GitHub session to use

github_create_branchA

Create a new branch from an existing branch or commit SHA.

Args: owner: Repository owner repo: Repository name branch_name: Name for the new branch from_branch: Source branch name (default: repo's default branch) from_sha: Specific commit SHA to branch from (overrides from_branch) session_name: GitHub session to use

github_delete_branchC

Delete a branch from a repository.

Args: owner: Repository owner repo: Repository name branch: Branch name to delete session_name: GitHub session to use

github_protect_branchB

Set branch protection rules.

Args: owner: Repository owner repo: Repository name branch: Branch name to protect require_reviews: Require pull request reviews (default: True) required_reviewers: Minimum number of reviewers (default: 1) enforce_admins: Enforce rules for admins too (default: False) session_name: GitHub session to use

github_list_tagsA

List all tags in a repository.

Args: owner: Repository owner repo: Repository name max_results: Maximum tags to return (default: 30) session_name: GitHub session to use

github_create_tagA

Create a new tag (lightweight or annotated).

Args: owner: Repository owner repo: Repository name tag_name: Tag name (e.g., 'v1.0.0') sha: Commit SHA to tag message: Tag message (if provided, creates an annotated tag) session_name: GitHub session to use

github_compare_branchesA

Compare two branches showing ahead/behind counts and changed files.

Args: owner: Repository owner repo: Repository name base: Base branch (e.g., 'main') head: Head branch to compare (e.g., 'feature-branch') session_name: GitHub session to use

github_get_fileA

Get file content from a repository (auto-decodes base64).

Args: owner: Repository owner repo: Repository name path: File path in the repo (e.g., 'src/main.py') ref: Branch, tag, or commit SHA (empty = default branch) session_name: GitHub session to use

github_create_fileA

Create a new file in a repository via a commit.

Args: owner: Repository owner repo: Repository name path: File path to create (e.g., 'docs/guide.md') content: File content (will be base64-encoded automatically) message: Commit message branch: Branch to commit to (empty = default branch) session_name: GitHub session to use

github_update_fileA

Update an existing file in a repository via a commit.

You need the current file's SHA (get it from github_get_file).

Args: owner: Repository owner repo: Repository name path: File path to update content: New file content message: Commit message sha: Current file SHA (required to prevent conflicts) branch: Branch to commit to (empty = default branch) session_name: GitHub session to use

github_delete_fileB

Delete a file from a repository via a commit.

Args: owner: Repository owner repo: Repository name path: File path to delete message: Commit message sha: Current file SHA (get from github_get_file) branch: Branch to commit to (empty = default branch) session_name: GitHub session to use

github_get_treeA

Get directory listing/tree for a repository path.

Args: owner: Repository owner repo: Repository name path: Directory path (empty = root) ref: Branch, tag, or SHA (empty = default branch) session_name: GitHub session to use

github_get_clone_urlA

Get the clone URL for a repository in SSH or HTTPS format.

Args: owner: Repository owner repo: Repository name protocol: 'ssh' or 'https' (empty = use session default) session_name: GitHub session to use

github_list_prsA

List pull requests for a repository.

Args: owner: Repository owner repo: Repository name state: Filter — 'open', 'closed', 'all' (default: open) sort: Sort by — 'created', 'updated', 'popularity' (default: created) max_results: Maximum PRs to return (default: 30) session_name: GitHub session to use

github_get_prB

Get detailed information about a pull request.

Args: owner: Repository owner repo: Repository name pr_number: PR number session_name: GitHub session to use

github_create_prA

Create a new pull request.

Args: owner: Repository owner repo: Repository name title: PR title head: Source branch name (e.g., 'feature-branch') base: Target branch name (e.g., 'main') body: PR description/body (markdown supported) draft: Create as draft PR (default: False) session_name: GitHub session to use

github_update_prA

Update a pull request's title, body, base branch, or state.

Args: owner: Repository owner repo: Repository name pr_number: PR number title: New title (empty = no change) body: New body (empty = no change) base: New base branch (empty = no change) state: New state — 'open' or 'closed' (empty = no change) session_name: GitHub session to use

github_merge_prB

Merge a pull request.

Args: owner: Repository owner repo: Repository name pr_number: PR number to merge merge_method: Merge strategy — 'merge', 'squash', or 'rebase' (default: merge) commit_title: Custom merge commit title (empty = default) commit_message: Custom merge commit message (empty = default) session_name: GitHub session to use

github_close_prA

Close a pull request without merging.

Args: owner: Repository owner repo: Repository name pr_number: PR number to close session_name: GitHub session to use

github_list_pr_filesB

List files changed in a pull request.

Args: owner: Repository owner repo: Repository name pr_number: PR number session_name: GitHub session to use

github_list_pr_reviewsA

List reviews on a pull request.

Args: owner: Repository owner repo: Repository name pr_number: PR number session_name: GitHub session to use

github_request_reviewersB

Request reviewers for a pull request.

Args: owner: Repository owner repo: Repository name pr_number: PR number reviewers: Comma-separated GitHub usernames (e.g., 'user1,user2') session_name: GitHub session to use

github_create_pr_commentA

Add a comment on a pull request.

Args: owner: Repository owner repo: Repository name pr_number: PR number body: Comment body (markdown supported) session_name: GitHub session to use

github_list_issuesA

List issues in a repository with optional filters.

Args: owner: Repository owner repo: Repository name state: Filter — 'open', 'closed', 'all' (default: open) labels: Comma-separated label names to filter by assignee: Filter by assignee username sort: Sort by — 'created', 'updated', 'comments' (default: created) max_results: Maximum issues to return (default: 30) session_name: GitHub session to use

github_get_issueC

Get detailed information about an issue.

Args: owner: Repository owner repo: Repository name issue_number: Issue number session_name: GitHub session to use

github_create_issueA

Create a new issue in a repository.

Args: owner: Repository owner repo: Repository name title: Issue title body: Issue body (markdown supported) labels: Comma-separated label names (e.g., 'bug,priority:high') assignees: Comma-separated usernames to assign session_name: GitHub session to use

github_update_issueA

Update an issue's title, body, labels, assignees, or state.

Args: owner: Repository owner repo: Repository name issue_number: Issue number title: New title (empty = no change) body: New body (empty = no change) labels: Comma-separated labels (replaces all labels; empty = no change) assignees: Comma-separated assignees (replaces all; empty = no change) state: 'open' or 'closed' (empty = no change) session_name: GitHub session to use

github_close_issueB

Close an issue.

Args: owner: Repository owner repo: Repository name issue_number: Issue number to close session_name: GitHub session to use

github_create_issue_commentB

Add a comment on an issue.

Args: owner: Repository owner repo: Repository name issue_number: Issue number body: Comment body (markdown supported) session_name: GitHub session to use

github_list_issue_commentsA

List comments on an issue.

Args: owner: Repository owner repo: Repository name issue_number: Issue number max_results: Maximum comments to return (default: 30) session_name: GitHub session to use

github_add_labelsA

Add labels to an issue or pull request.

Args: owner: Repository owner repo: Repository name issue_number: Issue or PR number labels: Comma-separated label names to add session_name: GitHub session to use

github_list_workflowsB

List all GitHub Actions workflows in a repository.

Args: owner: Repository owner repo: Repository name session_name: GitHub session to use

github_trigger_workflowA

Trigger a workflow dispatch event (manually run a workflow).

The workflow must have a 'workflow_dispatch' trigger defined.

Args: owner: Repository owner repo: Repository name workflow_id: Workflow ID or filename (e.g., 'deploy.yml') ref: Branch or tag to run on (default: main) inputs: Workflow inputs as JSON string (e.g., '{"environment": "staging"}') session_name: GitHub session to use

github_list_workflow_runsB

List workflow runs for a repository or specific workflow.

Args: owner: Repository owner repo: Repository name workflow_id: Specific workflow ID or filename (empty = all workflows) status: Filter — 'completed', 'in_progress', 'queued', 'success', 'failure' branch: Filter by branch name max_results: Maximum runs to return (default: 20) session_name: GitHub session to use

github_get_workflow_runC

Get details of a specific workflow run.

Args: owner: Repository owner repo: Repository name run_id: Workflow run ID session_name: GitHub session to use

github_get_run_logsA

Get the download URL for workflow run logs (returns a redirect URL).

Args: owner: Repository owner repo: Repository name run_id: Workflow run ID session_name: GitHub session to use

github_cancel_workflow_runA

Cancel a workflow run that is in progress.

Args: owner: Repository owner repo: Repository name run_id: Workflow run ID to cancel session_name: GitHub session to use

github_rerun_workflowC

Re-run a workflow (all jobs or only failed jobs).

Args: owner: Repository owner repo: Repository name run_id: Workflow run ID to re-run session_name: GitHub session to use

github_list_releasesA

List all releases for a repository.

Args: owner: Repository owner repo: Repository name max_results: Maximum releases to return (default: 20) session_name: GitHub session to use

github_get_releaseA

Get details of a specific release.

Args: owner: Repository owner repo: Repository name release_id: Release ID (use either this or tag) tag: Release tag name (e.g., 'v1.0.0') session_name: GitHub session to use

github_create_releaseA

Create a new release with auto-generated or custom release notes.

Args: owner: Repository owner repo: Repository name tag_name: Tag name for the release (e.g., 'v1.0.0') name: Release title (default: tag name) body: Release notes body (markdown) target: Branch or commit SHA (default: default branch) draft: Create as draft (default: False) prerelease: Mark as pre-release (default: False) generate_notes: Auto-generate release notes (default: False) session_name: GitHub session to use

github_delete_releaseB

Delete a release (the tag is NOT deleted).

Args: owner: Repository owner repo: Repository name release_id: Release ID to delete session_name: GitHub session to use

github_get_latest_releaseB

Get the latest published release for a repository.

Args: owner: Repository owner repo: Repository name session_name: GitHub session to use

github_get_userA

Get user profile information (authenticated user if username is empty).

Args: username: GitHub username (empty = authenticated user) session_name: GitHub session to use

github_list_user_reposA

List public repositories for a specific user.

Args: username: GitHub username sort: Sort by — 'updated', 'created', 'pushed', 'full_name' (default: updated) max_results: Maximum repos (default: 30) session_name: GitHub session to use

github_get_orgB

Get organization information.

Args: org: Organization name session_name: GitHub session to use

github_list_org_reposA

List repositories for an organization.

Args: org: Organization name repo_type: Filter — 'all', 'public', 'private', 'forks', 'sources' (default: all) sort: Sort by — 'updated', 'created', 'pushed', 'full_name' max_results: Maximum repos (default: 30) session_name: GitHub session to use

github_list_org_membersA

List members of an organization.

Args: org: Organization name max_results: Maximum members to return (default: 50) session_name: GitHub session to use

github_search_reposA

Search GitHub repositories by query.

Supports GitHub search qualifiers: language:python, stars:>100, topic:mcp, etc.

Args: query: Search query (e.g., 'mcp server language:python stars:>10') sort: Sort by — 'stars', 'forks', 'updated', 'help-wanted-issues' (default: stars) max_results: Maximum results (default: 20) session_name: GitHub session to use

github_search_codeA

Search code across GitHub.

Supports qualifiers: repo:owner/repo, path:src/, extension:py, language:python, etc.

Args: query: Code search query (e.g., 'FastMCP language:python') max_results: Maximum results (default: 20) session_name: GitHub session to use

github_search_issuesA

Search issues and pull requests across GitHub.

Supports qualifiers: repo:owner/repo, is:issue, is:pr, state:open, label:bug, etc.

Args: query: Search query (e.g., 'is:issue state:open label:bug repo:owner/repo') sort: Sort by — 'created', 'updated', 'comments', 'reactions' (default: created) max_results: Maximum results (default: 20) session_name: GitHub session to use

github_search_usersA

Search GitHub users and organizations.

Supports qualifiers: type:user, type:org, location:india, language:python, etc.

Args: query: Search query (e.g., 'type:org language:python') sort: Sort by — 'followers', 'repositories', 'joined' (default: followers) max_results: Maximum results (default: 20) session_name: GitHub session to use

github_list_gistsA

List gists for the authenticated user or a specific user.

Args: username: GitHub username (empty = authenticated user) max_results: Maximum gists to return (default: 20) session_name: GitHub session to use

github_create_gistA

Create a new gist with one or more files.

Args: files: JSON string mapping filenames to content, e.g. '{"hello.py": "print("hello")", "readme.md": "# Hello"}' description: Gist description public: Make gist public (default: False = secret) session_name: GitHub session to use

github_get_gistC

Get gist content and details.

Args: gist_id: Gist ID session_name: GitHub session to use

github_delete_gistA

Delete a gist permanently.

Args: gist_id: Gist ID to delete session_name: GitHub session to use

github_list_notificationsA

List GitHub notifications for the authenticated user.

Args: all_notifications: Show all notifications including read ones (default: False = unread only) participating: Only show notifications where user is participating (default: False) max_results: Maximum notifications to return (default: 30) session_name: GitHub session to use

github_mark_notifications_readA

Mark all notifications as read.

Args: last_read_at: ISO 8601 timestamp — mark notifications before this as read (empty = all) session_name: GitHub session to use

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

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/Pawangunjkar/github-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server