When should you use this server
- Triage issues and pull requests, or generate daily summaries of repo activity
- Search code for API usage, functions, or configuration keys before making changes
- Automate repository housekeeping (e.g., create PRs, label issues) under guardrails
Key features
- Repository listing and metadata retrieval
- Issue and pull request querying and creation
- Code search across repositories or organizations
- Commit history inspection
Authentication
- Method: OAuth2 (hosted) or Personal Access Token (PAT) for local/self-hosted setups
- Scopes: repo,read:org; optionallyworkflowandread:packagesif needed
- Notes: Organization policies may restrict which methods are allowed
Endpoints
- Remote (hosted): https://api.githubcopilot.com/mcp/
- Local (Docker image): ghcr.io/github/github-mcp-server
Setup & usage
VS Code (remote, OAuth)
VS Code (Using a GitHub PAT)
Install in other MCP hosts
- GitHub Copilot in other IDEs – Installation for JetBrains, Visual Studio, Eclipse, and Xcode with GitHub Copilot
- Claude Applications - Installation guide for Claude Web, Claude Desktop and Claude Code CLI
- Cursor - Installation guide for Cursor IDE
- Windsurf - Installation guide for Windsurf IDE
Tools provided
cancel_workflow_run
Cancels a workflow run that is currently in progress. Useful for stopping jobs triggered by mistake, stuck runs, or unnecessary duplicate builds. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- run_id(number, required) — unique identifier of the workflow run.
delete_workflow_run_logs
Deletes all logs associated with a specific workflow run. Helpful for reclaiming storage space or removing outdated run data. Arguments:- owner(string, required)
- repo(string, required)
- run_id(number, required)
download_workflow_run_artifact
Downloads a single artifact generated by a workflow run (e.g., build output, test reports). Arguments:- artifact_id(number, required) — unique identifier of the artifact.
- owner(string, required)
- repo(string, required)
get_job_logs
Retrieves logs for specific jobs within a workflow run. Supports filtering for only failed jobs, returning full content, or tailing the last N lines. Arguments:- owner(string, required)
- repo(string, required)
- failed_only(boolean, optional) — when true, returns logs for all failed jobs in- run_id.
- job_id(number, optional) — workflow job ID (for one job’s logs).
- run_id(number, optional) — workflow run ID (required with- failed_only).
- return_content(boolean, optional) — whether to return log content instead of URLs.
- tail_lines(number, optional) — number of lines to return from the end of the log.
get_workflow_run
Retrieves detailed information about a specific workflow run, including status, event, branch, and timestamps. Arguments:- owner(string, required)
- repo(string, required)
- run_id(number, required)
get_workflow_run_logs
Returns the full logs for an entire workflow run, across all jobs. Arguments:- owner(string, required)
- repo(string, required)
- run_id(number, required)
get_workflow_run_usage
Shows resource usage statistics (billable minutes, operating system, runtime) for a given workflow run. Useful for tracking costs and optimizing pipelines. Arguments:- owner(string, required)
- repo(string, required)
- run_id(number, required)
list_workflow_jobs
Lists all jobs associated with a workflow run, including job names, statuses, and completion times. Arguments:- owner(string, required)
- repo(string, required)
- run_id(number, required)
- filter(string, optional) — filter by- completed_attimestamp.
- page(number, optional) — page number (default 1).
- perPage(number, optional) — results per page (1–100).
list_workflow_run_artifacts
Lists all artifacts created during a workflow run, with IDs and metadata for later download. Arguments:- owner(string, required)
- repo(string, required)
- run_id(number, required)
- page(number, optional)
- perPage(number, optional)
list_workflow_runs
Lists past runs for a given workflow, with filters for branch, actor, event type, or status. Arguments:- owner(string, required)
- repo(string, required)
- workflow_id(string, required) — workflow file name (e.g.- ci.yml) or numeric ID.
- actor(string, optional) — filter runs by user.
- branch(string, optional) — filter by branch name.
- event(string, optional) — filter by event type.
- status(string, optional) — filter by check run status.
- page(number, optional)
- perPage(number, optional)
list_workflows
Lists all workflows defined in the repository (e.g., CI/CD, test, build pipelines). Arguments:- owner(string, required)
- repo(string, required)
- page(number, optional)
- perPage(number, optional)
rerun_failed_jobs
Triggers a rerun for only the failed jobs in a workflow run, instead of rerunning everything. Arguments:- owner(string, required)
- repo(string, required)
- run_id(number, required)
rerun_workflow_run
Reruns the entire workflow run, including all jobs. Arguments:- owner(string, required)
- repo(string, required)
- run_id(number, required)
run_workflow
Dispatches a new workflow run by reference (branch or tag). Supports passing custom workflow inputs. Arguments:- 
owner(string, required)
- 
repo(string, required)
- 
workflow_id(string, required) — workflow ID or file name (e.g.,ci.yml).
- 
ref(string, required) — git ref (branch or tag).
- 
inputs(object, optional) — inputs accepted by the workflow.
get_code_scanning_alert
Retrieves details of a single code scanning alert (e.g., CodeQL or third-party scanner findings) for a repository. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- alertNumber(number, required) — unique identifier of the code scanning alert.
get_code_scanning_alert
Retrieves details of a single code scanning alert (e.g., CodeQL or third-party scanner findings) for a repository. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- alertNumber(number, required) — unique identifier of the code scanning alert.
list_code_scanning_alerts
Lists all code scanning alerts for a repository. Supports filtering by branch, severity, state, or scanning tool. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- ref(string, optional) — git ref to filter results.
- severity(string, optional) — filter by severity.
- state(string, optional) — filter by state (defaults to open).
- tool_name(string, optional) — filter by scanner/tool name.
get_me
Fetches the authenticated user’s GitHub profile information (login, name, email, etc.). Arguments: Noneget_team_members
Retrieves all members of a specific GitHub team within an organization. Arguments:- org(string, required) — organization login.
- team_slug(string, required) — team slug.
get_teams
Lists teams associated with a user (or the authenticated user if no username is provided). Arguments:- user(string, optional) — GitHub username.
get_dependabot_alert
Retrieves details about a single Dependabot security alert for a repository. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- alertNumber(number, required) — unique identifier of the Dependabot alert.
list_dependabot_alerts
Lists all Dependabot alerts for a repository, with filters for severity and state. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- severity(string, optional) — filter by severity.
- state(string, optional, default=- open) — filter by alert state.
get_discussion
Retrieves the details of a specific GitHub Discussion (title, body, author, category, comments count). Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- discussionNumber(number, required) — unique identifier of the discussion.
get_discussion_comments
Gets comments from a specific GitHub Discussion, with pagination support. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- discussionNumber(number, required) — unique identifier of the discussion.
- perPage(number, optional, min 1, max 100) — number of comments per page.
- after(string, optional) — cursor for pagination.
list_discussion_categories
Lists all available categories for discussions in a repository or across an organization. Arguments:- owner(string, required) — repository owner or organization.
- repo(string, optional) — repository name; if omitted, queries at the organization level.
list_discussions
Lists discussions for a repository or organization, with filters for category, sorting, and pagination. Arguments:- owner(string, required) — repository owner or organization.
- repo(string, optional) — repository name.
- category(string, optional) — discussion category ID.
- orderBy(string, optional) — field to order by.
- direction(string, optional) — ascending/descending order.
- perPage(number, optional) — number of results per page.
- after(string, optional) — pagination cursor.
create_gist
Creates a new GitHub Gist (single file, with optional description and visibility). Arguments:- filename(string, required) — file name.
- content(string, required) — file content.
- description(string, optional) — gist description.
- public(boolean, optional) — visibility of the gist.
list_gists
Lists Gists for a user (or the authenticated user if username is not provided). Supports pagination and date filters. Arguments:- username(string, optional) — GitHub username.
- since(string, optional, ISO 8601) — updated after date.
- page(number, optional) — page number.
- perPage(number, optional) — results per page.
update_gist
Updates an existing Gist’s content, description, or adds a file. Arguments:- gist_id(string, required) — unique identifier of the gist.
- filename(string, required) — file name.
- content(string, required) — file content.
- description(string, optional) — gist description.
add_issue_comment
Adds a new comment to an issue. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- issue_number(number, required) — issue number.
- body(string, required) — comment body.
add_sub_issue
Attaches an existing issue as a sub-issue of another parent issue. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- issue_number(number, required) — parent issue number.
- sub_issue_id(number, required) — ID of the sub-issue.
- replace_parent(boolean, optional) — replace current parent if already assigned.
assign_copilot_to_issue
Assigns GitHub Copilot to a specific issue, so AI can draft solutions or manage tasks. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- issueNumber(number, required) — issue number.
create_issue
Opens a new GitHub issue. Supports assigning users, adding labels, milestones, and custom issue types. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- title(string, required) — issue title.
- body(string, optional) — issue body.
- assignees(string[], optional) — list of assignees.
- labels(string[], optional) — list of labels.
- milestone(number, optional) — milestone number.
- type(string, optional) — custom issue type.
get_issue
Retrieves details of a specific issue, including title, body, labels, state, and assignees. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- issue_number(number, required) — issue number.
get_issue_comments
Lists comments on a specific issue. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- issue_number(number, required) — issue number.
- page(number, optional) — page number.
- perPage(number, optional) — results per page.
list_issue_types
Lists all available issue types for a repository. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
list_issues
Lists issues in a repository with filters for labels, state, dates, sorting, and pagination. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- labels(string[], optional) — filter by labels.
- state(string, optional) — filter by issue state.
- since(string, optional) — ISO 8601 timestamp to filter updated issues.
- orderBy(string, optional) — field to order by.
- direction(string, optional) — sort direction.
- perPage(number, optional) — results per page.
- after(string, optional) — pagination cursor.
list_sub_issues
Lists all sub-issues attached to a parent issue. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- issue_number(number, required) — parent issue number.
- page(number, optional) — page number.
- per_page(number, optional) — results per page.
remove_sub_issue
Removes a sub-issue from its parent issue. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- issue_number(number, required) — parent issue number.
- sub_issue_id(number, required) — ID of the sub-issue to remove.
reprioritize_sub_issue
Changes the order of sub-issues within a parent issue by moving one before or after another. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- issue_number(number, required) — parent issue number.
- sub_issue_id(number, required) — sub-issue to move.
- before_id(number, optional) — move before this sub-issue.
- after_id(number, optional) — move after this sub-issue.
search_issues
Searches for issues across GitHub or within a repository using GitHub’s issue search syntax. Arguments:- query(string, required) — search string.
- owner(string, optional) — restrict search to a repo owner.
- repo(string, optional) — restrict search to a specific repo.
- sort(string, optional) — field to sort by.
- order(string, optional) — sort direction (asc/desc).
- page(number, optional) — page number.
- perPage(number, optional) — results per page.
update_issue
Edits an existing issue, allowing updates to the title, body, labels, assignees, milestone, state, or type. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- issue_number(number, required) — issue number.
- title(string, optional) — new issue title.
- body(string, optional) — new issue body.
- labels(string[], optional) — list of labels.
- assignees(string[], optional) — list of assignees.
- milestone(number, optional) — milestone number.
- state(string, optional) — issue state.
- type(string, optional) — custom issue type.
- type(string, optional)
get_code_scanning_alert
Retrieves details of a single code scanning alert (e.g., CodeQL or third-party scanner findings) for a repository. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- alertNumber(number, required) — unique identifier of the code scanning alert.
list_code_scanning_alerts
Lists code scanning alerts for a repository. Supports filtering by severity, state, tool name, or git reference. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- ref(string, optional) — git reference for the results.
- severity(string, optional) — filter by severity.
- state(string, optional) — filter by state (defaults to open).
- tool_name(string, optional) — filter by scanning tool name.
get_me
Returns the profile information of the authenticated user. Arguments: Noneget_team_members
Lists all members of a team within an organization. Arguments:- org(string, required) — organization login.
- team_slug(string, required) — team slug.
get_teams
Lists teams for a given user (or the authenticated user if no username is specified). Arguments:- user(string, optional) — GitHub username.
get_dependabot_alert
Retrieves details of a single Dependabot security alert for a repository. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- alertNumber(number, required) — unique identifier of the Dependabot alert.
list_dependabot_alerts
Lists Dependabot alerts for a repository. Can be filtered by severity and state. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- severity(string, optional) — filter by severity.
- state(string, optional) — filter by state (defaults to open).
get_discussion
Retrieves details of a single GitHub Discussion, including title, body, author, and metadata. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- discussionNumber(number, required) — discussion number.
get_discussion_comments
Lists comments in a GitHub Discussion, with optional pagination. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- discussionNumber(number, required) — discussion number.
- perPage(number, optional) — results per page (min 1, max 100).
- after(string, optional) — cursor for pagination.
list_discussion_categories
Lists available discussion categories in a repository (or across an organization if no repo is specified). Arguments:- owner(string, required) — repository owner.
- repo(string, optional) — repository name.
list_discussions
Lists discussions for a repository or organization. Supports filtering by category, sorting, and pagination. Arguments:- owner(string, required) — repository owner.
- repo(string, optional) — repository name.
- category(string, optional) — filter by discussion category ID.
- orderBy(string, optional) — field to order by.
- direction(string, optional) — order direction.
- perPage(number, optional) — results per page (min 1, max 100).
- after(string, optional) — cursor for pagination.
dismiss_notification
Marks a specific notification thread as dismissed, updating its state to read or done. Arguments:- threadID(string, required) — ID of the notification thread.
- state(string, optional) — new state of the notification (read or done).
get_notification_details
Retrieves full details for a specific notification, including subject type (issue, PR, discussion), repository, and updated time. Arguments:- notificationID(string, required) — ID of the notification.
list_notifications
Lists notifications for the authenticated user. Supports filtering by repository, read state, and time window. Arguments:- owner(string, optional) — repository owner; when provided with repo, limits results.
- repo(string, optional) — repository name; requires owner.
- filter(string, optional) — filter type (all, read, unread, participating).
- since(string, optional) — only show notifications updated after this time (ISO 8601).
- before(string, optional) — only show notifications updated before this time (ISO 8601).
- page(number, optional) — page number for pagination (min 1).
- perPage(number, optional) — results per page (min 1, max 100).
manage_notification_subscription
Manages a user’s subscription for a single notification thread (e.g., ignore updates, resume watching, or delete). Arguments:- notificationID(string, required) — ID of the notification thread.
- action(string, required) — action to perform (ignore, watch, delete).
manage_repository_notification_subscription
Manages a user’s subscription settings for all notifications in a repository. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- action(string, required) — action to perform (ignore, watch, delete).
mark_all_notifications_read
Marks all notifications as read, either globally or scoped to a specific repository. Arguments:- lastReadAt(string, optional) — timestamp of the last read time (ISO 8601). Defaults to now.
- owner(string, optional) — repository owner; if provided with repo, limits scope.
- repo(string, optional) — repository name; requires owner.
search_orgs
Searches for GitHub organizations by name, location, or creation date. Results can be sorted and paginated. Arguments:- query(string, required) — search string (e.g., “microsoft”, “location:california”, “created:>=2025-01-01”).
- order(string, optional) — sort order (asc or desc).
- sort(string, optional) — sort field by category.
- page(number, optional) — page number for pagination (min 1).
- perPage(number, optional) — results per page (min 1, max 100).
add_comment_to_pending_review
Adds a comment to the requester’s latest pending pull request review, targeted to a file, line, or range. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- pullNumber(number, required) — pull request number.
- body(string, required) — review comment text.
- path(string, required) — relative file path in the PR diff.
- subjectType(string, required) — target level (file, line, etc.).
- line(number, optional) — single line in the diff.
- side(string, optional) — side of the diff (LEFT or RIGHT).
- startLine(number, optional) — starting line for multi-line comments.
- startSide(string, optional) — starting side of the diff (LEFT or RIGHT).
create_and_submit_pull_request_review
Creates and immediately submits a pull request review, without additional comments. Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
- body(string, required) — review body text.
- event(string, required) — review action (APPROVE, REQUEST_CHANGES, COMMENT).
- commitID(string, optional) — SHA of the commit under review.
create_pending_pull_request_review
Creates a pending pull request review that can later have comments added before submission. Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
- commitID(string, optional) — SHA of the commit under review.
create_pull_request
Opens a new pull request from one branch (head) into another (base). Arguments:- owner(string, required)
- repo(string, required)
- title(string, required) — PR title.
- base(string, required) — branch to merge into.
- head(string, required) — branch with proposed changes.
- body(string, optional) — PR description.
- draft(boolean, optional) — create as draft PR.
- maintainer_can_modify(boolean, optional) — allow maintainers to edit the PR.
delete_pending_pull_request_review
Deletes the requester’s latest pending pull request review (not yet submitted). Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
get_pull_request
Retrieves details about a specific pull request (title, body, state, mergeability, branches). Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
get_pull_request_comments
Lists review comments on a specific pull request. Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
get_pull_request_diff
Retrieves the unified diff for a pull request. Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
get_pull_request_files
Lists the files changed in a pull request, with pagination. Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
- page(number, optional)
- perPage(number, optional)
get_pull_request_reviews
Lists all reviews submitted on a pull request (including approvals and change requests). Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
get_pull_request_status
Retrieves the status checks for a pull request (CI/CD, lint, tests). Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
list_pull_requests
Lists pull requests in a repository, with filters for state, branch, and sorting. Arguments:- owner(string, required)
- repo(string, required)
- state(string, optional) — PR state (open, closed, all).
- base(string, optional) — filter by base branch.
- head(string, optional) — filter by head branch or user.
- sort(string, optional) — sort field.
- direction(string, optional) — sort direction.
- page(number, optional)
- perPage(number, optional)
merge_pull_request
Merges a pull request using the chosen merge method (merge commit, squash, or rebase). Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
- commit_title(string, optional) — custom merge commit title.
- commit_message(string, optional) — custom merge commit body.
- merge_method(string, optional) — merge type (merge, squash, rebase).
request_copilot_review
Requests a review of a pull request from GitHub Copilot. Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
search_pull_requests
Searches pull requests across GitHub or within a repository using search syntax. Arguments:- query(string, required) — search query.
- owner(string, optional) — filter by repo owner.
- repo(string, optional) — filter by repository name.
- sort(string, optional) — sort field.
- order(string, optional) — sort order.
- page(number, optional)
- perPage(number, optional)
submit_pending_pull_request_review
Submits the requester’s latest pending pull request review, optionally adding a comment body. Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
- event(string, required) — action (APPROVE, REQUEST_CHANGES, COMMENT).
- body(string, optional) — optional text to include.
update_pull_request
Updates an existing pull request’s details (title, description, reviewers, branch). Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
- title(string, optional)
- body(string, optional)
- state(string, optional) — open/closed.
- base(string, optional) — new base branch.
- draft(boolean, optional) — mark as draft or ready for review.
- maintainer_can_modify(boolean, optional)
- reviewers(string[], optional) — users to request reviews from.
update_pull_request_branch
Updates the pull request branch by merging in the latest changes from the base branch. Arguments:- owner(string, required)
- repo(string, required)
- pullNumber(number, required)
- expectedHeadSha(string, optional) — SHA of the current PR head to ensure consistency.
create_branch
Creates a new branch in a repository from an existing branch (defaults to the repo’s default branch if not specified). Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- branch(string, required) — name for the new branch.
- from_branch(string, optional) — source branch (defaults to repo default).
create_or_update_file
Creates a new file or updates an existing file in a repository, committing the change to the specified branch. Arguments:- owner(string, required) — repository owner (user or org).
- repo(string, required) — repository name.
- branch(string, required) — branch where the file will be created/updated.
- path(string, required) — file path in the repo.
- content(string, required) — file content (base64-encoded).
- message(string, required) — commit message.
- sha(string, optional) — required if updating; the blob SHA of the file being replaced.
create_repository
Creates a new repository, either under the authenticated user’s account or within an organization. Arguments:- name(string, required) — repository name.
- description(string, optional) — repo description.
- organization(string, optional) — org to create in; omit for personal account.
- private(boolean, optional) — whether the repo is private.
- autoInit(boolean, optional) — initialize with README.
delete_file
Deletes a file from a repository on a specific branch. Arguments:- owner(string, required) — repository owner (user or org).
- repo(string, required) — repository name.
- branch(string, required) — branch from which to delete the file.
- path(string, required) — path to the file.
- message(string, required) — commit message.
fork_repository
Forks a repository into the authenticated user’s account or into an organization. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- organization(string, optional) — org to fork into.
get_commit
Retrieves details of a commit, optionally including file diffs and stats. Arguments:- owner(string, required)
- repo(string, required)
- sha(string, required) — commit SHA, branch name, or tag name.
- include_diff(boolean, optional) — include diffs and stats (default: true).
- page(number, optional)
- perPage(number, optional)
get_file_contents
Fetches the contents of a file or directory at a given path. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- path(string, optional) — path to file or directory (dirs must end with /).
- ref(string, optional) — git ref (branch, tag, or PR head).
- sha(string, optional) — specific commit SHA (overrides ref).
get_latest_release
Retrieves metadata about the latest published release in a repository. Arguments:- owner(string, required)
- repo(string, required)
get_release_by_tag
Gets details for a release by its tag name. Arguments:- owner(string, required)
- repo(string, required)
- tag(string, required) — tag name (e.g., v1.0.0).
get_tag
Retrieves metadata about a tag in a repository. Arguments:- owner(string, required)
- repo(string, required)
- tag(string, required) — tag name.
list_branches
Lists branches in a repository, with pagination support. Arguments:- owner(string, required)
- repo(string, required)
- page(number, optional)
- perPage(number, optional)
list_commits
Lists commits for a repository, optionally filtered by author, branch, or SHA. Arguments:- owner(string, required)
- repo(string, required)
- author(string, optional) — filter by author username or email.
- sha(string, optional) — branch, tag, or commit SHA.
- page(number, optional)
- perPage(number, optional)
list_releases
Lists all releases published in a repository. Arguments:- owner(string, required)
- repo(string, required)
- page(number, optional)
- perPage(number, optional)
list_tags
Lists tags in a repository, with pagination. Arguments:- owner(string, required)
- repo(string, required)
- page(number, optional)
- perPage(number, optional)
push_files
Pushes multiple files to a branch in a repository in a single commit. Arguments:- owner(string, required)
- repo(string, required)
- branch(string, required) — target branch.
- files(object[], required) — array of (path, content) objects.
- message(string, required) — commit message.
search_code
Searches code across GitHub or within a repository using advanced search syntax. Arguments:- query(string, required) — search query (supports filters like language:, repo:, path:).
- order(string, optional) — sort order (asc, desc).
- sort(string, optional) — sort field (indexed).
- page(number, optional)
- perPage(number, optional)
search_repositories
Searches repositories by name, topic, stars, or language. Returns minimal metadata by default. Arguments:- query(string, required) — repo search string (e.g., “topic:react”, “stars:>1000 language:python”).
- minimal_output(boolean, optional) — return minimal output (default: true).
- page(number, optional)
- perPage(number, optional)
get_secret_scanning_alert
Retrieves details of a single secret scanning alert for a repository. Useful for investigating exposed credentials or tokens flagged by GitHub’s security scans. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- alertNumber(number, required) — unique identifier of the secret scanning alert.
list_secret_scanning_alerts
Lists all secret scanning alerts for a repository. Supports filtering by state, resolution, or secret type. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- state(string, optional) — filter by state (e.g., open, resolved).
- resolution(string, optional) — filter by resolution (e.g., revoked, false_positive).
- secret_type(string, optional) — comma-separated list of secret types to return.
get_global_security_advisory
Retrieves a single global GitHub Security Advisory by its GHSA ID. Advisories describe vulnerabilities across ecosystems, with CVEs, severity, and remediation info. Arguments:- ghsaId(string, required) — advisory ID (format: GHSA-xxxx-xxxx-xxxx).
list_global_security_advisories
Lists all global GitHub Security Advisories, with filters for ecosystem, severity, CVE ID, CWE IDs, or publish/update dates. Arguments:- affects(string, optional) — filter by affected package or version (e.g., “package1,package2@1.0.0”).
- cveId(string, optional) — filter by CVE ID.
- cwes(string[], optional) — filter by CWE IDs (e.g., [“79”, “284”, “22”]).
- ecosystem(string, optional) — filter by package ecosystem (npm, Maven, etc.).
- ghsaId(string, optional) — filter by advisory ID.
- isWithdrawn(boolean, optional) — only return withdrawn advisories.
- modified(string, optional) — filter by publish or update date/range (ISO 8601).
- published(string, optional) — filter by publish date/range (ISO 8601).
- updated(string, optional) — filter by update date/range (ISO 8601).
- severity(string, optional) — filter by severity (low, medium, high, critical).
- type(string, optional) — filter by advisory type.
list_org_repository_security_advisories
Lists security advisories published across repositories in a specific organization. Arguments:- org(string, required) — organization login.
- state(string, optional) — filter by advisory state (draft, published, closed).
- sort(string, optional) — sort field.
- direction(string, optional) — sort direction (asc or desc).
list_repository_security_advisories
Lists security advisories created for a single repository. Arguments:- owner(string, required) — repository owner.
- repo(string, required) — repository name.
- state(string, optional) — filter by advisory state.
- sort(string, optional) — sort field.
- direction(string, optional) — sort direction.
search_users
Searches GitHub users by name, location, followers, or other attributes. Supports advanced filters and pagination. Arguments:- query(string, required) — search query (e.g., “john smith”, “location:seattle”, “followers:>100”).
- sort(string, optional) — sort users by followers, repositories, or join date.
- order(string, optional) — sort order (asc or desc).
- page(number, optional) — page number (min 1).
- perPage* (number, optional)* — results per page (min 1, max 100).
Prerequisites
- A compatible MCP host with remote server support

