← ExploreSmithery
GitHub
latestgithub
Connect your AI agents to GitHub — manage repos, issues, PRs, workflows, and more
Install
One line. Adds the dep to agents.yml and resolves it.
pakx add mcp githubRaw metadata
Source-specific install hints as returned by Smithery.
{
"qualifiedName": "github",
"displayName": "GitHub",
"description": "Connect your AI agents to GitHub — manage repos, issues, PRs, workflows, and more",
"iconUrl": "https://api.smithery.ai/servers/github/icon",
"remote": true,
"deploymentUrl": "https://github.run.tools",
"connections": [
{
"type": "http",
"deploymentUrl": "https://github.run.tools",
"configSchema": {}
}
],
"security": null,
"tools": [
{
"name": "actions_get",
"description": "Get details about specific GitHub Actions resources.\nUse this tool to get details about individual workflows, workflow runs, jobs, and artifacts by their unique IDs.\n",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"method": {
"enum": [
"get_workflow",
"get_workflow_run",
"get_workflow_job",
"download_workflow_run_artifact",
"get_workflow_run_usage",
"get_workflow_run_logs_url"
],
"type": "string",
"description": "The method to execute"
},
"resource_id": {
"type": "string",
"description": "The unique identifier of the resource. This will vary based on the \"method\" provided, so ensure you provide the correct ID:\n- Provide a workflow ID or workflow file name (e.g. ci.yaml) for 'get_workflow' method.\n- Provide a workflow run ID for 'get_workflow_run', 'get_workflow_run_usage', and 'get_workflow_run_logs_url' methods.\n- Provide an artifact ID for 'download_workflow_run_artifact' method.\n- Provide a job ID for 'get_workflow_job' method.\n"
}
}
}
},
{
"name": "actions_list",
"description": "Tools for listing GitHub Actions resources.\nUse this tool to list workflows in a repository, or list workflow runs, jobs, and artifacts for a specific workflow or workflow run.\n",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (default: 1)"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"method": {
"enum": [
"list_workflows",
"list_workflow_runs",
"list_workflow_jobs",
"list_workflow_run_artifacts"
],
"type": "string",
"description": "The action to perform"
},
"per_page": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (default: 30, max: 100)"
},
"resource_id": {
"type": "string",
"description": "The unique identifier of the resource. This will vary based on the \"method\" provided, so ensure you provide the correct ID:\n- Do not provide any resource ID for 'list_workflows' method.\n- Provide a workflow ID or workflow file name (e.g. ci.yaml) for 'list_workflow_runs' method, or omit to list all workflow runs in the repository.\n- Provide a workflow run ID for 'list_workflow_jobs' and 'list_workflow_run_artifacts' methods.\n"
},
"workflow_jobs_filter": {
"type": "object",
"properties": {
"filter": {
"enum": [
"latest",
"all"
],
"type": "string",
"description": "Filters jobs by their completed_at timestamp"
}
},
"description": "Filters for workflow jobs. **ONLY** used when method is 'list_workflow_jobs'"
},
"workflow_runs_filter": {
"type": "object",
"properties": {
"actor": {
"type": "string",
"description": "Filter to a specific GitHub user's workflow runs."
},
"event": {
"enum": [
"branch_protection_rule",
"check_run",
"check_suite",
"create",
"delete",
"deployment",
"deployment_status",
"discussion",
"discussion_comment",
"fork",
"gollum",
"issue_comment",
"issues",
"label",
"merge_group",
"milestone",
"page_build",
"public",
"pull_request",
"pull_request_review",
"pull_request_review_comment",
"pull_request_target",
"push",
"registry_package",
"release",
"repository_dispatch",
"schedule",
"status",
"watch",
"workflow_call",
"workflow_dispatch",
"workflow_run"
],
"type": "string",
"description": "Filter workflow runs to a specific event type"
},
"branch": {
"type": "string",
"description": "Filter workflow runs to a specific Git branch. Use the name of the branch."
},
"status": {
"enum": [
"queued",
"in_progress",
"completed",
"requested",
"waiting"
],
"type": "string",
"description": "Filter workflow runs to only runs with a specific status"
}
},
"description": "Filters for workflow runs. **ONLY** used when method is 'list_workflow_runs'"
}
}
}
},
{
"name": "actions_run_trigger",
"description": "Trigger GitHub Actions workflow operations, including running, re-running, cancelling workflow runs, and deleting workflow run logs.",
"inputSchema": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"description": "The git reference for the workflow. The reference can be a branch or tag name. Required for 'run_workflow' method."
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"inputs": {
"type": "object",
"description": "Inputs the workflow accepts. Only used for 'run_workflow' method."
},
"method": {
"enum": [
"run_workflow",
"rerun_workflow_run",
"rerun_failed_jobs",
"cancel_workflow_run",
"delete_workflow_run_logs"
],
"type": "string",
"description": "The method to execute"
},
"run_id": {
"type": "number",
"description": "The ID of the workflow run. Required for all methods except 'run_workflow'."
},
"workflow_id": {
"type": "string",
"description": "The workflow ID (numeric) or workflow file name (e.g., main.yml, ci.yaml). Required for 'run_workflow' method."
}
}
}
},
{
"name": "add_comment_to_pending_review",
"description": "Add review comment to the requester's latest pending pull request review. A pending review needs to already exist to call this (check with the user if not sure).",
"inputSchema": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The text of the review comment"
},
"line": {
"type": "number",
"description": "The line of the blob in the pull request diff that the comment applies to. For multi-line comments, the last line of the range"
},
"path": {
"type": "string",
"description": "The relative path to the file that necessitates a comment"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"side": {
"enum": [
"LEFT",
"RIGHT"
],
"type": "string",
"description": "The side of the diff to comment on. LEFT indicates the previous state, RIGHT indicates the new state"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"startLine": {
"type": "number",
"description": "For multi-line comments, the first line of the range that the comment applies to"
},
"startSide": {
"enum": [
"LEFT",
"RIGHT"
],
"type": "string",
"description": "For multi-line comments, the starting side of the diff that the comment applies to. LEFT indicates the previous state, RIGHT indicates the new state"
},
"pullNumber": {
"type": "number",
"description": "Pull request number"
},
"subjectType": {
"enum": [
"FILE",
"LINE"
],
"type": "string",
"description": "The level at which the comment is targeted"
}
}
}
},
{
"name": "add_issue_comment",
"description": "Add a comment to a specific issue in a GitHub repository. Use this tool to add comments to pull requests as well (in this case pass pull request number as issue_number), but only if user is not asking specifically to add review comments.",
"inputSchema": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "Comment content"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"issue_number": {
"type": "number",
"description": "Issue number to comment on"
}
}
}
},
{
"name": "add_reply_to_pull_request_comment",
"description": "Add a reply to an existing pull request comment. This creates a new comment that is linked as a reply to the specified comment.",
"inputSchema": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The text of the reply"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"commentId": {
"type": "number",
"description": "The ID of the comment to reply to"
},
"pullNumber": {
"type": "number",
"description": "Pull request number"
}
}
}
},
{
"name": "assign_copilot_to_issue",
"description": "Assign Copilot to a specific issue in a GitHub repository.\n\nThis tool can help with the following outcomes:\n- a Pull Request created with source code changes to resolve the issue\n\n\nMore information can be found at:\n- https://docs.github.com/en/copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-tasks/about-assigning-tasks-to-copilot\n",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"base_ref": {
"type": "string",
"description": "Git reference (e.g., branch) that the agent will start its work from. If not specified, defaults to the repository's default branch"
},
"issue_number": {
"type": "number",
"description": "Issue number"
},
"custom_instructions": {
"type": "string",
"description": "Optional custom instructions to guide the agent beyond the issue body. Use this to provide additional context, constraints, or guidance that is not captured in the issue description"
}
}
}
},
{
"name": "create_branch",
"description": "Create a new branch in a GitHub repository",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"branch": {
"type": "string",
"description": "Name for new branch"
},
"from_branch": {
"type": "string",
"description": "Source branch (defaults to repo default)"
}
}
}
},
{
"name": "create_gist",
"description": "Create a new gist",
"inputSchema": {
"type": "object",
"properties": {
"public": {
"type": "boolean",
"default": false,
"description": "Whether the gist is public"
},
"content": {
"type": "string",
"description": "Content for simple single-file gist creation"
},
"filename": {
"type": "string",
"description": "Filename for simple single-file gist creation"
},
"description": {
"type": "string",
"description": "Description of the gist"
}
}
}
},
{
"name": "create_or_update_file",
"description": "Create or update a single file in a GitHub repository. \nIf updating, you should provide the SHA of the file you want to update. Use this tool to create or update a file in a GitHub repository remotely; do not use it for local file operations.\n\nIn order to obtain the SHA of original file version before updating, use the following git command:\ngit rev-parse <branch>:<path to file>\n\nSHA MUST be provided for existing file updates.\n",
"inputSchema": {
"type": "object",
"properties": {
"sha": {
"type": "string",
"description": "The blob SHA of the file being replaced. Required if the file already exists."
},
"path": {
"type": "string",
"description": "Path where to create/update the file"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner (username or organization)"
},
"branch": {
"type": "string",
"description": "Branch to create/update the file in"
},
"content": {
"type": "string",
"description": "Content of the file"
},
"message": {
"type": "string",
"description": "Commit message"
}
}
}
},
{
"name": "create_pull_request",
"description": "Create a new pull request in a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"base": {
"type": "string",
"description": "Branch to merge into"
},
"body": {
"type": "string",
"description": "PR description"
},
"head": {
"type": "string",
"description": "Branch containing changes"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"draft": {
"type": "boolean",
"description": "Create as draft PR"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"title": {
"type": "string",
"description": "PR title"
},
"maintainer_can_modify": {
"type": "boolean",
"description": "Allow maintainer edits"
}
}
}
},
{
"name": "create_pull_request_with_copilot",
"description": "Delegate a task to GitHub Copilot coding agent to perform in the background. The agent will create a pull request with the implementation. You should use this tool if the user asks to create a pull request to perform a specific task, or if the user asks Copilot to do something.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name. You can guess the repository name, but confirm it with the user before proceeding."
},
"owner": {
"type": "string",
"description": "Repository owner. You can guess the owner, but confirm it with the user before proceeding."
},
"title": {
"type": "string",
"description": "Title for the pull request that will be created"
},
"base_ref": {
"type": "string",
"description": "Git reference (e.g., branch) that the agent will start its work from. If not specified, defaults to the repository's default branch"
},
"problem_statement": {
"type": "string",
"description": "Detailed description of the task to be performed (e.g., 'Implement a feature that does X', 'Fix bug Y', etc.)"
}
}
}
},
{
"name": "create_repository",
"description": "Create a new GitHub repository in your account or specified organization",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Repository name"
},
"private": {
"type": "boolean",
"description": "Whether repo should be private"
},
"autoInit": {
"type": "boolean",
"description": "Initialize with README"
},
"description": {
"type": "string",
"description": "Repository description"
},
"organization": {
"type": "string",
"description": "Organization to create the repository in (omit to create in your personal account)"
}
}
}
},
{
"name": "delete_file",
"description": "Delete a file from a GitHub repository",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path to the file to delete"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner (username or organization)"
},
"branch": {
"type": "string",
"description": "Branch to delete the file from"
},
"message": {
"type": "string",
"description": "Commit message"
}
}
}
},
{
"name": "dismiss_notification",
"description": "Dismiss a notification by marking it as read or done",
"inputSchema": {
"type": "object",
"properties": {
"state": {
"enum": [
"read",
"done"
],
"type": "string",
"description": "The new state of the notification (read/done)"
},
"threadID": {
"type": "string",
"description": "The ID of the notification thread"
}
}
}
},
{
"name": "fork_repository",
"description": "Fork a GitHub repository to your account or specified organization",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"organization": {
"type": "string",
"description": "Organization to fork to"
}
}
}
},
{
"name": "get_code_scanning_alert",
"description": "Get details of a specific code scanning alert in a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "The name of the repository."
},
"owner": {
"type": "string",
"description": "The owner of the repository."
},
"alertNumber": {
"type": "number",
"description": "The number of the alert."
}
}
}
},
{
"name": "get_commit",
"description": "Get details for a commit from a GitHub repository",
"inputSchema": {
"type": "object",
"properties": {
"sha": {
"type": "string",
"description": "Commit SHA, branch name, or tag name"
},
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
},
"include_diff": {
"type": "boolean",
"default": true,
"description": "Whether to include file diffs and stats in the response. Default is true."
}
}
}
},
{
"name": "get_copilot_job_status",
"description": "Get the status of a GitHub Copilot coding agent job. Use this to check if a previously submitted task has completed and to get the pull request URL once it's created. Provide the job ID (from create_pull_request_with_copilot) or pull request number (from assign_copilot_to_issue), or any pull request you want agent sessions for.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Job ID or pull request number"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
}
}
}
},
{
"name": "get_copilot_space",
"description": "This tool can be used to provide additional context to the chat from a specific Copilot space. If the user mentions the keyword 'Copilot space' with the name and owner of the space, execute this tool.\n\nThe response includes a table of contents (TOC) listing all documents in the space, followed by the full content of each document. Documents are separated by markers in the format: '--- Document N: path (size) ---'. When searching for specific information, use grep (or equivalent command) to search across all documents; the separator lines will help identify which document contains the matching content.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the space"
},
"owner": {
"type": "string",
"description": "The owner of the space"
}
}
}
},
{
"name": "get_dependabot_alert",
"description": "Get details of a specific dependabot alert in a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "The name of the repository."
},
"owner": {
"type": "string",
"description": "The owner of the repository."
},
"alertNumber": {
"type": "number",
"description": "The number of the alert."
}
}
}
},
{
"name": "get_discussion",
"description": "Get a specific discussion by ID",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"discussionNumber": {
"type": "number",
"description": "Discussion Number"
}
}
}
},
{
"name": "get_discussion_comments",
"description": "Get comments from a discussion",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"after": {
"type": "string",
"description": "Cursor for pagination. Use the endCursor from the previous page's PageInfo for GraphQL APIs."
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
},
"discussionNumber": {
"type": "number",
"description": "Discussion Number"
}
}
}
},
{
"name": "get_file_contents",
"description": "Get the contents of a file or directory from a GitHub repository",
"inputSchema": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"description": "Accepts optional git refs such as `refs/tags/{tag}`, `refs/heads/{branch}` or `refs/pull/{pr_number}/head`"
},
"sha": {
"type": "string",
"description": "Accepts optional commit SHA. If specified, it will be used instead of ref"
},
"path": {
"type": "string",
"default": "/",
"description": "Path to file/directory"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner (username or organization)"
}
}
}
},
{
"name": "get_gist",
"description": "Get gist content of a particular gist, by gist ID",
"inputSchema": {
"type": "object",
"properties": {
"gist_id": {
"type": "string",
"description": "The ID of the gist"
}
}
}
},
{
"name": "get_global_security_advisory",
"description": "Get a global security advisory",
"inputSchema": {
"type": "object",
"properties": {
"ghsaId": {
"type": "string",
"description": "GitHub Security Advisory ID (format: GHSA-xxxx-xxxx-xxxx)."
}
}
}
},
{
"name": "get_job_logs",
"description": "Get logs for GitHub Actions workflow jobs.\nUse this tool to retrieve logs for a specific job or all failed jobs in a workflow run.\nFor single job logs, provide job_id. For all failed jobs in a run, provide run_id with failed_only=true.\n",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"job_id": {
"type": "number",
"description": "The unique identifier of the workflow job. Required when getting logs for a single job."
},
"run_id": {
"type": "number",
"description": "The unique identifier of the workflow run. Required when failed_only is true to get logs for all failed jobs in the run."
},
"tail_lines": {
"type": "number",
"default": 500,
"description": "Number of lines to return from the end of the log"
},
"failed_only": {
"type": "boolean",
"description": "When true, gets logs for all failed jobs in the workflow run specified by run_id. Requires run_id to be provided."
},
"return_content": {
"type": "boolean",
"description": "Returns actual log content instead of URLs"
}
}
}
},
{
"name": "get_label",
"description": "Get a specific label from a repository.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Label name."
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner (username or organization name)"
}
}
}
},
{
"name": "get_latest_release",
"description": "Get the latest release in a GitHub repository",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
}
}
}
},
{
"name": "get_me",
"description": "Get details of the authenticated GitHub user. Use this when a request is about the user's own profile for GitHub. Or when information is missing to build other tool calls.",
"inputSchema": {
"type": "object",
"properties": {}
}
},
{
"name": "get_notification_details",
"description": "Get detailed information for a specific GitHub notification, always call this tool when the user asks for details about a specific notification, if you don't know the ID list notifications first.",
"inputSchema": {
"type": "object",
"properties": {
"notificationID": {
"type": "string",
"description": "The ID of the notification"
}
}
}
},
{
"name": "get_release_by_tag",
"description": "Get a specific release by its tag name in a GitHub repository",
"inputSchema": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Tag name (e.g., 'v1.0.0')"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
}
}
}
},
{
"name": "get_repository_tree",
"description": "Get the tree structure (files and directories) of a GitHub repository at a specific ref or SHA",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner (username or organization)"
},
"tree_sha": {
"type": "string",
"description": "The SHA1 value or ref (branch or tag) name of the tree. Defaults to the repository's default branch"
},
"recursive": {
"type": "boolean",
"default": false,
"description": "Setting this parameter to true returns the objects or subtrees referenced by the tree. Default is false"
},
"path_filter": {
"type": "string",
"description": "Optional path prefix to filter the tree results (e.g., 'src/' to only show files in the src directory)"
}
}
}
},
{
"name": "get_secret_scanning_alert",
"description": "Get details of a specific secret scanning alert in a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "The name of the repository."
},
"owner": {
"type": "string",
"description": "The owner of the repository."
},
"alertNumber": {
"type": "number",
"description": "The number of the alert."
}
}
}
},
{
"name": "get_tag",
"description": "Get details about a specific git tag in a GitHub repository",
"inputSchema": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Tag name"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
}
}
}
},
{
"name": "get_team_members",
"description": "Get member usernames of a specific team in an organization. Limited to organizations accessible with current credentials",
"inputSchema": {
"type": "object",
"properties": {
"org": {
"type": "string",
"description": "Organization login (owner) that contains the team."
},
"team_slug": {
"type": "string",
"description": "Team slug"
}
}
}
},
{
"name": "get_teams",
"description": "Get details of the teams the user is a member of. Limited to organizations accessible with current credentials",
"inputSchema": {
"type": "object",
"properties": {
"user": {
"type": "string",
"description": "Username to get teams for. If not provided, uses the authenticated user."
}
}
}
},
{
"name": "github_support_docs_search",
"description": "Retrieve documentation relevant to answer GitHub product and support questions. Support topics include: GitHub Actions Workflows, Authentication, GitHub Support Inquiries, Pull Request Practices, Repository Maintenance, GitHub Pages, GitHub Packages, GitHub Discussions, Copilot Spaces",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Input from the user about the question they need answered. This is the latest raw unedited user message. You should ALWAYS leave the user message as it is, you should never modify it."
}
}
}
},
{
"name": "issue_read",
"description": "Get information about a specific issue in a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"repo": {
"type": "string",
"description": "The name of the repository"
},
"owner": {
"type": "string",
"description": "The owner of the repository"
},
"method": {
"enum": [
"get",
"get_comments",
"get_sub_issues",
"get_labels"
],
"type": "string",
"description": "The read operation to perform on a single issue.\nOptions are:\n1. get - Get details of a specific issue.\n2. get_comments - Get issue comments.\n3. get_sub_issues - Get sub-issues of the issue.\n4. get_labels - Get labels assigned to the issue.\n"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
},
"issue_number": {
"type": "number",
"description": "The number of the issue"
}
}
}
},
{
"name": "issue_write",
"description": "Create a new or update an existing issue in a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "Issue body content"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"type": {
"type": "string",
"description": "Type of this issue. Only use if the repository has issue types configured. Use list_issue_types tool to get valid type values for the organization. If the repository doesn't support issue types, omit this parameter."
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"state": {
"enum": [
"open",
"closed"
],
"type": "string",
"description": "New state"
},
"title": {
"type": "string",
"description": "Issue title"
},
"labels": {
"type": "array",
"items": {
"type": "string"
},
"description": "Labels to apply to this issue"
},
"method": {
"enum": [
"create",
"update"
],
"type": "string",
"description": "Write operation to perform on a single issue.\nOptions are:\n- 'create' - creates a new issue.\n- 'update' - updates an existing issue.\n"
},
"assignees": {
"type": "array",
"items": {
"type": "string"
},
"description": "Usernames to assign to this issue"
},
"milestone": {
"type": "number",
"description": "Milestone number"
},
"duplicate_of": {
"type": "number",
"description": "Issue number that this issue is a duplicate of. Only used when state_reason is 'duplicate'."
},
"issue_number": {
"type": "number",
"description": "Issue number to update"
},
"state_reason": {
"enum": [
"completed",
"not_planned",
"duplicate"
],
"type": "string",
"description": "Reason for the state change. Ignored unless state is changed."
}
}
}
},
{
"name": "label_write",
"description": "Perform write operations on repository labels. To set labels on issues, use the 'update_issue' tool.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Label name - required for all operations"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"color": {
"type": "string",
"description": "Label color as 6-character hex code without '#' prefix (e.g., 'f29513'). Required for 'create', optional for 'update'."
},
"owner": {
"type": "string",
"description": "Repository owner (username or organization name)"
},
"method": {
"enum": [
"create",
"update",
"delete"
],
"type": "string",
"description": "Operation to perform: 'create', 'update', or 'delete'"
},
"new_name": {
"type": "string",
"description": "New name for the label (used only with 'update' method to rename)"
},
"description": {
"type": "string",
"description": "Label description text. Optional for 'create' and 'update'."
}
}
}
},
{
"name": "list_branches",
"description": "List branches in a GitHub repository",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
}
}
}
},
{
"name": "list_code_scanning_alerts",
"description": "List code scanning alerts in a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"description": "The Git reference for the results you want to list."
},
"repo": {
"type": "string",
"description": "The name of the repository."
},
"owner": {
"type": "string",
"description": "The owner of the repository."
},
"state": {
"enum": [
"open",
"closed",
"dismissed",
"fixed"
],
"type": "string",
"default": "open",
"description": "Filter code scanning alerts by state. Defaults to open"
},
"severity": {
"enum": [
"critical",
"high",
"medium",
"low",
"warning",
"note",
"error"
],
"type": "string",
"description": "Filter code scanning alerts by severity"
},
"tool_name": {
"type": "string",
"description": "The name of the tool used for code scanning."
}
}
}
},
{
"name": "list_commits",
"description": "Get list of commits of a branch in a GitHub repository. Returns at least 30 results per page by default, but can return more if specified using the perPage parameter (up to 100).",
"inputSchema": {
"type": "object",
"properties": {
"sha": {
"type": "string",
"description": "Commit SHA, branch or tag name to list commits of. If not provided, uses the default branch of the repository. If a commit SHA is provided, will list commits up to that SHA."
},
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"author": {
"type": "string",
"description": "Author username or email address to filter commits by"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
}
}
}
},
{
"name": "list_copilot_spaces",
"description": "Retrieves the list of Copilot Spaces accessible to the user, including their names and owners.",
"inputSchema": {
"type": "object",
"properties": {}
}
},
{
"name": "list_dependabot_alerts",
"description": "List dependabot alerts in a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "The name of the repository."
},
"owner": {
"type": "string",
"description": "The owner of the repository."
},
"state": {
"enum": [
"open",
"fixed",
"dismissed",
"auto_dismissed"
],
"type": "string",
"default": "open",
"description": "Filter dependabot alerts by state. Defaults to open"
},
"severity": {
"enum": [
"low",
"medium",
"high",
"critical"
],
"type": "string",
"description": "Filter dependabot alerts by severity"
}
}
}
},
{
"name": "list_discussion_categories",
"description": "List discussion categories with their id and name, for a repository or organisation.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name. If not provided, discussion categories will be queried at the organisation level."
},
"owner": {
"type": "string",
"description": "Repository owner"
}
}
}
},
{
"name": "list_discussions",
"description": "List discussions for a repository or organisation.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name. If not provided, discussions will be queried at the organisation level."
},
"after": {
"type": "string",
"description": "Cursor for pagination. Use the endCursor from the previous page's PageInfo for GraphQL APIs."
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"orderBy": {
"enum": [
"CREATED_AT",
"UPDATED_AT"
],
"type": "string",
"description": "Order discussions by field. If provided, the 'direction' also needs to be provided."
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
},
"category": {
"type": "string",
"description": "Optional filter by discussion category ID. If provided, only discussions with this category are listed."
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Order direction."
}
}
}
},
{
"name": "list_gists",
"description": "List gists for a user",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"since": {
"type": "string",
"description": "Only gists updated after this time (ISO 8601 timestamp)"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
},
"username": {
"type": "string",
"description": "GitHub username (omit for authenticated user's gists)"
}
}
}
},
{
"name": "list_global_security_advisories",
"description": "List global security advisories from GitHub.",
"inputSchema": {
"type": "object",
"properties": {
"cwes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by Common Weakness Enumeration IDs (e.g. [\"79\", \"284\", \"22\"])."
},
"type": {
"enum": [
"reviewed",
"malware",
"unreviewed"
],
"type": "string",
"default": "reviewed",
"description": "Advisory type."
},
"cveId": {
"type": "string",
"description": "Filter by CVE ID."
},
"ghsaId": {
"type": "string",
"description": "Filter by GitHub Security Advisory ID (format: GHSA-xxxx-xxxx-xxxx)."
},
"affects": {
"type": "string",
"description": "Filter advisories by affected package or version (e.g. \"package1,package2@1.0.0\")."
},
"updated": {
"type": "string",
"description": "Filter by update date or date range (ISO 8601 date or range)."
},
"modified": {
"type": "string",
"description": "Filter by publish or update date or date range (ISO 8601 date or range)."
},
"severity": {
"enum": [
"unknown",
"low",
"medium",
"high",
"critical"
],
"type": "string",
"description": "Filter by severity."
},
"ecosystem": {
"enum": [
"actions",
"composer",
"erlang",
"go",
"maven",
"npm",
"nuget",
"other",
"pip",
"pub",
"rubygems",
"rust"
],
"type": "string",
"description": "Filter by package ecosystem."
},
"published": {
"type": "string",
"description": "Filter by publish date or date range (ISO 8601 date or range)."
},
"isWithdrawn": {
"type": "boolean",
"description": "Whether to only return withdrawn advisories."
}
}
}
},
{
"name": "list_issue_types",
"description": "List supported issue types for repository owner (organization).",
"inputSchema": {
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "The organization owner of the repository"
}
}
}
},
{
"name": "list_issues",
"description": "List issues in a GitHub repository. For pagination, use the 'endCursor' from the previous response's 'pageInfo' in the 'after' parameter.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"after": {
"type": "string",
"description": "Cursor for pagination. Use the endCursor from the previous page's PageInfo for GraphQL APIs."
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"since": {
"type": "string",
"description": "Filter by date (ISO 8601 timestamp)"
},
"state": {
"enum": [
"OPEN",
"CLOSED"
],
"type": "string",
"description": "Filter by state, by default both open and closed issues are returned when not provided"
},
"labels": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by labels"
},
"orderBy": {
"enum": [
"CREATED_AT",
"UPDATED_AT",
"COMMENTS"
],
"type": "string",
"description": "Order issues by field. If provided, the 'direction' also needs to be provided."
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
},
"direction": {
"enum": [
"ASC",
"DESC"
],
"type": "string",
"description": "Order direction. If provided, the 'orderBy' also needs to be provided."
}
}
}
},
{
"name": "list_label",
"description": "List labels from a repository",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name - required for all operations"
},
"owner": {
"type": "string",
"description": "Repository owner (username or organization name) - required for all operations"
}
}
}
},
{
"name": "list_notifications",
"description": "Lists all GitHub notifications for the authenticated user, including unread notifications, mentions, review requests, assignments, and updates on issues or pull requests. Use this tool whenever the user asks what to work on next, requests a summary of their GitHub activity, wants to see pending reviews, or needs to check for new updates or tasks. This tool is the primary way to discover actionable items, reminders, and outstanding work on GitHub. Always call this tool when asked what to work on next, what is pending, or what needs attention in GitHub.",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"repo": {
"type": "string",
"description": "Optional repository name. If provided with owner, only notifications for this repository are listed."
},
"owner": {
"type": "string",
"description": "Optional repository owner. If provided with repo, only notifications for this repository are listed."
},
"since": {
"type": "string",
"description": "Only show notifications updated after the given time (ISO 8601 format)"
},
"before": {
"type": "string",
"description": "Only show notifications updated before the given time (ISO 8601 format)"
},
"filter": {
"enum": [
"default",
"include_read_notifications",
"only_participating"
],
"type": "string",
"description": "Filter notifications to, use default unless specified. Read notifications are ones that have already been acknowledged by the user. Participating notifications are those that the user is directly involved in, such as issues or pull requests they have commented on or created."
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
}
}
}
},
{
"name": "list_org_repository_security_advisories",
"description": "List repository security advisories for a GitHub organization.",
"inputSchema": {
"type": "object",
"properties": {
"org": {
"type": "string",
"description": "The organization login."
},
"sort": {
"enum": [
"created",
"updated",
"published"
],
"type": "string",
"description": "Sort field."
},
"state": {
"enum": [
"triage",
"draft",
"published",
"closed"
],
"type": "string",
"description": "Filter by advisory state."
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction."
}
}
}
},
{
"name": "list_pull_requests",
"description": "List pull requests in a GitHub repository. If the user specifies an author, then DO NOT use this tool and use the search_pull_requests tool instead.",
"inputSchema": {
"type": "object",
"properties": {
"base": {
"type": "string",
"description": "Filter by base branch"
},
"head": {
"type": "string",
"description": "Filter by head user/org and branch"
},
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"sort": {
"enum": [
"created",
"updated",
"popularity",
"long-running"
],
"type": "string",
"description": "Sort by"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"state": {
"enum": [
"open",
"closed",
"all"
],
"type": "string",
"description": "Filter by state"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction"
}
}
}
},
{
"name": "list_releases",
"description": "List releases in a GitHub repository",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
}
}
}
},
{
"name": "list_repository_security_advisories",
"description": "List repository security advisories for a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "The name of the repository."
},
"sort": {
"enum": [
"created",
"updated",
"published"
],
"type": "string",
"description": "Sort field."
},
"owner": {
"type": "string",
"description": "The owner of the repository."
},
"state": {
"enum": [
"triage",
"draft",
"published",
"closed"
],
"type": "string",
"description": "Filter by advisory state."
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction."
}
}
}
},
{
"name": "list_secret_scanning_alerts",
"description": "List secret scanning alerts in a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "The name of the repository."
},
"owner": {
"type": "string",
"description": "The owner of the repository."
},
"state": {
"enum": [
"open",
"resolved"
],
"type": "string",
"description": "Filter by state"
},
"resolution": {
"enum": [
"false_positive",
"wont_fix",
"revoked",
"pattern_edited",
"pattern_deleted",
"used_in_tests"
],
"type": "string",
"description": "Filter by resolution"
},
"secret_type": {
"type": "string",
"description": "A comma-separated list of secret types to return. All default secret patterns are returned. To return generic patterns, pass the token name(s) in the parameter."
}
}
}
},
{
"name": "list_starred_repositories",
"description": "List starred repositories",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"sort": {
"enum": [
"created",
"updated"
],
"type": "string",
"description": "How to sort the results. Can be either 'created' (when the repository was starred) or 'updated' (when the repository was last pushed to)."
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
},
"username": {
"type": "string",
"description": "Username to list starred repositories for. Defaults to the authenticated user."
},
"direction": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "The direction to sort the results by."
}
}
}
},
{
"name": "list_tags",
"description": "List git tags in a GitHub repository",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
}
}
}
},
{
"name": "manage_notification_subscription",
"description": "Manage a notification subscription: ignore, watch, or delete a notification thread subscription.",
"inputSchema": {
"type": "object",
"properties": {
"action": {
"enum": [
"ignore",
"watch",
"delete"
],
"type": "string",
"description": "Action to perform: ignore, watch, or delete the notification subscription."
},
"notificationID": {
"type": "string",
"description": "The ID of the notification thread."
}
}
}
},
{
"name": "manage_repository_notification_subscription",
"description": "Manage a repository notification subscription: ignore, watch, or delete repository notifications subscription for the provided repository.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "The name of the repository."
},
"owner": {
"type": "string",
"description": "The account owner of the repository."
},
"action": {
"enum": [
"ignore",
"watch",
"delete"
],
"type": "string",
"description": "Action to perform: ignore, watch, or delete the repository notification subscription."
}
}
}
},
{
"name": "mark_all_notifications_read",
"description": "Mark all notifications as read",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Optional repository name. If provided with owner, only notifications for this repository are marked as read."
},
"owner": {
"type": "string",
"description": "Optional repository owner. If provided with repo, only notifications for this repository are marked as read."
},
"lastReadAt": {
"type": "string",
"description": "Describes the last point that notifications were checked (optional). Default: Now"
}
}
}
},
{
"name": "merge_pull_request",
"description": "Merge a pull request in a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"pullNumber": {
"type": "number",
"description": "Pull request number"
},
"commit_title": {
"type": "string",
"description": "Title for merge commit"
},
"merge_method": {
"enum": [
"merge",
"squash",
"rebase"
],
"type": "string",
"description": "Merge method"
},
"commit_message": {
"type": "string",
"description": "Extra detail for merge commit"
}
}
}
},
{
"name": "projects_get",
"description": "Get details about specific GitHub Projects resources.\nUse this tool to get details about individual projects, project fields, and project items by their unique IDs.\n",
"inputSchema": {
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "The owner (user or organization login). The name is not case sensitive."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Specific list of field IDs to include in the response when getting a project item (e.g. [\"102589\", \"985201\", \"169875\"]). If not provided, only the title field is included. Only used for 'get_project_item' method."
},
"method": {
"enum": [
"get_project",
"get_project_field",
"get_project_item",
"get_project_status_update"
],
"type": "string",
"description": "The method to execute"
},
"item_id": {
"type": "number",
"description": "The item's ID. Required for 'get_project_item' method."
},
"field_id": {
"type": "number",
"description": "The field's ID. Required for 'get_project_field' method."
},
"owner_type": {
"enum": [
"user",
"org"
],
"type": "string",
"description": "Owner type (user or org). If not provided, will be automatically detected."
},
"project_number": {
"type": "number",
"description": "The project's number."
},
"status_update_id": {
"type": "string",
"description": "The node ID of the project status update. Required for 'get_project_status_update' method."
}
}
}
},
{
"name": "projects_list",
"description": "Tools for listing GitHub Projects resources.\nUse this tool to list projects for a user or organization, or list project fields and items for a specific project.\n",
"inputSchema": {
"type": "object",
"properties": {
"after": {
"type": "string",
"description": "Forward pagination cursor from previous pageInfo.nextCursor."
},
"owner": {
"type": "string",
"description": "The owner (user or organization login). The name is not case sensitive."
},
"query": {
"type": "string",
"description": "Filter/query string. For list_projects: filter by title text and state (e.g. \"roadmap is:open\"). For list_project_items: advanced filtering using GitHub's project filtering syntax."
},
"before": {
"type": "string",
"description": "Backward pagination cursor from previous pageInfo.prevCursor (rare)."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Field IDs to include when listing project items (e.g. [\"102589\", \"985201\"]). CRITICAL: Always provide to get field values. Without this, only titles returned. Only used for 'list_project_items' method."
},
"method": {
"enum": [
"list_projects",
"list_project_fields",
"list_project_items",
"list_project_status_updates"
],
"type": "string",
"description": "The action to perform"
},
"per_page": {
"type": "number",
"description": "Results per page (max 50)"
},
"owner_type": {
"enum": [
"user",
"org"
],
"type": "string",
"description": "Owner type (user or org). If not provided, will automatically try both."
},
"project_number": {
"type": "number",
"description": "The project's number. Required for 'list_project_fields', 'list_project_items', and 'list_project_status_updates' methods."
}
}
}
},
{
"name": "projects_write",
"description": "Add, update, or delete project items, or create status updates in a GitHub Project.",
"inputSchema": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of the status update (markdown). Used for 'create_project_status_update' method."
},
"owner": {
"type": "string",
"description": "The project owner (user or organization login). The name is not case sensitive."
},
"method": {
"enum": [
"add_project_item",
"update_project_item",
"delete_project_item",
"create_project_status_update"
],
"type": "string",
"description": "The method to execute"
},
"status": {
"enum": [
"INACTIVE",
"ON_TRACK",
"AT_RISK",
"OFF_TRACK",
"COMPLETE"
],
"type": "string",
"description": "The status of the project. Used for 'create_project_status_update' method."
},
"item_id": {
"type": "number",
"description": "The project item ID. Required for 'update_project_item' and 'delete_project_item' methods."
},
"item_repo": {
"type": "string",
"description": "The name of the repository containing the issue or pull request. Required for 'add_project_item' method."
},
"item_type": {
"enum": [
"issue",
"pull_request"
],
"type": "string",
"description": "The item's type, either issue or pull_request. Required for 'add_project_item' method."
},
"item_owner": {
"type": "string",
"description": "The owner (user or organization) of the repository containing the issue or pull request. Required for 'add_project_item' method."
},
"owner_type": {
"enum": [
"user",
"org"
],
"type": "string",
"description": "Owner type (user or org). If not provided, will be automatically detected."
},
"start_date": {
"type": "string",
"description": "The start date of the status update in YYYY-MM-DD format. Used for 'create_project_status_update' method."
},
"target_date": {
"type": "string",
"description": "The target date of the status update in YYYY-MM-DD format. Used for 'create_project_status_update' method."
},
"issue_number": {
"type": "number",
"description": "The issue number (use when item_type is 'issue' for 'add_project_item' method). Provide either issue_number or pull_request_number."
},
"updated_field": {
"type": "object",
"description": "Object consisting of the ID of the project field to update and the new value for the field. To clear the field, set value to null. Example: {\"id\": 123456, \"value\": \"New Value\"}. Required for 'update_project_item' method."
},
"project_number": {
"type": "number",
"description": "The project's number."
},
"pull_request_number": {
"type": "number",
"description": "The pull request number (use when item_type is 'pull_request' for 'add_project_item' method). Provide either issue_number or pull_request_number."
}
}
}
},
{
"name": "pull_request_read",
"description": "Get information on a specific pull request in GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"method": {
"enum": [
"get",
"get_diff",
"get_status",
"get_files",
"get_review_comments",
"get_reviews",
"get_comments",
"get_check_runs"
],
"type": "string",
"description": "Action to specify what pull request data needs to be retrieved from GitHub. \nPossible options: \n 1. get - Get details of a specific pull request.\n 2. get_diff - Get the diff of a pull request.\n 3. get_status - Get combined commit status of a head commit in a pull request.\n 4. get_files - Get the list of files changed in a pull request. Use with pagination parameters to control the number of results returned.\n 5. get_review_comments - Get review threads on a pull request. Each thread contains logically grouped review comments made on the same code location during pull request reviews. Returns threads with metadata (isResolved, isOutdated, isCollapsed) and their associated comments. Use cursor-based pagination (perPage, after) to control results.\n 6. get_reviews - Get the reviews on a pull request. When asked for review comments, use get_review_comments method.\n 7. get_comments - Get comments on a pull request. Use this if user doesn't specifically want review comments. Use with pagination parameters to control the number of results returned.\n 8. get_check_runs - Get check runs for the head commit of a pull request. Check runs are the individual CI/CD jobs and checks that run on the PR.\n"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
},
"pullNumber": {
"type": "number",
"description": "Pull request number"
}
}
}
},
{
"name": "pull_request_review_write",
"description": "Create and/or submit, delete review of a pull request.\n\nAvailable methods:\n- create: Create a new review of a pull request. If \"event\" parameter is provided, the review is submitted. If \"event\" is omitted, a pending review is created.\n- submit_pending: Submit an existing pending review of a pull request. This requires that a pending review exists for the current user on the specified pull request. The \"body\" and \"event\" parameters are used when submitting the review.\n- delete_pending: Delete an existing pending review of a pull request. This requires that a pending review exists for the current user on the specified pull request.\n",
"inputSchema": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "Review comment text"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"event": {
"enum": [
"APPROVE",
"REQUEST_CHANGES",
"COMMENT"
],
"type": "string",
"description": "Review action to perform."
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"method": {
"enum": [
"create",
"submit_pending",
"delete_pending"
],
"type": "string",
"description": "The write operation to perform on pull request review."
},
"commitID": {
"type": "string",
"description": "SHA of commit to review"
},
"pullNumber": {
"type": "number",
"description": "Pull request number"
}
}
}
},
{
"name": "push_files",
"description": "Push multiple files to a GitHub repository in a single commit",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"files": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"content"
],
"properties": {
"path": {
"type": "string",
"description": "path to the file"
},
"content": {
"type": "string",
"description": "file content"
}
}
},
"description": "Array of file objects to push, each object with path (string) and content (string)"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"branch": {
"type": "string",
"description": "Branch to push to"
},
"message": {
"type": "string",
"description": "Commit message"
}
}
}
},
{
"name": "request_copilot_review",
"description": "Request a GitHub Copilot code review for a pull request. Use this for automated feedback on pull requests, usually before requesting a human reviewer.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"pullNumber": {
"type": "number",
"description": "Pull request number"
}
}
}
},
{
"name": "run_secret_scanning",
"description": "Scan files, content, or recent changes for secrets such as API keys, passwords, tokens, and credentials.\n\nThis tool is intended for targeted scans of specific files, snippets, or diffs provided directly as content. It accepts file contents or diffs and returns detected secrets with their locations and related secret scanning metadata. Content must not be empty. For full repository scanning, other mechanisms are available.\n\nCaveats:\n\n- Only files within the codebase should be scanned. Files outside of the codebase should not be sent.\n- Files listed in .gitignore should be skipped.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"files": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"minItems": 1,
"description": "Array of file contents, snippets, or diff hunks to scan for secrets. These must be raw contents, not repository file paths."
},
"owner": {
"type": "string",
"description": "Repository owner"
}
}
}
},
{
"name": "search_code",
"description": "Fast and precise code search across ALL GitHub repositories using GitHub's native search engine. Best for finding exact symbols, functions, classes, or specific code patterns.",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"sort": {
"type": "string",
"description": "Sort field ('indexed' only)"
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order for results"
},
"query": {
"type": "string",
"description": "Search query using GitHub's powerful code search syntax. Examples: 'content:Skill language:Java org:github', 'NOT is:archived language:Python OR language:go', 'repo:github/github-mcp-server'. Supports exact matching, language filters, path filters, and more."
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
}
}
}
},
{
"name": "search_issues",
"description": "Search for issues in GitHub repositories using issues search syntax already scoped to is:issue",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"repo": {
"type": "string",
"description": "Optional repository name. If provided with owner, only issues for this repository are listed."
},
"sort": {
"enum": [
"comments",
"reactions",
"reactions-+1",
"reactions--1",
"reactions-smile",
"reactions-thinking_face",
"reactions-heart",
"reactions-tada",
"interactions",
"created",
"updated"
],
"type": "string",
"description": "Sort field by number of matches of categories, defaults to best match"
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order"
},
"owner": {
"type": "string",
"description": "Optional repository owner. If provided with repo, only issues for this repository are listed."
},
"query": {
"type": "string",
"description": "Search query using GitHub issues search syntax"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
}
}
}
},
{
"name": "search_orgs",
"description": "Find GitHub organizations by name, location, or other organization metadata. Ideal for discovering companies, open source foundations, or teams.",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"sort": {
"enum": [
"followers",
"repositories",
"joined"
],
"type": "string",
"description": "Sort field by category"
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order"
},
"query": {
"type": "string",
"description": "Organization search query. Examples: 'microsoft', 'location:california', 'created:>=2025-01-01'. Search is automatically scoped to type:org."
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
}
}
}
},
{
"name": "search_pull_requests",
"description": "Search for pull requests in GitHub repositories using issues search syntax already scoped to is:pr",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"repo": {
"type": "string",
"description": "Optional repository name. If provided with owner, only pull requests for this repository are listed."
},
"sort": {
"enum": [
"comments",
"reactions",
"reactions-+1",
"reactions--1",
"reactions-smile",
"reactions-thinking_face",
"reactions-heart",
"reactions-tada",
"interactions",
"created",
"updated"
],
"type": "string",
"description": "Sort field by number of matches of categories, defaults to best match"
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order"
},
"owner": {
"type": "string",
"description": "Optional repository owner. If provided with repo, only pull requests for this repository are listed."
},
"query": {
"type": "string",
"description": "Search query using GitHub pull request search syntax"
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
}
}
}
},
{
"name": "search_repositories",
"description": "Find GitHub repositories by name, description, readme, topics, or other metadata. Perfect for discovering projects, finding examples, or locating specific repositories across GitHub.",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"sort": {
"enum": [
"stars",
"forks",
"help-wanted-issues",
"updated"
],
"type": "string",
"description": "Sort repositories by field, defaults to best match"
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order"
},
"query": {
"type": "string",
"description": "Repository search query. Examples: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'. Supports advanced search syntax for precise filtering."
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
},
"minimal_output": {
"type": "boolean",
"default": true,
"description": "Return minimal repository information (default: true). When false, returns full GitHub API repository objects."
}
}
}
},
{
"name": "search_users",
"description": "Find GitHub users by username, real name, or other profile information. Useful for locating developers, contributors, or team members.",
"inputSchema": {
"type": "object",
"properties": {
"page": {
"type": "number",
"minimum": 1,
"description": "Page number for pagination (min 1)"
},
"sort": {
"enum": [
"followers",
"repositories",
"joined"
],
"type": "string",
"description": "Sort users by number of followers or repositories, or when the person joined GitHub."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort order"
},
"query": {
"type": "string",
"description": "User search query. Examples: 'john smith', 'location:seattle', 'followers:>100'. Search is automatically scoped to type:user."
},
"perPage": {
"type": "number",
"maximum": 100,
"minimum": 1,
"description": "Results per page for pagination (min 1, max 100)"
}
}
}
},
{
"name": "star_repository",
"description": "Star a GitHub repository",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
}
}
}
},
{
"name": "sub_issue_write",
"description": "Add a sub-issue to a parent issue in a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"method": {
"type": "string",
"description": "The action to perform on a single sub-issue\nOptions are:\n- 'add' - add a sub-issue to a parent issue in a GitHub repository.\n- 'remove' - remove a sub-issue from a parent issue in a GitHub repository.\n- 'reprioritize' - change the order of sub-issues within a parent issue in a GitHub repository. Use either 'after_id' or 'before_id' to specify the new position.\n\t\t\t\t"
},
"after_id": {
"type": "number",
"description": "The ID of the sub-issue to be prioritized after (either after_id OR before_id should be specified)"
},
"before_id": {
"type": "number",
"description": "The ID of the sub-issue to be prioritized before (either after_id OR before_id should be specified)"
},
"issue_number": {
"type": "number",
"description": "The number of the parent issue"
},
"sub_issue_id": {
"type": "number",
"description": "The ID of the sub-issue to add. ID is not the same as issue number"
},
"replace_parent": {
"type": "boolean",
"description": "When true, replaces the sub-issue's current parent issue. Use with 'add' method only."
}
}
}
},
{
"name": "triage_issue",
"description": "Triage an issue by capturing a focused triage rationale and optionally applying metadata (labels, issue type, and issue fields) in a single operation.\nUse this tool when:\n- You are triaging a newly opened or untriaged issue for maintainers\n- You need to categorize the issue (type) and suggest/apply relevant labels\n- You want to record a brief, structured triage report\n\nDo not use this tool when:\n- The user is asking a general product question unrelated to triaging a specific issue\n\ntriage_rationale should be concise markdown aimed at maintainers (not the issue author); it should contain:\n- Summary of the issue\n- Analysis of the problem or request\n- Suggested next steps or actions.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"type": {
"type": "string",
"description": "The issue type to set (optional, e.g., 'bug', 'feature_request')"
},
"owner": {
"type": "string",
"description": "Repository owner (username or organization)"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"value"
],
"properties": {
"name": {
"type": "string",
"description": "Field name"
},
"value": {
"description": "Field value (string, number, or other supported type)"
}
}
},
"description": "Custom fields to set on the issue (optional)"
},
"labels": {
"type": "array",
"items": {
"type": "string"
},
"description": "Labels to apply to the issue (optional)"
},
"issue_number": {
"type": "number",
"minimum": 1,
"description": "The issue number to triage"
},
"triage_rationale": {
"type": "string",
"description": "The triage comment body containing analysis and rationale. This will be posted as a comment on the issue."
}
}
}
},
{
"name": "unstar_repository",
"description": "Unstar a GitHub repository",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
}
}
}
},
{
"name": "update_gist",
"description": "Update an existing gist",
"inputSchema": {
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "Content for the file"
},
"gist_id": {
"type": "string",
"description": "ID of the gist to update"
},
"filename": {
"type": "string",
"description": "Filename to update or create"
},
"description": {
"type": "string",
"description": "Updated description of the gist"
}
}
}
},
{
"name": "update_pull_request",
"description": "Update an existing pull request in a GitHub repository.",
"inputSchema": {
"type": "object",
"properties": {
"base": {
"type": "string",
"description": "New base branch name"
},
"body": {
"type": "string",
"description": "New description"
},
"repo": {
"type": "string",
"description": "Repository name"
},
"draft": {
"type": "boolean",
"description": "Mark pull request as draft (true) or ready for review (false)"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"state": {
"enum": [
"open",
"closed"
],
"type": "string",
"description": "New state"
},
"title": {
"type": "string",
"description": "New title"
},
"reviewers": {
"type": "array",
"items": {
"type": "string"
},
"description": "GitHub usernames to request reviews from"
},
"pullNumber": {
"type": "number",
"description": "Pull request number to update"
},
"maintainer_can_modify": {
"type": "boolean",
"description": "Allow maintainer edits"
}
}
}
},
{
"name": "update_pull_request_branch",
"description": "Update the branch of a pull request with the latest changes from the base branch.",
"inputSchema": {
"type": "object",
"properties": {
"repo": {
"type": "string",
"description": "Repository name"
},
"owner": {
"type": "string",
"description": "Repository owner"
},
"pullNumber": {
"type": "number",
"description": "Pull request number"
},
"expectedHeadSha": {
"type": "string",
"description": "The expected SHA of the pull request's HEAD ref"
}
}
}
}
],
"resources": [],
"prompts": [
{
"name": "AssignCodingAgent",
"description": "Assign GitHub Coding Agent to multiple tasks in a GitHub repository.",
"arguments": [
{
"name": "repo",
"description": "The repository to assign tasks in (owner/repo).",
"required": true
}
]
},
{
"name": "issue_to_fix_workflow",
"description": "Create an issue for a problem and then generate a pull request to fix it",
"arguments": [
{
"name": "owner",
"description": "Repository owner",
"required": true
},
{
"name": "repo",
"description": "Repository name",
"required": true
},
{
"name": "title",
"description": "Issue title",
"required": true
},
{
"name": "description",
"description": "Issue description",
"required": true
},
{
"name": "labels",
"description": "Comma-separated list of labels to apply (optional)"
},
{
"name": "assignees",
"description": "Comma-separated list of assignees (optional)"
}
]
}
]
}