Skip to main content
Glama
wuqunfei

github-mcp-server-js

by wuqunfei

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNo'debug', 'info', or 'error'info
GITHUB_TOKENYesPersonal access token used for all GitHub API calls
GITHUB_PERMISSIONNo'read-only' or 'read-write'read-write
GITHUB_SERVER_URLNoGitHub host — bare hostname or full API base URL. Set this for GitHub Enterprise Servergithub.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

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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
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
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_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_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
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_pull_request_reviewsA
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
request_reviewersB
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_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
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
get_codespaceA
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
stop_codespaceA
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 security_events PAT scope for private repos, public_repo for public. Docs: https://docs.github.com/en/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-a-repository

get_code_scanning_alertA

Get a code-scanning alert. Requires security_events PAT scope (private) or public_repo (public). Docs: https://docs.github.com/en/rest/code-scanning/code-scanning#get-a-code-scanning-alert

list_secret_scanning_alertsA

List secret-scanning alerts for a repository. Requires security_events PAT scope. Docs: https://docs.github.com/en/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-a-repository

get_secret_scanning_alertA

Get a secret-scanning alert. Requires security_events PAT scope. Docs: https://docs.github.com/en/rest/secret-scanning/secret-scanning#get-a-secret-scanning-alert

list_dependabot_alertsA

List Dependabot alerts for a repository. Requires security_events PAT scope. Docs: https://docs.github.com/en/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository

get_dependabot_alertA

Get a Dependabot alert. Requires security_events PAT scope. Docs: https://docs.github.com/en/rest/dependabot/alerts#get-a-dependabot-alert

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
list_repository_advisoriesB
get_repository_advisoryA
list_workflowsC
get_workflowA
list_workflow_runsC
get_workflow_runB

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/wuqunfei/github-mcp-server-js'

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