github-mcp-server-js
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | 'debug', 'info', or 'error' | info |
| GITHUB_TOKEN | Yes | Personal access token used for all GitHub API calls | |
| GITHUB_PERMISSION | No | 'read-only' or 'read-write' | read-write |
| GITHUB_SERVER_URL | No | GitHub host — bare hostname or full API base URL. Set this for GitHub Enterprise Server | github.com |
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": true
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_repositoryB | Get a GitHub repository by owner and name. Docs: https://docs.github.com/en/rest/repos/repos#get-a-repository |
| list_branchesB | List branches in a GitHub repository. Docs: https://docs.github.com/en/rest/branches/branches#list-branches |
| get_branchB | Get a single branch in a GitHub repository. Docs: https://docs.github.com/en/rest/branches/branches#get-a-branch |
| get_file_contentsB | Get the contents of a file or directory in a GitHub repository. Docs: https://docs.github.com/en/rest/repos/contents#get-repository-content |
| list_commitsC | List commits in a GitHub repository. Docs: https://docs.github.com/en/rest/commits/commits#list-commits |
| get_commitA | Get a single commit in a GitHub repository. Docs: https://docs.github.com/en/rest/commits/commits#get-a-commit |
| list_tagsB | List tags in a GitHub repository. Docs: https://docs.github.com/en/rest/repos/repos#list-repository-tags |
| get_treeA | Get a single tree in a GitHub repository using the SHA1 value or ref name for that tree. Docs: https://docs.github.com/en/rest/git/trees#get-a-tree |
| create_or_update_fileB | Create a new file or update an existing file in a GitHub repository. Docs: https://docs.github.com/en/rest/repos/contents#create-or-update-file-contents |
| create_branchA | Create a new branch in a GitHub repository from an existing branch or commit SHA. Docs: https://docs.github.com/en/rest/git/refs#create-a-reference |
| delete_branchA | Delete a branch from a GitHub repository. This action is permanent and cannot be undone. Docs: https://docs.github.com/en/rest/git/refs#delete-a-reference |
| create_treeA | Create a new tree object in a GitHub repository from a set of tree entries, optionally based on an existing tree. Docs: https://docs.github.com/en/rest/git/trees#create-a-tree |
| list_issuesB | List issues in a GitHub repository. Docs: https://docs.github.com/en/rest/issues/issues#list-repository-issues |
| get_issueA | Get a single issue in a GitHub repository. Docs: https://docs.github.com/en/rest/issues/issues#get-an-issue |
| list_commentsB | List comments on a GitHub issue. Docs: https://docs.github.com/en/rest/issues/comments#list-issue-comments |
| list_labelsA | List all labels defined in a GitHub repository. Docs: https://docs.github.com/en/rest/issues/labels#list-labels-for-a-repository |
| list_labels_on_issueA | List the labels currently applied to a GitHub issue. Docs: https://docs.github.com/en/rest/issues/labels#list-labels-for-an-issue |
| create_issueB | Create a new issue in a GitHub repository. Docs: https://docs.github.com/en/rest/issues/issues#create-an-issue |
| update_issueB | Update an existing issue in a GitHub repository. Docs: https://docs.github.com/en/rest/issues/issues#update-an-issue |
| add_commentA | Add a comment to a GitHub issue. Docs: https://docs.github.com/en/rest/issues/comments#create-an-issue-comment |
| add_labelsA | Add labels to a GitHub issue, keeping the issue's existing labels. Docs: https://docs.github.com/en/rest/issues/labels#add-labels-to-an-issue |
| remove_labelB | Remove a single label from a GitHub issue. Docs: https://docs.github.com/en/rest/issues/labels#remove-a-label-from-an-issue |
| lock_issueB | Lock a GitHub issue conversation to collaborators only. Docs: https://docs.github.com/en/rest/issues/issues#lock-an-issue |
| unlock_issueA | Unlock a previously locked GitHub issue conversation. Docs: https://docs.github.com/en/rest/issues/issues#unlock-an-issue |
| list_pull_requestsC | List pull requests in a GitHub repository. Docs: https://docs.github.com/en/rest/pulls/pulls#list-pull-requests |
| get_pull_requestA | Get a single pull request in a GitHub repository. Docs: https://docs.github.com/en/rest/pulls/pulls#get-a-pull-request |
| list_pull_request_filesA | List the files changed in a GitHub pull request. Docs: https://docs.github.com/en/rest/pulls/pulls#list-pull-requests-files |
| list_pull_request_commitsB | List the commits on a GitHub pull request. Docs: https://docs.github.com/en/rest/pulls/pulls#list-commits-on-a-pull-request |
| list_pull_request_reviewsA | List the reviews on a GitHub pull request. Docs: https://docs.github.com/en/rest/pulls/reviews#list-reviews-for-a-pull-request |
| create_pull_requestB | Create a new pull request in a GitHub repository. Docs: https://docs.github.com/en/rest/pulls/pulls#create-a-pull-request |
| update_pull_requestA | Update an existing pull request in a GitHub repository. Docs: https://docs.github.com/en/rest/pulls/pulls#update-a-pull-request |
| merge_pull_requestB | Merge a pull request in a GitHub repository. Docs: https://docs.github.com/en/rest/pulls/pulls#merge-a-pull-request |
| create_pull_request_reviewB | Create a review on a GitHub pull request. Docs: https://docs.github.com/en/rest/pulls/reviews#create-a-review-for-a-pull-request |
| request_reviewersB | Request reviewers for a GitHub pull request. Docs: https://docs.github.com/en/rest/pulls/review-requests#request-reviewers-for-a-pull-request |
| search_reposA | Search GitHub repositories via various criteria. The q parameter accepts GitHub search qualifiers (e.g. "tetris language:assembly stars:>100"). Returns up to 100 results per page; GitHub caps total results at 1000. Docs: https://docs.github.com/en/rest/search/search#search-repositories |
| search_codeA | Search code across GitHub. The q parameter accepts GitHub code-search qualifiers (e.g. "addClass repo:jquery/jquery in:file language:js"). Sort and order are omitted because GitHub is closing down sortable code search; results are ranked by relevance. Docs: https://docs.github.com/en/rest/search/search#search-code |
| search_commitsA | Search commits on the default branch of repositories. The q parameter accepts GitHub commit-search qualifiers (e.g. "repo:octocat/Spoon-Knife css author:octocat"). Docs: https://docs.github.com/en/rest/search/search#search-commits |
| search_issuesA | Search GitHub issues AND pull requests. GitHub treats issues and pull requests as a single searchable resource; scope with is:issue or is:pull-request qualifiers inside q. Example q: "windows label:bug language:python state:open is:issue". Docs: https://docs.github.com/en/rest/search/search#search-issues-and-pull-requests |
| search_usersA | Search GitHub users. Only returns publicly visible users. The q parameter accepts GitHub user-search qualifiers (e.g. "tom repos:>42 followers:>1000"). Docs: https://docs.github.com/en/rest/search/search#search-users |
| get_user_by_usernameA | Get publicly available information about a GitHub user by their login (username). Returns profile data including name, bio, location, public repo count, follower count, and following count. Returns a 404 if the user does not exist or is an Enterprise Managed User not visible to the caller. Docs: https://docs.github.com/en/rest/users/users#get-a-user |
| get_authenticated_userA | Get the profile of the currently authenticated user (the owner of the GITHUB_TOKEN in use). Returns the same public fields as get_user_by_username plus private fields (private_gists, total_private_repos, plan, etc.) that are visible only to the token owner, subject to token scope. Docs: https://docs.github.com/en/rest/users/users#get-the-authenticated-user |
| list_user_followersA | List the users who follow a given GitHub user. Returns an array of simple-user objects, each with login, id, avatar_url, and html_url. Paginate with page and per_page. Docs: https://docs.github.com/en/rest/users/followers#list-followers-of-a-user |
| list_user_followingA | List the users that a given GitHub user follows. Returns an array of simple-user objects, each with login, id, avatar_url, and html_url. Paginate with page and per_page. Docs: https://docs.github.com/en/rest/users/followers#list-the-people-a-user-follows |
| get_user_hovercardA | Get contextual information about a GitHub user (their "hovercard") as it would appear in the GitHub web UI. Returns a list of context messages (e.g. "Owns this repository", "Contributor"). Optionally scope the context to a specific subject (a repository, issue, pull request, or organization) by providing subject_type and subject_id together — both are required when either is supplied. Docs: https://docs.github.com/en/rest/users/users#get-contextual-information-for-a-user |
| list_gistsA | List gists for the authenticated user. Returns an array of base-gist objects including id, description, public flag, file list (names and metadata, but not full content), and owner. Paginate with page and per_page. To get full file content for a specific gist, call get_gist with its id. Docs: https://docs.github.com/en/rest/gists/gists#list-gists-for-the-authenticated-user |
| get_gistA | Get a single gist by its id. Returns a gist-simple object with full file content, description, public flag, owner, forks_url, commits_url, and history. File content is included inline (up to the truncation threshold — very large files include a raw_url instead). Docs: https://docs.github.com/en/rest/gists/gists#get-a-gist |
| create_gistA | Create a new gist. A gist is a shareable snippet or small file. Supply one or more files with their content; each file key is the filename (including extension). Set public to true to make the gist visible to all GitHub users, or false (default) for a secret gist (unlisted but accessible by direct URL). Docs: https://docs.github.com/en/rest/gists/gists#create-a-gist |
| update_gistA | Update an existing gist. You can change the description and/or update, rename, or delete individual files. To update a file, supply its current filename as the key with new content or a new filename. To delete a file, supply its current filename as the key with a null value. Files not mentioned in the request are left unchanged. Docs: https://docs.github.com/en/rest/gists/gists#update-a-gist |
| delete_gistA | Delete a gist. This action is permanent and cannot be undone. Only the gist owner can delete it. Docs: https://docs.github.com/en/rest/gists/gists#delete-a-gist |
| list_notificationsA | List notifications for the authenticated user. Returns an array of thread objects representing unread (or all) notifications. Each thread includes the subject (title, type, URL), repository, reason, and updated_at timestamp. Use all=true to include already-read notifications. Paginate with page and per_page (max 50 per page — GitHub caps this endpoint at 50, not the usual 100). Docs: https://docs.github.com/en/rest/activity/notifications#list-notifications-for-the-authenticated-user |
| list_starred_reposA | List repositories starred by the authenticated user. Returns an array of repository objects including id, name, full_name, html_url, description, stargazers_count, language, and owner. Sort by created (when the user starred it) or updated (when the repo was last pushed to). Paginate with page and per_page. Docs: https://docs.github.com/en/rest/activity/starring#list-repositories-starred-by-the-authenticated-user |
| check_repo_starredA | Check whether the authenticated user has starred a given repository. Returns { starred: true } if the repository is starred, or { starred: false } if it is not. Never returns an error for a 404 (not-starred) response — only errors on authentication failures (401/403) or truly unexpected conditions. Docs: https://docs.github.com/en/rest/activity/starring#check-if-a-repository-is-starred-by-the-authenticated-user |
| star_repoA | Star a repository on behalf of the authenticated user. Starring marks a repository as interesting and adds it to the authenticated user's starred list (visible via list_starred_repos). Returns { starred: true } on success. Returns an error if the repository does not exist or the token lacks sufficient scope. Docs: https://docs.github.com/en/rest/activity/starring#star-a-repository-for-the-authenticated-user |
| unstar_repoA | Unstar a repository that the authenticated user has previously starred. Removes the repository from the authenticated user's starred list. Returns { starred: false } on success. This is a no-op if the repository was not already starred (GitHub returns 204 either way), so the result is always { starred: false } on a 204 response. Docs: https://docs.github.com/en/rest/activity/starring#unstar-a-repository-for-the-authenticated-user |
| list_packages_for_authenticated_userA | List packages owned by the authenticated user (the owner of GITHUB_TOKEN).Requires the read:packages token scope. The package_type filter is required — pass one of npm, maven, rubygems, docker, nuget, or container. Optionally filter by visibility (public, private, internal). Paginate with page and per_page. Docs: https://docs.github.com/en/rest/packages/packages#list-packages-for-the-authenticated-users-namespace |
| get_package_for_authenticated_userA | Get a specific package owned by the authenticated user.Returns the package metadata including name, type, version count, visibility, repository link, and timestamps. Requires the read:packages token scope. Docs: https://docs.github.com/en/rest/packages/packages#get-a-package-for-the-authenticated-user |
| list_package_versions_for_authenticated_userA | List all versions of a package owned by the authenticated user.Returns an array of package-version objects, each with an id, version name, creation/update timestamps, and type-specific metadata (e.g. container tags, npm dist-tags). Optionally filter by state: "active" (default) returns live versions; "deleted" returns versions that have been deleted but can still be restored within 30 days. Requires the read:packages token scope. Docs: https://docs.github.com/en/rest/packages/packages#list-package-versions-for-a-package-owned-by-the-authenticated-user |
| get_package_version_for_authenticated_userA | Get a specific version of a package owned by the authenticated user.Returns the package-version object including the version id, name, creation/update timestamps, and type-specific metadata. Use list_package_versions_for_authenticated_user to find version ids. Requires the read:packages token scope. Docs: https://docs.github.com/en/rest/packages/packages#get-a-package-version-for-the-authenticated-user |
| get_rate_limitA | Get the current API rate limit status for the authenticated user.Returns a rate-limit-overview object with per-category breakdowns (core, search, graphql, code_search, actions_runner_registration, etc.), each showing limit, used, remaining, and reset timestamp (Unix epoch seconds). Accessing this endpoint does not itself consume any rate limit quota. Docs: https://docs.github.com/en/rest/rate-limit/rate-limit#get-rate-limit-status-for-the-authenticated-user |
| get_metaA | Get GitHub API metadata: IP address ranges for GitHub services(hooks, web, api, git, packages, pages, importer, actions, dependabot, copilot), SSH key fingerprints, SSH public keys used to sign GitHub commits, and whether GitHub password authentication is enabled. Useful for firewall allowlisting, SSH host verification, and infrastructure automation. Returns an api-overview object. Safe to call without authentication. Docs: https://docs.github.com/en/rest/meta/meta#get-github-meta-information |
| list_emojisA | List all emoji names available to use on GitHub, with their corresponding image URLs.Returns a flat JSON object mapping each emoji name (e.g. "smile", "+1", "octocat") to its CDN image URL on github.githubassets.com. Useful for populating emoji pickers, validating emoji names, or fetching emoji images. Docs: https://docs.github.com/en/rest/emojis/emojis#get-emojis |
| render_markdownA | Render a Markdown string to HTML using GitHub's Markdown renderer. Returns the rendered HTML as a plain text string (not JSON-encoded). Use mode "markdown" (default) for standard Markdown. Use mode "gfm" (GitHub Flavored Markdown) to enable cross-references such as #42 linking to issues and @mentions — requires the context parameter to specify the repository (e.g. "owner/repo") for resolving those references. This endpoint is stateless: it renders and returns HTML without modifying any data. Docs: https://docs.github.com/en/rest/markdown/markdown#render-a-markdown-document |
| get_appA | Get public metadata for a GitHub App by its URL slug.Returns the app's id, name, description, owner, external URL, permissions, subscribed events, and installation count. Does not require authentication — the app must be publicly listed. The slug is the URL-friendly name visible in github.com/apps/. Docs: https://docs.github.com/en/rest/apps/apps#get-an-app |
| list_installations_for_authenticated_userA | List GitHub App installations accessible to the authenticated user.Returns installations on the user's personal account and on organizations where the user is a member, along with the permissions and events each installation subscribes to. Useful for discovering which apps are installed and their installation IDs (needed for list_installation_repos_for_authenticated_user). Requires a token with read:user scope or higher. Paginate with page and per_page. Docs: https://docs.github.com/en/rest/apps/installations#list-app-installations-accessible-to-the-user-access-token |
| list_installation_repos_for_authenticated_userA | List repositories that the authenticated user can access for a specific GitHub App installation.Returns repositories where the user has explicit read, write, or admin permission through direct ownership, collaborator access, or organization membership. Use list_installations_for_authenticated_user to discover installation IDs first. Paginate with page and per_page. Docs: https://docs.github.com/en/rest/apps/installations#list-repositories-accessible-to-the-user-access-token |
| get_copilot_organization_detailsA | Get GitHub Copilot seat information and policy settings for an organization.Returns seat breakdown (total, active, inactive, pending cancellation, pending invitation, added this cycle), subscription plan type (business or enterprise), and policy settings (public code suggestions filter, IDE chat, platform chat, CLI enablement, seat management mode). Requires the authenticated user to be an organization owner. Requires a token with manage_billing:copilot or read:org scope. Returns 404 if the organization does not have a Copilot Business or Enterprise subscription. Returns 403 if the token lacks sufficient scope or the user is not an org owner. Docs: https://docs.github.com/en/rest/copilot/copilot-user-management#get-copilot-seat-information-and-settings-for-an-organization |
| list_copilot_seatsA | List all GitHub Copilot seat assignments for an organization.Returns each assigned seat with the assignee user details, the team or organization through which access was granted, the seat creation date, last Copilot activity timestamp, last editor used, and pending cancellation date if applicable. Requires the authenticated user to be an organization owner. Requires a token with manage_billing:copilot or read:org scope. Returns 404 if the organization does not have a Copilot subscription. Returns 403 if the token lacks sufficient scope or the user is not an org owner. Paginate with page and per_page (default 30, max 100). Docs: https://docs.github.com/en/rest/copilot/copilot-user-management#list-all-copilot-seat-assignments-for-an-organization |
| get_copilot_seat_details_for_userA | Get GitHub Copilot seat assignment details for a specific member of an organization.Returns the seat creation date, last Copilot activity timestamp, last editor used, last authentication timestamp, pending cancellation date (if applicable), the team or organization granting access, and the Copilot plan type. Only returns results for users who currently have an active Copilot seat. Users must have telemetry enabled in their IDE for activity data to be populated. Requires the authenticated user to be an organization owner. Requires a token with manage_billing:copilot or read:org scope. Returns 404 if the user does not have a Copilot seat in this organization, or if the organization does not have a Copilot subscription. Returns 403 if the token lacks sufficient scope or the user is not an org owner. Docs: https://docs.github.com/en/rest/copilot/copilot-user-management#get-copilot-seat-assignment-details-for-a-user |
| get_orgA | Get a GitHub organization by login. Docs: https://docs.github.com/en/rest/orgs/orgs#get-an-organization |
| list_org_membersA | List members of a GitHub organization. Docs: https://docs.github.com/en/rest/orgs/members#list-organization-members |
| list_org_reposB | List repositories in a GitHub organization. Docs: https://docs.github.com/en/rest/repos/repos#list-organization-repositories |
| list_teamsC | List teams in a GitHub organization. Docs: https://docs.github.com/en/rest/teams/teams#list-teams |
| get_team_by_nameA | Get a GitHub team by its slug within an organization. Docs: https://docs.github.com/en/rest/teams/teams#get-a-team-by-name |
| list_team_membersC | List the members of a GitHub team. Docs: https://docs.github.com/en/rest/teams/members#list-team-members |
| add_or_update_team_membershipA | Add a user to a team or update their team role. Requires org-owner or team-maintainer permission. Docs: https://docs.github.com/en/rest/teams/members#add-or-update-team-membership-for-a-user |
| remove_team_membershipA | Remove a user from a team. Does not delete the user, only their team membership. Requires org-owner or team-admin permission. Docs: https://docs.github.com/en/rest/teams/members#remove-team-membership-for-a-user |
| list_codespacesA | List codespaces for the authenticated user. Docs: https://docs.github.com/en/rest/codespaces/codespaces#list-codespaces-for-the-authenticated-user |
| get_codespaceA | Get a codespace by name for the authenticated user. Docs: https://docs.github.com/en/rest/codespaces/codespaces#get-a-codespace-for-the-authenticated-user |
| create_codespace_in_repoA | Create a codespace in a repository for the authenticated user. Docs: https://docs.github.com/en/rest/codespaces/codespaces#create-a-codespace-in-a-repository |
| start_codespaceA | Start a stopped codespace for the authenticated user. Docs: https://docs.github.com/en/rest/codespaces/codespaces#start-a-codespace-for-the-authenticated-user |
| stop_codespaceA | Stop a running codespace for the authenticated user. Docs: https://docs.github.com/en/rest/codespaces/codespaces#stop-a-codespace-for-the-authenticated-user |
| list_org_projectsC | List GitHub ProjectsV2 projects in an organization. Docs: https://docs.github.com/en/rest/projects/projects |
| get_org_projectB | Get a GitHub ProjectsV2 project by number in an organization. Docs: https://docs.github.com/en/rest/projects/projects |
| list_org_project_itemsB | List items in a GitHub ProjectsV2 project. Docs: https://docs.github.com/en/rest/projects/items |
| list_org_project_fieldsB | List fields configured on a GitHub ProjectsV2 project. Docs: https://docs.github.com/en/rest/projects/fields |
| get_org_project_itemA | Get a single item in a GitHub ProjectsV2 project. Docs: https://docs.github.com/en/rest/projects/items |
| list_code_scanning_alertsA | List code-scanning alerts for a repository. Requires |
| get_code_scanning_alertA | Get a code-scanning alert. Requires |
| list_secret_scanning_alertsA | List secret-scanning alerts for a repository. Requires |
| get_secret_scanning_alertA | Get a secret-scanning alert. Requires |
| list_dependabot_alertsA | List Dependabot alerts for a repository. Requires |
| get_dependabot_alertA | Get a Dependabot alert. Requires |
| list_global_advisoriesB | List GitHub Global Security Advisories from the public GHSA database. Docs: https://docs.github.com/en/rest/security-advisories/global-advisories#list-global-security-advisories |
| get_global_advisoryA | Get a global GitHub security advisory by GHSA ID. Docs: https://docs.github.com/en/rest/security-advisories/global-advisories#get-a-global-security-advisory |
| list_repository_advisoriesB | List repository security advisories. Docs: https://docs.github.com/en/rest/security-advisories/repository-advisories#list-repository-security-advisories |
| get_repository_advisoryA | Get a repository security advisory by GHSA ID. Docs: https://docs.github.com/en/rest/security-advisories/repository-advisories#get-a-repository-security-advisory |
| list_workflowsC | List workflows in a repository. Docs: https://docs.github.com/en/rest/actions/workflows#list-repository-workflows |
| get_workflowA | Get a workflow by ID or filename. Docs: https://docs.github.com/en/rest/actions/workflows#get-a-workflow |
| list_workflow_runsC | List runs for a workflow. Docs: https://docs.github.com/en/rest/actions/workflow-runs#list-workflow-runs-for-a-workflow |
| get_workflow_runB | Get a workflow run by ID. Docs: https://docs.github.com/en/rest/actions/workflow-runs#get-a-workflow-run |
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/wuqunfei/github-mcp-server-js'
If you have feedback or need assistance with the MCP directory API, please join our Discord server