Files
qwen3-6-lora/data/schemas/github-personal.json
aleleba b2aa855a70 Fase 1: schemas de los 5 MCPs y script de generacion de replay
data/schemas/*.json: dump fiel de las tool definitions reales de
Penpot (4), Gitea (53), GitHub-personal (43), Docmost (17) y
Atlassian (37), obtenidas directo de las definiciones ya cargadas
en la sesion de Claude Code (no se escribio un cliente MCP nuevo,
para no arriesgar desviarse del esquema real).

PENPOT_DEPLOYMENT_NOTES.md: investigacion del codigo fuente oficial
de @penpot/mcp confirma que import_image y export_shape.filePath
estan ausentes porque este deployment corre en modo remoto/multi-
usuario (isFileSystemAccessEnabled() = !isRemoteMode()) -- documentado
tambien en una subpagina nueva de Docmost.

scripts/03_build_replay.py: genera ~700 ejemplos de replay (anti-
forgetting) contra el vLLM de produccion, 80 prompts semilla
(conversacion general/codigo/razonamiento) x 9 pasadas variando
temperatura. Mapea el campo "reasoning" de la API de vLLM a
"reasoning_content" para la convencion de chat template.
2026-07-28 05:34:55 +00:00

670 lines
37 KiB
JSON

[
{
"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).",
"parameters": {
"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" },
"owner": { "type": "string", "description": "Repository owner" },
"path": { "type": "string", "description": "The relative path to the file that necessitates a comment" },
"pullNumber": { "type": "number", "description": "Pull request number" },
"repo": { "type": "string", "description": "Repository name" },
"side": { "type": "string", "enum": ["LEFT", "RIGHT"], "description": "The side of the diff to comment on. LEFT indicates the previous state, RIGHT indicates the new state" },
"startLine": { "type": "number", "description": "For multi-line comments, the first line of the range that the comment applies to" },
"startSide": { "type": "string", "enum": ["LEFT", "RIGHT"], "description": "For multi-line comments, the starting side of the diff that the comment applies to" },
"subjectType": { "type": "string", "enum": ["FILE", "LINE"], "description": "The level at which the comment is targeted" }
},
"required": ["owner", "repo", "pullNumber", "path", "body", "subjectType"]
}
},
{
"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.",
"parameters": {
"type": "object",
"properties": {
"body": { "type": "string", "description": "Comment content" },
"issue_number": { "type": "number", "description": "Issue number to comment on" },
"owner": { "type": "string", "description": "Repository owner" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo", "issue_number", "body"]
}
},
{
"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.",
"parameters": {
"type": "object",
"properties": {
"body": { "type": "string", "description": "The text of the reply" },
"commentId": { "type": "number", "description": "The ID of the comment to reply to" },
"owner": { "type": "string", "description": "Repository owner" },
"pullNumber": { "type": "number", "description": "Pull request number" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo", "pullNumber", "commentId", "body"]
}
},
{
"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",
"parameters": {
"type": "object",
"properties": {
"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" },
"custom_instructions": { "type": "string", "description": "Optional custom instructions to guide the agent beyond the issue body." },
"issue_number": { "type": "number", "description": "Issue number" },
"owner": { "type": "string", "description": "Repository owner" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo", "issue_number"]
}
},
{
"name": "create_branch",
"description": "Create a new branch in a GitHub repository",
"parameters": {
"type": "object",
"properties": {
"branch": { "type": "string", "description": "Name for new branch" },
"from_branch": { "type": "string", "description": "Source branch (defaults to repo default)" },
"owner": { "type": "string", "description": "Repository owner" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo", "branch"]
}
},
{
"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",
"parameters": {
"type": "object",
"properties": {
"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" },
"owner": { "type": "string", "description": "Repository owner (username or organization)" },
"path": { "type": "string", "description": "Path where to create/update the file" },
"repo": { "type": "string", "description": "Repository name" },
"sha": { "type": "string", "description": "The blob SHA of the file being replaced. Required if the file already exists." }
},
"required": ["owner", "repo", "path", "content", "message", "branch"]
}
},
{
"name": "create_pull_request",
"description": "Create a new pull request in a GitHub repository.",
"parameters": {
"type": "object",
"properties": {
"base": { "type": "string", "description": "Branch to merge into" },
"body": { "type": "string", "description": "PR description" },
"draft": { "type": "boolean", "description": "Create as draft PR" },
"head": { "type": "string", "description": "Branch containing changes" },
"maintainer_can_modify": { "type": "boolean", "description": "Allow maintainer edits" },
"owner": { "type": "string", "description": "Repository owner" },
"repo": { "type": "string", "description": "Repository name" },
"title": { "type": "string", "description": "PR title" }
},
"required": ["owner", "repo", "title", "head", "base"]
}
},
{
"name": "create_repository",
"description": "Create a new GitHub repository in your account or specified organization",
"parameters": {
"type": "object",
"properties": {
"autoInit": { "type": "boolean", "description": "Initialize with README" },
"description": { "type": "string", "description": "Repository description" },
"name": { "type": "string", "description": "Repository name" },
"organization": { "type": "string", "description": "Organization to create the repository in (omit to create in your personal account)" },
"private": { "type": "boolean", "description": "Whether repo should be private" }
},
"required": ["name"]
}
},
{
"name": "delete_file",
"description": "Delete a file from a GitHub repository",
"parameters": {
"type": "object",
"properties": {
"branch": { "type": "string", "description": "Branch to delete the file from" },
"message": { "type": "string", "description": "Commit message" },
"owner": { "type": "string", "description": "Repository owner (username or organization)" },
"path": { "type": "string", "description": "Path to the file to delete" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo", "path", "message", "branch"]
}
},
{
"name": "fork_repository",
"description": "Fork a GitHub repository to your account or specified organization",
"parameters": {
"type": "object",
"properties": {
"organization": { "type": "string", "description": "Organization to fork to" },
"owner": { "type": "string", "description": "Repository owner" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo"]
}
},
{
"name": "get_commit",
"description": "Get details for a commit from a GitHub repository",
"parameters": {
"type": "object",
"properties": {
"include_diff": { "type": "boolean", "default": true, "description": "Whether to include file diffs and stats in the response. Default is true." },
"owner": { "type": "string", "description": "Repository owner" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"repo": { "type": "string", "description": "Repository name" },
"sha": { "type": "string", "description": "Commit SHA, branch name, or tag name" }
},
"required": ["owner", "repo", "sha"]
}
},
{
"name": "get_file_contents",
"description": "Get the contents of a file or directory from a GitHub repository",
"parameters": {
"type": "object",
"properties": {
"owner": { "type": "string", "description": "Repository owner (username or organization)" },
"path": { "type": "string", "default": "/", "description": "Path to file/directory" },
"ref": { "type": "string", "description": "Accepts optional git refs such as `refs/tags/{tag}`, `refs/heads/{branch}` or `refs/pull/{pr_number}/head`" },
"repo": { "type": "string", "description": "Repository name" },
"sha": { "type": "string", "description": "Accepts optional commit SHA. If specified, it will be used instead of ref" }
},
"required": ["owner", "repo"]
}
},
{
"name": "get_label",
"description": "Get a specific label from a repository.",
"parameters": {
"type": "object",
"properties": {
"name": { "type": "string", "description": "Label name." },
"owner": { "type": "string", "description": "Repository owner (username or organization name)" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo", "name"]
}
},
{
"name": "get_latest_release",
"description": "Get the latest release in a GitHub repository",
"parameters": {
"type": "object",
"properties": {
"owner": { "type": "string", "description": "Repository owner" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo"]
}
},
{
"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.",
"parameters": { "type": "object", "properties": {} }
},
{
"name": "get_release_by_tag",
"description": "Get a specific release by its tag name in a GitHub repository",
"parameters": {
"type": "object",
"properties": {
"owner": { "type": "string", "description": "Repository owner" },
"repo": { "type": "string", "description": "Repository name" },
"tag": { "type": "string", "description": "Tag name (e.g., 'v1.0.0')" }
},
"required": ["owner", "repo", "tag"]
}
},
{
"name": "get_tag",
"description": "Get details about a specific git tag in a GitHub repository",
"parameters": {
"type": "object",
"properties": {
"owner": { "type": "string", "description": "Repository owner" },
"repo": { "type": "string", "description": "Repository name" },
"tag": { "type": "string", "description": "Tag name" }
},
"required": ["owner", "repo", "tag"]
}
},
{
"name": "get_team_members",
"description": "Get member usernames of a specific team in an organization. Limited to organizations accessible with current credentials",
"parameters": {
"type": "object",
"properties": {
"org": { "type": "string", "description": "Organization login (owner) that contains the team." },
"team_slug": { "type": "string", "description": "Team slug" }
},
"required": ["org", "team_slug"]
}
},
{
"name": "get_teams",
"description": "Get details of the teams the user is a member of. Limited to organizations accessible with current credentials",
"parameters": {
"type": "object",
"properties": {
"user": { "type": "string", "description": "Username to get teams for. If not provided, uses the authenticated user." }
}
}
},
{
"name": "issue_read",
"description": "Get information about a specific issue in a GitHub repository.",
"parameters": {
"type": "object",
"properties": {
"issue_number": { "type": "number", "description": "The number of the issue" },
"method": { "type": "string", "enum": ["get", "get_comments", "get_sub_issues", "get_labels"], "description": "1. get - Get details of a specific issue. 2. get_comments - Get issue comments. 3. get_sub_issues - Get sub-issues of the issue. 4. get_labels - Get labels assigned to the issue." },
"owner": { "type": "string", "description": "The owner of the repository" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"repo": { "type": "string", "description": "The name of the repository" }
},
"required": ["method", "owner", "repo", "issue_number"]
}
},
{
"name": "issue_write",
"description": "Create a new or update an existing issue in a GitHub repository.",
"parameters": {
"type": "object",
"properties": {
"assignees": { "type": "array", "items": { "type": "string" }, "description": "Usernames to assign to this issue" },
"body": { "type": "string", "description": "Issue body content" },
"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" },
"labels": { "type": "array", "items": { "type": "string" }, "description": "Labels to apply to this issue" },
"method": { "type": "string", "enum": ["create", "update"], "description": "'create' creates a new issue. 'update' updates an existing issue." },
"milestone": { "type": "number", "description": "Milestone number" },
"owner": { "type": "string", "description": "Repository owner" },
"repo": { "type": "string", "description": "Repository name" },
"state": { "type": "string", "enum": ["open", "closed"], "description": "New state" },
"state_reason": { "type": "string", "enum": ["completed", "not_planned", "duplicate"], "description": "Reason for the state change. Ignored unless state is changed." },
"title": { "type": "string", "description": "Issue title" },
"type": { "type": "string", "description": "Type of this issue. Only use if the repository has issue types configured." }
},
"required": ["method", "owner", "repo"]
}
},
{
"name": "list_branches",
"description": "List branches in a GitHub repository",
"parameters": {
"type": "object",
"properties": {
"owner": { "type": "string", "description": "Repository owner" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo"]
}
},
{
"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).",
"parameters": {
"type": "object",
"properties": {
"author": { "type": "string", "description": "Author username or email address to filter commits by" },
"owner": { "type": "string", "description": "Repository owner" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"path": { "type": "string", "description": "Only commits containing this file path will be returned" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"repo": { "type": "string", "description": "Repository name" },
"sha": { "type": "string", "description": "Commit SHA, branch or tag name to list commits of. Defaults to the default branch." },
"since": { "type": "string", "description": "Only commits after this date (ISO 8601)" },
"until": { "type": "string", "description": "Only commits before this date (ISO 8601)" }
},
"required": ["owner", "repo"]
}
},
{
"name": "list_issue_types",
"description": "List supported issue types for repository owner (organization).",
"parameters": {
"type": "object",
"properties": {
"owner": { "type": "string", "description": "The organization owner of the repository" }
},
"required": ["owner"]
}
},
{
"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.",
"parameters": {
"type": "object",
"properties": {
"after": { "type": "string", "description": "Cursor for pagination." },
"direction": { "type": "string", "enum": ["ASC", "DESC"], "description": "Order direction. Requires 'orderBy' too." },
"labels": { "type": "array", "items": { "type": "string" }, "description": "Filter by labels" },
"orderBy": { "type": "string", "enum": ["CREATED_AT", "UPDATED_AT", "COMMENTS"], "description": "Order issues by field. Requires 'direction' too." },
"owner": { "type": "string", "description": "Repository owner" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"repo": { "type": "string", "description": "Repository name" },
"since": { "type": "string", "description": "Filter by date (ISO 8601 timestamp)" },
"state": { "type": "string", "enum": ["OPEN", "CLOSED"], "description": "Filter by state" }
},
"required": ["owner", "repo"]
}
},
{
"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.",
"parameters": {
"type": "object",
"properties": {
"base": { "type": "string", "description": "Filter by base branch" },
"direction": { "type": "string", "enum": ["asc", "desc"], "description": "Sort direction" },
"head": { "type": "string", "description": "Filter by head user/org and branch" },
"owner": { "type": "string", "description": "Repository owner" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"repo": { "type": "string", "description": "Repository name" },
"sort": { "type": "string", "enum": ["created", "updated", "popularity", "long-running"], "description": "Sort by" },
"state": { "type": "string", "enum": ["open", "closed", "all"], "description": "Filter by state" }
},
"required": ["owner", "repo"]
}
},
{
"name": "list_releases",
"description": "List releases in a GitHub repository",
"parameters": {
"type": "object",
"properties": {
"owner": { "type": "string", "description": "Repository owner" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo"]
}
},
{
"name": "list_repository_collaborators",
"description": "List collaborators of a GitHub repository. Results are paginated; the response includes `nextPage`, `prevPage`, `firstPage`, and `lastPage` fields. To get the next page, use the `nextPage` value as the `page` parameter.",
"parameters": {
"type": "object",
"properties": {
"affiliation": { "type": "string", "enum": ["outside", "direct", "all"], "description": "Filter by affiliation. Default: 'all'" },
"owner": { "type": "string", "description": "Repository owner" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (default 1, min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (default 30, min 1, max 100)" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo"]
}
},
{
"name": "list_tags",
"description": "List git tags in a GitHub repository",
"parameters": {
"type": "object",
"properties": {
"owner": { "type": "string", "description": "Repository owner" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo"]
}
},
{
"name": "merge_pull_request",
"description": "Merge a pull request in a GitHub repository.",
"parameters": {
"type": "object",
"properties": {
"commit_message": { "type": "string", "description": "Extra detail for merge commit" },
"commit_title": { "type": "string", "description": "Title for merge commit" },
"merge_method": { "type": "string", "enum": ["merge", "squash", "rebase"], "description": "Merge method" },
"owner": { "type": "string", "description": "Repository owner" },
"pullNumber": { "type": "number", "description": "Pull request number" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo", "pullNumber"]
}
},
{
"name": "pull_request_read",
"description": "Get information on a specific pull request in GitHub repository.",
"parameters": {
"type": "object",
"properties": {
"after": { "type": "string", "description": "Cursor for pagination, used only by get_review_comments." },
"method": { "type": "string", "enum": ["get", "get_diff", "get_status", "get_files", "get_review_comments", "get_reviews", "get_comments", "get_check_runs"], "description": "1. get 2. get_diff 3. get_status 4. get_files 5. get_review_comments 6. get_reviews 7. get_comments 8. get_check_runs" },
"owner": { "type": "string", "description": "Repository owner" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"pullNumber": { "type": "number", "description": "Pull request number" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["method", "owner", "repo", "pullNumber"]
}
},
{
"name": "pull_request_review_write",
"description": "Create and/or submit, delete review of a pull request.\n\n- create: Create a new review of a pull request. If \"event\" is provided, the review is submitted; if omitted, a pending review is created.\n- submit_pending: Submit an existing pending review.\n- delete_pending: Delete an existing pending review.\n- resolve_thread / unresolve_thread: only need \"threadId\".",
"parameters": {
"type": "object",
"properties": {
"body": { "type": "string", "description": "Review comment text" },
"commitID": { "type": "string", "description": "SHA of commit to review" },
"event": { "type": "string", "enum": ["APPROVE", "REQUEST_CHANGES", "COMMENT"], "description": "Review action to perform." },
"method": { "type": "string", "enum": ["create", "submit_pending", "delete_pending", "resolve_thread", "unresolve_thread"] },
"owner": { "type": "string", "description": "Repository owner" },
"pullNumber": { "type": "number", "description": "Pull request number" },
"repo": { "type": "string", "description": "Repository name" },
"threadId": { "type": "string", "description": "Node ID of the review thread (e.g., PRRT_kwDOxxx). Required for resolve/unresolve_thread." }
},
"required": ["method", "owner", "repo", "pullNumber"]
}
},
{
"name": "push_files",
"description": "Push multiple files to a GitHub repository in a single commit",
"parameters": {
"type": "object",
"properties": {
"branch": { "type": "string", "description": "Branch to push to" },
"files": {
"type": "array",
"description": "Array of file objects to push, each object with path (string) and content (string)",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"content": { "type": "string", "description": "file content" },
"path": { "type": "string", "description": "path to the file" }
},
"required": ["path", "content"]
}
},
"message": { "type": "string", "description": "Commit message" },
"owner": { "type": "string", "description": "Repository owner" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo", "branch", "files", "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.",
"parameters": {
"type": "object",
"properties": {
"owner": { "type": "string", "description": "Repository owner" },
"pullNumber": { "type": "number", "description": "Pull request number" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo", "pullNumber"]
}
},
{
"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.",
"parameters": {
"type": "object",
"properties": {
"order": { "type": "string", "enum": ["asc", "desc"], "description": "Sort order for results" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"query": { "type": "string", "description": "Search query (GitHub code search REST). Supports OR/NOT/quoted phrases and qualifiers repo:/org:/user:/language:/path:/filename:/extension:/in:file/in:path/size:/is:archived/is:fork. Max 256 chars." },
"sort": { "type": "string", "description": "Sort field ('indexed' only)" }
},
"required": ["query"]
}
},
{
"name": "search_commits",
"description": "Search for commits across GitHub repositories using GitHub's commit search syntax. Searches the default branch only.",
"parameters": {
"type": "object",
"properties": {
"order": { "type": "string", "enum": ["asc", "desc"], "description": "Sort order" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"query": { "type": "string", "description": "Commit search query. Scope with repo:/org:/user:. Other qualifiers: author:, committer:, author-date:, merge:, hash:, tree:, parent:, is:public." },
"sort": { "type": "string", "enum": ["author-date", "committer-date"], "description": "Sort by author or committer date (defaults to best match)" }
},
"required": ["query"]
}
},
{
"name": "search_issues",
"description": "Search for issues in GitHub repositories using issues search syntax already scoped to is:issue",
"parameters": {
"type": "object",
"properties": {
"order": { "type": "string", "enum": ["asc", "desc"], "description": "Sort order" },
"owner": { "type": "string", "description": "Optional repository owner. If provided with repo, only issues for this repository are listed." },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"query": { "type": "string", "description": "Search query using GitHub issues search syntax" },
"repo": { "type": "string", "description": "Optional repository name. If provided with owner, only issues for this repository are listed." },
"sort": { "type": "string", "enum": ["comments", "reactions", "reactions-+1", "reactions--1", "reactions-smile", "reactions-thinking_face", "reactions-heart", "reactions-tada", "interactions", "created", "updated"], "description": "Sort field by number of matches of categories, defaults to best match" }
},
"required": ["query"]
}
},
{
"name": "search_pull_requests",
"description": "Search for pull requests in GitHub repositories using issues search syntax already scoped to is:pr",
"parameters": {
"type": "object",
"properties": {
"order": { "type": "string", "enum": ["asc", "desc"], "description": "Sort order" },
"owner": { "type": "string", "description": "Optional repository owner. If provided with repo, only pull requests for this repository are listed." },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"query": { "type": "string", "description": "Search query using GitHub pull request search syntax" },
"repo": { "type": "string", "description": "Optional repository name. If provided with owner, only pull requests for this repository are listed." },
"sort": { "type": "string", "enum": ["comments", "reactions", "reactions-+1", "reactions--1", "reactions-smile", "reactions-thinking_face", "reactions-heart", "reactions-tada", "interactions", "created", "updated"], "description": "Sort field by number of matches of categories, defaults to best match" }
},
"required": ["query"]
}
},
{
"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.",
"parameters": {
"type": "object",
"properties": {
"minimal_output": { "type": "boolean", "default": true, "description": "Return minimal repository information (default: true). When false, returns full GitHub API repository objects." },
"order": { "type": "string", "enum": ["asc", "desc"], "description": "Sort order" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"query": { "type": "string", "description": "Repository search query. Examples: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'." },
"sort": { "type": "string", "enum": ["stars", "forks", "help-wanted-issues", "updated"], "description": "Sort repositories by field, defaults to best match" }
},
"required": ["query"]
}
},
{
"name": "search_users",
"description": "Find GitHub users by username, real name, or other profile information. Useful for locating developers, contributors, or team members.",
"parameters": {
"type": "object",
"properties": {
"order": { "type": "string", "enum": ["asc", "desc"], "description": "Sort order" },
"page": { "type": "number", "minimum": 1, "description": "Page number for pagination (min 1)" },
"perPage": { "type": "number", "minimum": 1, "maximum": 100, "description": "Results per page for pagination (min 1, max 100)" },
"query": { "type": "string", "description": "User search query. Examples: 'john smith', 'location:seattle', 'followers:>100'. Search is automatically scoped to type:user." },
"sort": { "type": "string", "enum": ["followers", "repositories", "joined"], "description": "Sort users by number of followers or repositories, or when the person joined GitHub." }
},
"required": ["query"]
}
},
{
"name": "update_pull_request",
"description": "Update an existing pull request in a GitHub repository.",
"parameters": {
"type": "object",
"properties": {
"base": { "type": "string", "description": "New base branch name" },
"body": { "type": "string", "description": "New description" },
"draft": { "type": "boolean", "description": "Mark pull request as draft (true) or ready for review (false)" },
"maintainer_can_modify": { "type": "boolean", "description": "Allow maintainer edits" },
"owner": { "type": "string", "description": "Repository owner" },
"pullNumber": { "type": "number", "description": "Pull request number to update" },
"repo": { "type": "string", "description": "Repository name" },
"reviewers": { "type": "array", "items": { "type": "string" }, "description": "GitHub usernames to request reviews from" },
"state": { "type": "string", "enum": ["open", "closed"], "description": "New state" },
"title": { "type": "string", "description": "New title" }
},
"required": ["owner", "repo", "pullNumber"]
}
},
{
"name": "update_pull_request_branch",
"description": "Update the branch of a pull request with the latest changes from the base branch.",
"parameters": {
"type": "object",
"properties": {
"expectedHeadSha": { "type": "string", "description": "The expected SHA of the pull request's HEAD ref" },
"owner": { "type": "string", "description": "Repository owner" },
"pullNumber": { "type": "number", "description": "Pull request number" },
"repo": { "type": "string", "description": "Repository name" }
},
"required": ["owner", "repo", "pullNumber"]
}
},
{
"name": "sub_issue_write",
"description": "Add a sub-issue to a parent issue in a GitHub repository.",
"parameters": {
"type": "object",
"properties": {
"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" },
"method": { "type": "string", "description": "'add' - add a sub-issue to a parent issue. 'remove' - remove a sub-issue from a parent issue. 'reprioritize' - change the order of sub-issues within a parent issue, using 'after_id' or 'before_id'." },
"owner": { "type": "string", "description": "Repository owner" },
"replace_parent": { "type": "boolean", "description": "When true, replaces the sub-issue's current parent issue. Use with 'add' method only." },
"repo": { "type": "string", "description": "Repository name" },
"sub_issue_id": { "type": "number", "description": "The ID of the sub-issue to add. ID is not the same as issue number" }
},
"required": ["method", "owner", "repo", "issue_number", "sub_issue_id"]
}
}
]