{"prompt": "Pantalla de resultados de busqueda de una libreria de comics: filtros a la izquierda y ocho resultados en dos columnas, 880 de ancho.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Agrega un comentario 'mapa de sucursales 265' al issue sincronizador-offline-288 de Jira.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Pantalla mobile de 720x96 para la app de un taller de ceramica: onboarding de tres pasos con ilustracion y boton primario #c2410c.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Fijate si quedo algun comentario sin responder en 'gateway-eventos' de esta semana.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Hero de 720x96 para una escuela de buceo con foto de fondo, un velo oscuro encima y titular en blanco.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Un cotizador simple para un festival de cine documental de 720x96: dos selectores, un deslizador y el resultado en grande.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Lista los issues abiertos de 'motor-reportes' con label 'enhancement'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Busca issues de Jira asignados a mi usuario con JQL en el proyecto 'bus-notificaciones'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Comenta 'widget de clima 797' en la pagina con id conocido del space 'sincronizador-offline'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Lista las paginas del space 'sincronizador-offline' ordenadas por actualizacion reciente.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Busca commits recientes en 'indexador-catalogo' que mencionen 'widget de clima 23'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Crea una subpagina 'historial de pedidos 671' bajo la pagina principal del space 'servicio-facturacion'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Transiciona el issue cliente-escritorio-187 a 'In Progress'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Busca en Confluence paginas del espacio 'servicio-facturacion' que mencionen 'calendario de turnos 730'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Pantalla mobile de 640x420 para la app de un taller de ceramica: onboarding de tres pasos con ilustracion y boton primario #5b21b6.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Agrega un comentario 'panel de alertas 565' al PR numero 314 de 'gateway-eventos'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Solicita una review de Copilot para el PR numero 303 de 'sincronizador-offline'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Banner promocional de 640x640 para una heladeria artesanal, estilo oscuro con acentos neon, con un descuento bien visible y un boton.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Defini la paleta de una panaderia sin gluten en la biblioteca del archivo y aplicala a un boton primario y a uno secundario.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Crea una rama llamada 'hotfix/zona-horaria-82' en el repo 'indexador-catalogo' desde main.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Busca issues de Jira asignados a mi usuario con JQL en el proyecto 'portal-proveedores'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Pantalla de pago de un festival de cine documental: resumen de compra a la derecha, datos de tarjeta a la izquierda, 720 de ancho.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Exporta el shape 'avatar-usuario-15' como PNG y dejalo guardado en /tmp/avatar-usuario-15.png.", "mcp": "penpot", "expect": "no-invented-args", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Busca en 'cliente-escritorio' el codigo que define la funcion 'panel de alertas 398'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Formulario de contacto de un refugio de montana: cuatro campos, un area de texto y boton de enviar, 720 de ancho.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Crea un issue de Jira en el proyecto 'cliente-escritorio' titulado 'resumen de consumo 659', tipo Bug.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Decime que pull requests siguen abiertos hoy en 'portal-proveedores'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Necesito la escala tipografica de una escuela de buceo en un board de 720x640: seis tamanos del display al pie de foto.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Revisa los commits recientes de la rama 'hotfix/zona-horaria-22' en 'consola-soporte'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Busca en Confluence paginas del espacio 'servicio-facturacion' que mencionen 'resumen de consumo 958'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Agrega un comentario 'linea de tiempo 362' al PR numero 283 de 'motor-reportes'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Decime que pull requests siguen abiertos hoy en 'gateway-eventos'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Busca commits recientes en 'bus-notificaciones' que mencionen 'resumen de consumo 549'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Exporta el shape 'separador-seccion-6' como PNG y dejalo guardado en /tmp/separador-seccion-6.png.", "mcp": "penpot", "expect": "no-invented-args", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Busca en Docmost paginas que mencionen 'lector de codigos QR 491'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Crea un release 'feature/panel-metricas-7' en 'portal-proveedores' con las notas 'widget de clima 782'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Crea un release 'fix/reintentos-webhook-67' en 'indexador-catalogo' con las notas 'mapa de sucursales 193'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Busca en Docmost paginas que mencionen 'mapa de sucursales 520'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Agrega un comentario 'mapa de sucursales 926' al PR numero 394 de 'indexador-catalogo'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Agrega un worklog de 1h al issue cliente-escritorio-365 con el comentario 'mapa de sucursales 458'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Crea un rectangulo de 640x180 en el board 'Pantallas Kiosco' con color #831843.", "mcp": "penpot", "expect": "tool-call-valido", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Busca en Docmost paginas que mencionen 'buscador con filtros 892'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Hazme el encabezado y el pie de un taller de ceramica con la misma paleta editorial con mucho contraste y acento #0d9488.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Lista los issues abiertos de 'indexador-catalogo' con label 'enhancement'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Galeria de seis fotos de un taller de ceramica en grid de tres columnas, con titulo y bajada arriba.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Agrega un worklog de 1h al issue motor-reportes-431 con el comentario 'panel de alertas 220'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Agrega un comentario 'buscador con filtros 366' al PR numero 211 de 'sincronizador-offline'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Crea un pull request en 'servicio-facturacion' desde la rama 'feature/panel-metricas-83' hacia main, titulo 'buscador con filtros 863'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Lista los shapes del board 'Pantallas Kiosco' y decime cuales son grupos.", "mcp": "penpot", "expect": "tool-call-valido", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 428 de 'bus-notificaciones'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Agrega un comentario 'widget de clima 891' al issue gateway-eventos-405 de Jira.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Lista los releases publicados de 'sincronizador-offline'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Crea un pull request en 'bus-notificaciones' desde la rama 'feature/modo-lectura-59' hacia main, titulo 'editor de firmas 869'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Lista los issues abiertos de 'portal-proveedores' con label 'enhancement'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Lista los shapes del board 'Flujo de Reserva' y decime cuales son grupos.", "mcp": "penpot", "expect": "tool-call-valido", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Pantalla de perfil de un club de ajedrez de 720x96, con avatar, datos de la cuenta y actividad reciente.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Agrega un worklog de 1h al issue servicio-facturacion-259 con el comentario 'panel de alertas 461'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Agrega un comentario 'linea de tiempo 482' al issue numero 97 de 'gateway-eventos'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Crea un issue en 'servicio-facturacion' titulado 'resumen de consumo 212' asignado a mi usuario.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Lista las paginas del space 'indexador-catalogo' ordenadas por actualizacion reciente.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Agrega un comentario 'lector de codigos QR 474' al issue portal-proveedores-353 de Jira.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Solicita una review de Copilot para el PR numero 270 de 'sincronizador-offline'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Crea un rectangulo de 1360x640 en el board 'Portada Editorial' con color #9d174d.", "mcp": "penpot", "expect": "tool-call-valido", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Necesito un texto que diga 'buscador con filtros 697' dentro del board 'Flujo de Reserva', alineado a la izquierda.", "mcp": "penpot", "expect": "tool-call-valido", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Cambia el fill del shape 'badge-descuento-65' a #0d9488 y verifica que se aplico.", "mcp": "penpot", "expect": "tool-call-valido", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Actualiza la pagina 'resumen de consumo 515' agregando una fila mas a la tabla existente.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Comenta 'linea de tiempo 348' en la pagina con id conocido del space 'indexador-catalogo'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Revisa los commits recientes de la rama 'hotfix/zona-horaria-72' en 'cliente-escritorio'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Agrega un board nuevo llamado 'Flujo de Reserva' de 640x72 px en la pagina actual.", "mcp": "penpot", "expect": "tool-call-valido", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Pantalla de perfil de una clinica de fisioterapia deportiva de 1360x640, con avatar, datos de la cuenta y actividad reciente.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Agrega un comentario 'buscador con filtros 787' al issue numero 1 de 'consola-soporte'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Hazme un navbar de 1360x640 para el sitio de un club de ajedrez, con logo a la izquierda y cuatro enlaces a la derecha sobre fondo #9d174d.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Mueve el shape 'avatar-usuario-85' a la posicion x=1360, y=640 dentro de 'Portada Editorial'.", "mcp": "penpot", "expect": "tool-call-valido", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Agrega un worklog de 1h al issue motor-reportes-342 con el comentario 'mapa de sucursales 416'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Comenta 'lector de codigos QR 944' en la pagina con id conocido del space 'sincronizador-offline'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Revisa el estado de los actions/workflows del repo 'indexador-catalogo'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Crea un issue en 'servicio-facturacion' titulado 'lector de codigos QR 830' asignado a mi usuario.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Lista los releases publicados de 'consola-soporte'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Lista los issues abiertos de 'sincronizador-offline' con label 'enhancement'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Crea una subpagina 'carrusel de novedades 147' bajo la pagina principal del space 'consola-soporte'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Crea una subpagina 'panel de alertas 141' bajo la pagina principal del space 'motor-reportes'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Transiciona el issue indexador-catalogo-164 a 'In Progress'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Armame una landing completa de una clinica de fisioterapia deportiva, 1120 px de ancho, con hero, tres beneficios y footer. Estilo pastel y suave, color principal #5b21b6.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 297 de 'cliente-escritorio'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Abri un issue en 'indexador-catalogo' titulado 'selector de idioma 722' con la label 'bug'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Mueve el shape 'chip-etiqueta-92' a la posicion x=640, y=96 dentro de 'Catalogo Impreso'.", "mcp": "penpot", "expect": "tool-call-valido", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Crea un release 'feature/panel-metricas-15' en 'motor-reportes' con las notas 'widget de clima 26'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Lista los tipos de issue disponibles en el proyecto 'servicio-facturacion' de Jira.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Armame una landing completa de una escuela de buceo, 720 px de ancho, con hero, tres beneficios y footer. Estilo pastel y suave, color principal #9d174d.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Necesito un texto que diga 'buscador con filtros 872' dentro del board 'Sistema Tipografico', alineado a la izquierda.", "mcp": "penpot", "expect": "tool-call-valido", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Crea un issue de Jira en el proyecto 'cliente-escritorio' titulado 'widget de clima 976', tipo Bug.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Hazme un dashboard para una tostaduria de cafe de especialidad con barra lateral, cuatro tarjetas de metricas y una tabla debajo, 880 de ancho.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Tres testimonios de clientes de un observatorio astronomico en tarjetas con foto, cita y nombre, 1360 de ancho.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Abri un issue en 'gateway-eventos' titulado 'carrusel de novedades 328' con la label 'bug'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Agrega un comentario 'mapa de sucursales 704' al issue numero 306 de 'sincronizador-offline'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Necesito la escala tipografica de un estudio de tatuajes en un board de 880x96: seis tamanos del display al pie de foto.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Agrega un comentario 'widget de clima 143' al PR numero 214 de 'servicio-facturacion'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Fijate si quedo algun comentario sin responder en 'bus-notificaciones' de esta semana.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Lista los tipos de issue disponibles en el proyecto 'indexador-catalogo' de Jira.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 266 de 'sincronizador-offline'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Solicita una review de Copilot para el PR numero 300 de 'portal-proveedores'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Un cotizador simple para una tienda de instrumentos de viento de 880x420: dos selectores, un deslizador y el resultado en grande.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Recorta el shape 'banner-promo-91' contra un circulo con una operacion booleana de interseccion.", "mcp": "penpot", "expect": "api-verificada", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Abri un issue en 'servicio-facturacion' titulado 'buscador con filtros 102' con la label 'bug'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Revisa el estado de los actions/workflows del repo 'gateway-eventos'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Crea un boolean de union entre 'banner-promo-88' y otro rectangulo superpuesto.", "mcp": "penpot", "expect": "api-verificada", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Pantalla de pago de un taller de ceramica: resumen de compra a la derecha, datos de tarjeta a la izquierda, 880 de ancho.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Busca en Docmost paginas que mencionen 'selector de idioma 982'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Lista los releases publicados de 'portal-proveedores'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Crea una pagina llamada 'editor de firmas 183' en el space 'motor-reportes' con una tabla de 109 columnas.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Tres testimonios de clientes de una fabrica de bicicletas de bambu en tarjetas con foto, cita y nombre, 720 de ancho.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Decime que pull requests siguen abiertos hoy en 'servicio-facturacion'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Seccion de precios con tres planes para una tienda de instrumentos de viento, el del medio destacado, paleta pastel y suave.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Galeria de seis fotos de un observatorio astronomico en grid de tres columnas, con titulo y bajada arriba.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Abri un issue en 'indexador-catalogo' titulado 'mapa de sucursales 763' con la label 'bug'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Crea una pagina de Confluence 'mapa de sucursales 346' en el espacio 'sincronizador-offline'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Actualiza la pagina 'panel de alertas 241' agregando una fila mas a la tabla existente.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Mueve la pagina 'buscador con filtros 670' a otro parent dentro del space 'consola-soporte'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Crea una subpagina 'carrusel de novedades 797' bajo la pagina principal del space 'sincronizador-offline'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Busca issues de Jira asignados a mi usuario con JQL en el proyecto 'indexador-catalogo'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Mueve la pagina 'panel de alertas 543' a otro parent dentro del space 'cliente-escritorio'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Crea un issue en 'cliente-escritorio' titulado 'historial de pedidos 465' asignado a mi usuario.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Decime que pull requests siguen abiertos hoy en 'motor-reportes'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Lista las paginas del space 'cliente-escritorio' ordenadas por actualizacion reciente.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Crea una pagina de Confluence 'calendario de turnos 742' en el espacio 'servicio-facturacion'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Mueve la pagina 'panel de alertas 872' a otro parent dentro del space 'sincronizador-offline'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Agrega un comentario 'panel de alertas 262' al issue numero 110 de 'gateway-eventos'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Formulario de contacto de una clinica de fisioterapia deportiva: cuatro campos, un area de texto y boton de enviar, 720 de ancho.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Actualiza la pagina 'buscador con filtros 400' agregando una fila mas a la tabla existente.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Crea una pagina llamada 'resumen de consumo 82' en el space 'motor-reportes' con una tabla de 336 columnas.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Crea una rama llamada 'fix/reintentos-webhook-49' en el repo 'consola-soporte' desde main.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Lista los tipos de issue disponibles en el proyecto 'portal-proveedores' de Jira.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Crea una rama llamada 'feature/panel-metricas-64' en el repo 'sincronizador-offline' desde main.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Agrega un board nuevo llamado 'Sistema Tipografico' de 640x96 px en la pagina actual.", "mcp": "penpot", "expect": "tool-call-valido", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Crea un pull request en 'portal-proveedores' desde la rama 'hotfix/zona-horaria-35' hacia main, titulo 'widget de clima 386'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Busca commits recientes en 'consola-soporte' que mencionen 'calendario de turnos 211'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Crea una pagina llamada 'editor de firmas 206' en el space 'portal-proveedores' con una tabla de 12 columnas.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Solicita una review de Copilot para el PR numero 498 de 'bus-notificaciones'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Crea un boolean de union entre 'banner-promo-67' y otro rectangulo superpuesto.", "mcp": "penpot", "expect": "api-verificada", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Busca en Confluence paginas del espacio 'gateway-eventos' que mencionen 'calendario de turnos 636'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 16 de 'indexador-catalogo'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Crea un issue en 'indexador-catalogo' titulado 'historial de pedidos 92' asignado a mi usuario.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Lista los tipos de issue disponibles en el proyecto 'cliente-escritorio' de Jira.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Crea un release 'feature/modo-lectura-67' en 'consola-soporte' con las notas 'editor de firmas 575'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Revisa el estado de los actions/workflows del repo 'consola-soporte'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Busca en Docmost paginas que mencionen 'selector de idioma 993'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Crea un issue de Jira en el proyecto 'indexador-catalogo' titulado 'mapa de sucursales 810', tipo Bug.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Lista los issues abiertos de 'consola-soporte' con label 'enhancement'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Necesito una card de producto para una veterinaria felina: foto arriba, titulo, precio y boton, de 640x96 y con esquinas redondeadas.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Mueve la pagina 'mapa de sucursales 58' a otro parent dentro del space 'consola-soporte'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "El board 'Pantallas Kiosco' quedo lleno de cajas grises sin nada de texto; convertilo en un diseno real de una escuela de buceo usando #7e22ce.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Crea un issue de Jira en el proyecto 'servicio-facturacion' titulado 'widget de clima 731', tipo Bug.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Crea una pagina de Confluence 'carrusel de novedades 774' en el espacio 'portal-proveedores'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Lista los releases publicados de 'gateway-eventos'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Hazme un dashboard para una heladeria artesanal con barra lateral, cuatro tarjetas de metricas y una tabla debajo, 1360 de ancho.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Banner promocional de 1360x96 para una fabrica de bicicletas de bambu, estilo retro setentoso, con un descuento bien visible y un boton.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Crea una pagina llamada 'calendario de turnos 368' en el space 'portal-proveedores' con una tabla de 362 columnas.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Transiciona el issue cliente-escritorio-322 a 'In Progress'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Revisa los commits recientes de la rama 'hotfix/zona-horaria-39' en 'sincronizador-offline'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Hazme un navbar de 1360x420 para el sitio de una tienda de instrumentos de viento, con logo a la izquierda y cuatro enlaces a la derecha sobre fondo #c2410c.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "El board 'Catalogo Impreso' quedo lleno de cajas grises sin nada de texto; convertilo en un diseno real de una escuela de buceo usando #5b21b6.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Crea una rama llamada 'chore/actualizar-lockfile-5' en el repo 'sincronizador-offline' desde main.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Busca en Confluence paginas del espacio 'indexador-catalogo' que mencionen 'mapa de sucursales 833'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Exporta el shape 'avatar-usuario-35' como PNG a 2x de resolucion.", "mcp": "penpot", "expect": "no-invented-args", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Cambia el fill del shape 'avatar-usuario-90' a #0e5f8a y verifica que se aplico.", "mcp": "penpot", "expect": "tool-call-valido", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Revisa el estado de los actions/workflows del repo 'motor-reportes'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Pantalla de resultados de busqueda de una veterinaria felina: filtros a la izquierda y ocho resultados en dos columnas, 1360 de ancho.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Busca issues de Jira asignados a mi usuario con JQL en el proyecto 'sincronizador-offline'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Crea una pagina llamada 'editor de firmas 843' en el space 'motor-reportes' con una tabla de 486 columnas.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Crea una pagina de Confluence 'editor de firmas 365' en el espacio 'servicio-facturacion'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Armame un cuadro comparativo de 9 columnas para un club de ajedrez, encabezado en #c2410c y filas alternadas.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Defini la paleta de una tienda de instrumentos de viento en la biblioteca del archivo y aplicala a un boton primario y a uno secundario.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Agrega un comentario 'widget de clima 351' al issue bus-notificaciones-354 de Jira.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Revisa los commits recientes de la rama 'hotfix/zona-horaria-75' en 'portal-proveedores'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Busca en 'portal-proveedores' el codigo que define la funcion 'resumen de consumo 769'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Actualiza la pagina 'widget de clima 239' agregando una fila mas a la tabla existente.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Comenta 'carrusel de novedades 490' en la pagina con id conocido del space 'portal-proveedores'.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Fijate si quedo algun comentario sin responder en 'cliente-escritorio' de esta semana.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Seccion de precios con tres planes para un club de ajedrez, el del medio destacado, paleta editorial con mucho contraste.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Agrega un comentario 'buscador con filtros 488' al issue gateway-eventos-210 de Jira.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Transiciona el issue indexador-catalogo-67 a 'In Progress'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Abri un issue en 'indexador-catalogo' titulado 'resumen de consumo 412' con la label 'bug'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Exporta el shape 'chip-etiqueta-41' como PNG a 2x de resolucion.", "mcp": "penpot", "expect": "no-invented-args", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Busca issues de Jira asignados a mi usuario con JQL en el proyecto 'motor-reportes'.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Busca en 'indexador-catalogo' el codigo que define la funcion 'lector de codigos QR 831'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Actualiza la pagina 'panel de alertas 550' agregando una fila mas a la tabla existente.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Crea una rama llamada 'fix/reintentos-webhook-35' en el repo 'portal-proveedores' desde main.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Crea un pull request en 'consola-soporte' desde la rama 'feature/panel-metricas-86' hacia main, titulo 'mapa de sucursales 592'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Decime que pull requests siguen abiertos hoy en 'indexador-catalogo'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Lista las paginas del space 'portal-proveedores' ordenadas por actualizacion reciente.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Crea un issue de Jira en el proyecto 'gateway-eventos' titulado 'carrusel de novedades 388', tipo Bug.", "mcp": "atlassian", "expect": "tool-call-valido", "tools": [{"name": "addCommentToJiraIssue", "description": "Add or update a comment on a Jira issue", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "commentId": {"type": "string", "maxLength": 18, "description": "ID of an existing comment to update. If omitted, a new comment is added."}, "commentVisibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"], "description": "Content format for body content. 'markdown' for simplified plain text. 'adf' (Atlassian Document Format, JSON) for full programmatic fidelity."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "commentBody"]}}, {"name": "addWorklogToJiraIssue", "description": "Add or update a worklog on a Jira issue. When worklogId is provided, updates that worklog;", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentBody": {"type": "string", "description": "Comment body"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "started": {"type": "string", "description": "When the work was started (ISO 8601 date-time). If omitted, booked at current date/time."}, "timeSpent": {"type": "string", "description": "Time spent (e.g. 2h, 30m, 4d). Required for new worklogs; use to set or change time when updating."}, "visibility": {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["group", "role"]}, "value": {"type": "string"}}, "required": ["type", "value"]}, "worklogId": {"type": "string", "description": "ID of an existing worklog to update. If omitted, a new worklog is created."}}, "required": ["cloudId", "issueIdOrKey", "timeSpent"]}}, {"name": "atlassianUserInfo", "description": "Get current user info", "parameters": {"type": "object", "properties": {}}}, {"name": "createCompassComponent", "description": "Create a new Compass component", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "description": {"type": "string", "description": "Description of the component"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "Labels for the component"}, "name": {"type": "string", "description": "Name of the component"}, "ownerId": {"type": "string", "description": "Owner ID of the component"}, "typeId": {"type": "string", "description": "Type ID of the component"}}, "required": ["cloudId", "name", "typeId"]}}, {"name": "createCompassComponentRelationship", "description": "Create a relationship between Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fromComponentId": {"type": "string", "description": "The ARI of the source component"}, "relationshipType": {"type": "string", "enum": ["DEPENDS_ON", "DEPENDENCY_OF"], "description": "Type of relationship"}, "toComponentId": {"type": "string", "description": "The ARI of the target component"}}, "required": ["cloudId", "fromComponentId", "toComponentId", "relationshipType"]}}, {"name": "createCompassCustomFieldDefinition", "description": "Create a custom field definition in Compass", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "input": {"type": "object", "additionalProperties": false, "description": "Input data for creating the custom field definition", "properties": {"description": {"type": "string", "description": "Description of the custom field definition"}, "isRequired": {"type": "boolean", "description": "Whether the custom field is required"}, "name": {"type": "string", "description": "Name of the custom field definition"}, "type": {"type": "string", "enum": ["TEXT", "NUMBER", "BOOLEAN", "USER", "DATE"], "description": "Type of the custom field"}}, "required": ["name", "type"]}}, "required": ["cloudId", "input"]}}, {"name": "createConfluenceFooterComment", "description": "Create a footer comment on a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"attachmentId": {"type": "string", "description": "Attachment ID to include"}, "body": {"type": "string", "description": "Page/comment body. HTML supports headings/paragraphs/tables/links/code/lists plus Confluence-specific data-type nodes (panels, status, task/decision lists, expands, layouts, cards, media, dates, mentions, macros/extensions, sync blocks). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "customContentId": {"type": "string", "description": "Custom content ID to include"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies"}}, "required": ["cloudId", "body"]}}, {"name": "createConfluenceInlineComment", "description": "Create an inline comment on specific text in a page or blog post. For top-level comments, provide pageId and inlineCommentProperties (text selection + match counts). For replies, provide parentCommentId only. Must first fetch the page content to find the exact text and count occurrences.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "inlineCommentProperties": {"type": "object", "additionalProperties": false, "description": "Required for top-level inline comments (not replies).", "properties": {"textSelection": {"type": "string", "minLength": 1, "description": "The exact text on the page to anchor the inline comment to. Must match rendered page text exactly (case-sensitive)."}, "textSelectionMatchCount": {"type": "integer", "minimum": 0, "description": "Total number of times textSelection appears on the page."}, "textSelectionMatchIndex": {"type": "integer", "minimum": 0, "description": "Zero-based index of the specific occurrence to anchor the comment to. Must be < textSelectionMatchCount."}}, "required": ["textSelection", "textSelectionMatchCount", "textSelectionMatchIndex"]}, "pageId": {"type": "string", "description": "Page or blog post ID or tiny link ID. Use for top-level inline comments only; not with parentCommentId."}, "parentCommentId": {"type": "string", "description": "Parent comment ID for replies. When provided, creates a reply; do not provide pageId/inlineCommentProperties."}}, "required": ["cloudId", "body"]}}, {"name": "createConfluencePage", "description": "Create a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Page body. HTML: standard blocks (h1-h6, p, table/thead/tbody/tr/th/td, a, pre/code, ul/ol/li) plus Confluence HTML+ data-type nodes -- panels (panel-info/warning/note/success/error), status spans, task/decision lists, expand/details, layout sections, inline cards, dates, mentions, macros/extensions, sync blocks, media groups/inline media. Native macros use data-extension-type=com.atlassian.confluence.macro.core, never storage XML. Do not invent opaque IDs (data-user-id/data-id/data-collection/data-media-id/data-resource-id) -- only copy from existing content/tool output. ADF nesting rules apply (no self-nesting panels/expands/tables/blockquotes; list items/headings/captions are inline-only in some contexts). Never wrap in //."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "isPrivate": {"type": "boolean", "description": "Make private"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Numeric space ID (a Long, e.g. '131073'). A space key (e.g. 'ENG') or personal-space key (e.g. '~712020abc') is also accepted and resolved automatically."}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current", "description": "Status (draft for unpublished)"}, "subtype": {"type": "string", "enum": ["live"], "description": "Page subtype (pages only, ignored for blogs)"}, "title": {"type": "string", "description": "Page or blog post title"}}, "required": ["cloudId", "spaceId", "body"]}}, {"name": "createIssueLink", "description": "Create a link between two Jira issues. For directional link types (e.g. Blocks): inwardIssue = issue that blocks, outwardIssue = issue that is blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A). Use getIssueLinkTypes if link type is unknown.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "comment": {"type": "string", "description": "Optional comment on the outward issue."}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "inwardIssue": {"type": "string", "description": "Inward issue key (e.g. HSP-1)."}, "outwardIssue": {"type": "string", "description": "Outward issue key (e.g. MKY-1)."}, "type": {"type": "string", "description": "Link type name (e.g. Duplicate, Blocks, Clones, Relates). Use getIssueLinkTypes to list available types."}}, "required": ["cloudId", "inwardIssue", "outwardIssue", "type"]}}, {"name": "createJiraIssue", "description": "Create a Jira issue. Use additional_fields to set any Jira field that does not have its own parameter (e.g. custom fields, priority, components).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"additional_fields": {"type": "object", "description": "REQUIRED for custom fields. The ONLY parameter to set priority, labels, custom fields, components, fix versions, or any other Jira fields not listed above. Examples: {\"components\": [{\"name\": \"Backend\"}]}, {\"fixVersions\": [{\"name\": \"v1.2\"}]}, {\"priority\": {\"name\": \"High\"}}, {\"labels\": [\"bug\"]}, {\"customfield_10001\": \"value\"}."}, "assignee_account_id": {"type": "string", "description": "Assignee ID"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "description": {"description": "Issue description. With contentFormat 'markdown' (default), plain text or Markdown string. With 'adf', an ADF JSON string or document object with type 'doc'."}, "issueTypeName": {"type": "string", "description": "Type (Task, Bug, Story)"}, "parent": {"type": "string", "description": "Parent for subtasks"}, "projectKey": {"type": "string", "description": "Project key"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "summary": {"type": "string"}, "transition": {"type": "object", "additionalProperties": false, "description": "Optional workflow transition to apply during creation. Use getTransitionsForJiraIssue to find valid IDs. Placed at top level, not inside fields.", "properties": {"id": {"type": "string", "description": "The workflow transition ID to apply during issue creation"}}, "required": ["id"]}}, "required": ["cloudId", "projectKey", "issueTypeName", "summary"]}}, {"name": "editJiraIssue", "description": "Update issue. After updating, returns the issue using the same default read fields as getJiraIssue (summary, description, status, issuetype, priority, labels, components, assignee, reporter, created, updated, resolution, project). Use getJiraIssue with fields [\"*all\"] or a custom list if you need more.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "fields": {"type": "object", "description": "Fields to set, keyed by field name or customfield_* ID. To CLEAR a field, pass explicit null, e.g. { \"resolution\": null } -- fixes reopened issues blocked from transitioning because Resolution is still set."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}}, "required": ["cloudId", "issueIdOrKey", "fields"]}}, {"name": "fetch", "description": "Get details of a Jira issue or Confluence page by ARI (Atlassian Resource Identifier), if the id is not an ARI, then use a different tool to fetch the content", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is extracted from the ARI automatically"}, "id": {"type": "string", "description": "Atlassian Resource Identifier (ARI) from search results, e.g., 'ari:cloud:jira:cloudId:issue/10107' or 'ari:cloud:confluence:cloudId:page/123456789'"}}, "required": ["id"]}}, {"name": "getAccessibleAtlassianResources", "description": "Get cloudId to make tool calls. When a link is provided (e.g. https://site.atlassian.net/*), try passing the site hostname as cloudId to other tools first; if that fails, use this tool to list accessible resources.", "parameters": {"type": "object", "properties": {}}}, {"name": "getCompassComponent", "description": "Get a Compass component by ID", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "componentId": {"type": "string", "description": "The ID of the component to get"}, "includeCustomFieldsInResponse": {"type": "boolean", "default": true, "description": "Whether to include custom fields in the response."}, "includeRelatedComponentsAndDependenciesInResponse": {"type": "boolean", "default": false, "description": "Whether to include related components and dependencies (all relationship types)."}, "includeRelatedLinksInResponse": {"type": "boolean", "default": true, "description": "Whether to include related links (repository, documentation, Jira project, on-call, etc.)."}}, "required": ["cloudId", "componentId"]}}, {"name": "getCompassComponents", "description": "Get a list of Compass components", "parameters": {"type": "object", "additionalProperties": false, "properties": {"after": {"type": "string", "description": "The cursor to start at."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "filters": {"type": "object", "additionalProperties": false, "description": "Additional filters -- results match ALL provided filters", "properties": {"labels": {"type": "array", "items": {"type": "string"}, "description": "Filter by component labels (e.g., [\"frontend\", \"backend\"])."}, "repositories": {"type": "array", "items": {"type": "string"}, "description": "Filter by repository URLs -- reverse lookup a component by repo."}, "types": {"type": "array", "items": {"type": "string"}, "description": "Filter by component type ids (e.g., [\"SERVICE\", \"LIBRARY\", \"APPLICATION\"])."}}}, "maxResults": {"type": "number", "default": 10, "maximum": 50, "description": "Max items per page."}, "query": {"type": "string", "description": "The query to search for components."}}, "required": ["cloudId"]}}, {"name": "getCompassCustomFieldDefinitions", "description": "Get a list of Compass custom field definitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getConfluenceCommentChildren", "description": "Get reply(child) comments for a comment", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "commentId": {"type": "string", "description": "Parent comment ID"}, "commentType": {"type": "string", "enum": ["footer", "inline"]}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max replies"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}}, "required": ["cloudId", "commentId", "commentType"]}}, {"name": "getConfluencePage", "description": "Get a Confluence page or blog post by ID, including body content.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"], "description": "'html' for structured HTML (round-trip safe, preserves inline comments/local IDs). 'markdown' for simplified plain text."}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID (encoded part from /wiki/x/ URLs)"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageDescendants", "description": "Get child pages of specified page", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "depth": {"type": "number", "description": "Max depth"}, "limit": {"type": "number", "description": "Max descendants"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageFooterComments", "description": "Get footer comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluencePageInlineComments", "description": "Get inline comments for a page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "includeReplies": {"type": "boolean", "default": false, "description": "When true, also return reply comments"}, "limit": {"type": "number", "description": "Max comments"}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "repliesPerComment": {"type": "integer", "minimum": 1, "maximum": 25}, "resolutionStatus": {"type": "string", "enum": ["resolved", "open", "dangling", "reopened"], "default": "open"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date"]}, "status": {"type": "string", "enum": ["current", "archived", "trashed", "deleted", "historical", "draft"], "default": "current"}}, "required": ["cloudId", "pageId"]}}, {"name": "getConfluenceSpaces", "description": "Get spaces", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"description": "Properties to expand (string or array of strings)"}, "favoritedBy": {"type": "string", "description": "User favorites"}, "favourite": {"type": "boolean", "description": "Favorite spaces only"}, "ids": {"description": "Space IDs (string or array of numbers)"}, "keys": {"description": "Space keys (string or array of strings)"}, "labels": {"description": "Space labels (string or array of strings)"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "start": {"type": "number", "description": "Start index"}, "status": {"type": "string", "enum": ["current", "archived"]}, "type": {"type": "string", "enum": ["global", "personal"]}}, "required": ["cloudId"]}}, {"name": "getIssueLinkTypes", "description": "Get available Jira issue link types (e.g. Blocks, Duplicate, Clones, Relates). For createIssueLink: inwardIssue = blocker, outwardIssue = blocked (e.g. \"A is blocked by B\" -> inwardIssue: B, outwardIssue: A).", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}}, "required": ["cloudId"]}}, {"name": "getJiraIssue", "description": "Get issue details", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string", "description": "Additional issue details to expand (e.g. renderedFields, names)."}, "failFast": {"type": "boolean", "description": "Whether to fail quickly when some fields cannot be loaded instead of partially returning data."}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults to summary/description/status/issuetype/priority/labels/components/assignee/reporter/created/updated/resolution/project. Pass \"*all\" for every field. Include \"comment\" to get comments in fields.comment.comments."}, "fieldsByKeys": {"type": "boolean", "description": "Whether fields in the request are referenced by field keys instead of IDs."}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "properties": {"type": "array", "items": {"type": "string"}, "description": "Issue property keys to include in the response."}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "updateHistory": {"type": "boolean", "description": "Whether to update the user's recently viewed projects/history for this issue request."}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueRemoteIssueLinks", "description": "Get remote links", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "globalId": {"type": "string"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getJiraIssueTypeMetaWithFields", "description": "Get field metadata", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "issueTypeId": {"type": "string"}, "maxResults": {"type": "number"}, "projectIdOrKey": {"type": "string"}, "requiredFieldsOnly": {"type": "boolean", "description": "When true (default), returns only required fields to create an issue of this type. Set false for all fields."}, "startAt": {"type": "number"}}, "required": ["cloudId", "projectIdOrKey", "issueTypeId"]}}, {"name": "getJiraProjectIssueTypesMetadata", "description": "Get issue types", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "maxResults": {"type": "number", "default": 50, "maximum": 200}, "projectIdOrKey": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId", "projectIdOrKey"]}}, {"name": "getPagesInConfluenceSpace", "description": "Get pages or blog posts in a space", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "sort": {"type": "string", "enum": ["id", "-id", "created-date", "-created-date", "modified-date", "-modified-date", "title", "-title"]}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "archived", "deleted", "trashed"]}, "title": {"type": "string", "description": "Title filter"}}, "required": ["cloudId", "spaceId"]}}, {"name": "getTransitionsForJiraIssue", "description": "Get transitions", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expand": {"type": "string"}, "includeUnavailableTransitions": {"type": "boolean"}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "skipRemoteOnlyCondition": {"type": "boolean"}, "sortByOpsBarAndStatus": {"type": "boolean"}, "transitionId": {"type": "string"}}, "required": ["cloudId", "issueIdOrKey"]}}, {"name": "getVisibleJiraProjects", "description": "Get projects", "parameters": {"type": "object", "additionalProperties": false, "properties": {"action": {"type": "string", "enum": ["view", "browse", "edit", "create"], "default": "create"}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "expandIssueTypes": {"type": "boolean", "default": true}, "maxResults": {"type": "number", "default": 50, "maximum": 50}, "searchString": {"type": "string"}, "startAt": {"type": "number", "default": 0}}, "required": ["cloudId"]}}, {"name": "lookupJiraAccountId", "description": "Lookup user IDs", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "searchString": {"type": "string"}}, "required": ["cloudId", "searchString"]}}, {"name": "search", "description": "Search Jira and Confluence using Rovo Search, ALWAYS use this tool to search for Jira and Confluence content unless the word CQL or JQL is used in the context", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Not needed for this tool -- cloudId is derived from your access token automatically"}, "query": {"type": "string", "description": "The search query to use for Rovo Search"}}, "required": ["query"]}}, {"name": "searchConfluenceUsingCql", "description": "Search Confluence content (pages, blog posts, comments, attachments) using CQL (Confluence Query Language). CQL is specific to Confluence and is not interchangeable with JQL.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "cql": {"type": "string", "description": "CQL query string. Common fields: title, text, space, type, creator, contributor, label, ancestor, parent, lastmodified, created, mention, watcher, space.title, space.key. Use space key (not name) for the space field; use space.title ~ \"name\" for name search. Content types: page, blogpost, comment, attachment. Escape inner quotes with backslash."}, "cqlcontext": {"type": "string", "description": "CQL context for narrowing search scope (e.g., spaceKey)"}, "cursor": {"type": "string", "description": "Pagination cursor"}, "expand": {"type": "string", "description": "Properties to expand"}, "limit": {"type": "number", "description": "Max results (default: 25, max: 250)"}, "next": {"type": "boolean", "description": "Include next page link"}, "prev": {"type": "boolean", "description": "Include previous page link"}}, "required": ["cloudId", "cql"]}}, {"name": "searchJiraIssuesUsingJql", "description": "Search issues with JQL, total counts only when explicitly requested.", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "array", "items": {"type": "string"}, "description": "Issue fields to return. Defaults as in getJiraIssue. Pass \"*all\" for every field. Include \"comment\" for comments."}, "jql": {"type": "string", "description": "JQL query"}, "maxResults": {"type": "number", "maximum": 100, "description": "Max (50-100)"}, "nextPageToken": {"type": "string", "description": "Page token"}, "responseContentFormat": {"type": "string", "enum": ["markdown", "adf"]}, "searchResultMode": {"type": "string", "enum": ["issues", "count", "all"], "description": "Default \"issues\". Never count for normal search or if nextPageToken used. Use \"count\" only when no trusted count exists and needed. Use \"all\" only if both required."}}, "required": ["cloudId", "jql"]}}, {"name": "transitionJiraIssue", "description": "Transition issue status", "parameters": {"type": "object", "additionalProperties": false, "properties": {"cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "fields": {"type": "object"}, "historyMetadata": {"type": "object", "additionalProperties": false, "properties": {"activityDescription": {"type": "string"}, "activityDescriptionKey": {"type": "string"}, "actor": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "cause": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "description": {"type": "string"}, "descriptionKey": {"type": "string"}, "emailDescription": {"type": "string"}, "emailDescriptionKey": {"type": "string"}, "extraData": {"type": "object", "additionalProperties": {"type": "string"}}, "generator": {"type": "object", "additionalProperties": false, "properties": {"avatarUrl": {"type": "string"}, "displayName": {"type": "string"}, "id": {"type": "string"}, "type": {"type": "string"}, "url": {"type": "string"}}}, "type": {"type": "string"}}}, "issueIdOrKey": {"type": "string", "description": "Issue ID or key (e.g., PROJ-123 or 10000)"}, "transition": {"type": "object", "additionalProperties": false, "properties": {"id": {"type": "string"}}, "required": ["id"]}, "update": {"type": "object", "additionalProperties": {"type": "array", "items": {"type": "object"}}}}, "required": ["cloudId", "issueIdOrKey", "transition"]}}, {"name": "updateConfluencePage", "description": "Update a Confluence page or blog post", "parameters": {"type": "object", "additionalProperties": false, "properties": {"body": {"type": "string", "description": "Same HTML/markdown/adf body format as createConfluencePage."}, "cloudId": {"type": "string", "description": "Cloud ID (UUID or site URL)"}, "contentFormat": {"type": "string", "enum": ["html", "markdown", "adf"]}, "contentType": {"type": "string", "enum": ["page", "blog"], "default": "page"}, "includeBody": {"type": "boolean", "default": false, "description": "If true, include the page body in the response; if false, omit to reduce payload size."}, "pageId": {"type": "string", "description": "Page or blog post ID, or a Confluence tiny link ID"}, "parentId": {"type": "string", "description": "Parent page ID (pages only, ignored for blogs)"}, "spaceId": {"type": "string", "description": "Space ID"}, "status": {"type": "string", "enum": ["current", "draft"], "default": "current"}, "title": {"type": "string", "description": "New title"}, "versionMessage": {"type": "string", "description": "Version message"}}, "required": ["cloudId", "pageId", "body"]}}]} {"prompt": "Necesito una card de producto para un observatorio astronomico: foto arriba, titulo, precio y boton, de 880x180 y con esquinas redondeadas.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Crea un pull request en 'portal-proveedores' desde la rama 'hotfix/zona-horaria-75' hacia main, titulo 'widget de clima 327'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Hazme el encabezado y el pie de un vivero de plantas de interior con la misma paleta retro setentoso y acento #5b21b6.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Fijate si quedo algun comentario sin responder en 'servicio-facturacion' de esta semana.", "mcp": "docmost", "expect": "tool-call-valido", "tools": [{"name": "check_new_comments", "description": "Check for new comments across pages in a space since a given timestamp. Optionally scope to a page subtree (folder). Returns only comments created after the specified time.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string", "description": "Space ID to check for new comments"}, "since": {"type": "string", "description": "ISO 8601 timestamp — only return comments created after this time (e.g. '2026-03-10T00:00:00Z')"}, "parentPageId": {"type": "string", "description": "Optional root page ID to scope the check to a subtree (folder). Only pages under this parent will be checked."}}, "required": ["spaceId", "since"]}}, {"name": "create_comment", "description": "Create a new comment on a page. Content is provided as Markdown and automatically converted to the required format.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to comment on"}, "content": {"type": "string", "description": "Comment content in Markdown format"}, "parentCommentId": {"type": "string", "description": "Parent comment ID to create a reply (max 2 nesting levels)"}, "selection": {"type": "string", "description": "Selected text for inline comments (max 250 chars). Required when type is 'inline'."}, "type": {"type": "string", "enum": ["page", "inline"], "description": "Comment type: 'page' for general page comment (default), 'inline' for text selection comment"}}, "required": ["pageId", "content"]}}, {"name": "create_page", "description": "Create a new page with content (automatically moves it to the correct hierarchy).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"title": {"type": "string", "description": "Title of the page"}, "content": {"type": "string", "description": "Markdown content"}, "spaceId": {"type": "string"}, "parentPageId": {"type": "string", "description": "Optional parent page ID to nest under"}}, "required": ["title", "content", "spaceId"]}}, {"name": "delete_comment", "description": "Delete a comment. Only the comment creator or space admin can delete it.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to delete"}}, "required": ["commentId"]}}, {"name": "delete_page", "description": "Delete a single page by ID.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "delete_pages", "description": "Delete multiple pages at once. Useful for cleanup.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageIds": {"type": "array", "items": {"type": "string"}}}, "required": ["pageIds"]}}, {"name": "get_comment", "description": "Get a single comment by ID with content as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment"}}, "required": ["commentId"]}}, {"name": "get_page", "description": "Get details and content of a specific page by ID", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}}, "required": ["pageId"]}}, {"name": "get_workspace", "description": "Get the current Docmost workspace", "parameters": {"type": "object", "properties": {}}}, {"name": "list_comments", "description": "List all comments on a page. Returns comments with content converted to Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to list comments for"}}, "required": ["pageId"]}}, {"name": "list_groups", "description": "List all available groups in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "list_pages", "description": "List pages in a space ordered by updatedAt (descending).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"spaceId": {"type": "string"}}}}, {"name": "list_spaces", "description": "List all available spaces in Docmost", "parameters": {"type": "object", "properties": {}}}, {"name": "move_page", "description": "Move a page to a new parent (nesting) or root. Essential for organizing pages created via 'import_page'.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string"}, "parentPageId": {"type": ["string", "null"], "description": "Target parent page ID. Pass 'null' or empty string to move to root."}, "position": {"type": "string", "description": "Optional position string (5-12 chars). Defaults to 'a00000' (end) if omitted."}}, "required": ["pageId"]}}, {"name": "search", "description": "Search for pages and content.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"query": {"type": "string", "description": "Search query"}, "spaceId": {"type": "string", "description": "Optional space ID to filter by"}}, "required": ["query"]}}, {"name": "update_comment", "description": "Update an existing comment's content. Only the comment creator can update it. Content is provided as Markdown.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"commentId": {"type": "string", "description": "ID of the comment to update"}, "content": {"type": "string", "description": "New comment content in Markdown format"}}, "required": ["commentId", "content"]}}, {"name": "update_page", "description": "Update a page's content and/or title via realtime collaboration (preserves Page ID and history).", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": {"pageId": {"type": "string", "description": "ID of the page to update"}, "content": {"type": "string", "description": "New Markdown content"}, "title": {"type": "string", "description": "Optional new title"}}, "required": ["pageId", "content"]}, "notes": "Requiere SIEMPRE la fila separadora GFM (| --- | --- |) en tablas markdown, con cada fila en su propia linea -- sin eso el editor colapsa las filas en un parrafo ilegible (bug real documentado en el plan principal)."}]} {"prompt": "Recorta el shape 'badge-descuento-93' contra un circulo con una operacion booleana de interseccion.", "mcp": "penpot", "expect": "api-verificada", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Busca commits recientes en 'servicio-facturacion' que mencionen 'historial de pedidos 387'.", "mcp": "gitea", "expect": "tool-call-valido", "tools": [{"name": "actions_config_read", "description": "Read Actions secrets and variables.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list_repo_secrets", "list_org_secrets", "list_repo_variables", "get_repo_variable", "list_org_variables", "get_org_variable"]}, "name": {"type": "string", "description": "for get methods"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "actions_config_write", "description": "Write Actions secrets and variables: upsert, create, update, delete.", "parameters": {"type": "object", "properties": {"data": {"type": "string", "description": "secret value (upsert)"}, "description": {"type": "string"}, "method": {"type": "string", "enum": ["upsert_repo_secret", "delete_repo_secret", "upsert_org_secret", "delete_org_secret", "create_repo_variable", "update_repo_variable", "delete_repo_variable", "create_org_variable", "update_org_variable", "delete_org_variable"]}, "name": {"type": "string", "description": "secret or variable name"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}, "value": {"type": "string", "description": "variable value"}}, "required": ["method"]}}, {"name": "actions_run_read", "description": "Read Actions workflows, runs, jobs, and logs.", "parameters": {"type": "object", "properties": {"job_id": {"type": "number", "description": "for log methods"}, "max_bytes": {"type": "number", "default": 65536, "minimum": 1024, "description": "max log bytes"}, "method": {"type": "string", "enum": ["list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job_log_preview", "download_job_log"]}, "output_path": {"type": "string", "description": "for 'download_job_log'"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'get_run'/'list_run_jobs'"}, "status": {"type": "string", "description": "filter for 'list_runs'/'list_jobs'"}, "tail_lines": {"type": "number", "default": 200, "minimum": 1, "description": "log tail lines"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'get_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "actions_run_write", "description": "Write Actions runs: dispatch, cancel, rerun.", "parameters": {"type": "object", "properties": {"inputs": {"type": "object", "properties": {}, "description": "for 'dispatch_workflow'"}, "method": {"type": "string", "enum": ["dispatch_workflow", "cancel_run", "rerun_run"]}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch or tag (for 'dispatch_workflow')"}, "repo": {"type": "string", "description": "repo name"}, "run_id": {"type": "number", "description": "for 'cancel_run'/'rerun_run'"}, "workflow_id": {"type": "string", "description": "ID or filename (for 'dispatch_workflow')"}}, "required": ["method", "owner", "repo"]}}, {"name": "create_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "old_branch": {"type": "string", "description": "source branch (default: repo default)"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "create_or_update_file", "description": "Create or update a file (provide sha to update an existing file).", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "content": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "new_branch_name": {"type": "string", "description": "new branch (create only)"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "existing file SHA (omit to create)"}}, "required": ["owner", "repo", "path", "content", "message", "branch_name"]}}, {"name": "create_release", "description": "", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}, "title": {"type": "string"}}, "required": ["owner", "repo", "tag_name", "target", "title"]}}, {"name": "create_repo", "description": "", "parameters": {"type": "object", "properties": {"auto_init": {"type": "boolean"}, "default_branch": {"type": "string"}, "description": {"type": "string"}, "gitignores": {"type": "string"}, "issue_labels": {"type": "string"}, "license": {"type": "string"}, "name": {"type": "string"}, "object_format_name": {"type": "string", "enum": ["sha1", "sha256"]}, "organization": {"type": "string", "description": "defaults to personal account"}, "private": {"type": "boolean"}, "readme": {"type": "string"}, "template": {"type": "boolean"}, "trust_model": {"type": "string", "enum": ["default", "collaborator", "committer", "collaboratorcommitter"]}}, "required": ["name"]}}, {"name": "create_tag", "description": "", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "tag message"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}, "target": {"type": "string", "description": "commitish"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "delete_branch", "description": "", "parameters": {"type": "object", "properties": {"branch": {"type": "string"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "branch"]}}, {"name": "delete_file", "description": "", "parameters": {"type": "object", "properties": {"branch_name": {"type": "string"}, "message": {"type": "string", "description": "commit message"}, "owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "path", "message", "branch_name", "sha"]}}, {"name": "delete_release", "description": "", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "delete_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "fork_repo", "description": "", "parameters": {"type": "object", "properties": {"name": {"type": "string", "description": "fork name"}, "organization": {"type": "string", "description": "target org"}, "repo": {"type": "string"}, "user": {"type": "string", "description": "owner of source repo"}}, "required": ["user", "repo"]}}, {"name": "get_commit", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string"}}, "required": ["owner", "repo", "sha"]}}, {"name": "get_dir_contents", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_file_contents", "description": "Get file content and metadata", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "path": {"type": "string"}, "ref": {"type": "string", "description": "branch, tag, or commit SHA"}, "repo": {"type": "string", "description": "repo name"}, "withLines": {"type": "boolean", "description": "return numbered lines"}}, "required": ["owner", "repo", "ref", "path"]}}, {"name": "get_gitea_mcp_server_version", "description": "", "parameters": {"type": "object", "properties": {}}}, {"name": "get_latest_release", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "get_me", "description": "Get current user", "parameters": {"type": "object", "properties": {}}}, {"name": "get_release", "description": "Get a release by ID", "parameters": {"type": "object", "properties": {"id": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo", "id"]}}, {"name": "get_repository_tree", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "recursive": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "tree_sha": {"type": "string", "description": "SHA, branch, or tag"}}, "required": ["owner", "repo", "tree_sha"]}}, {"name": "get_tag", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "tag_name": {"type": "string"}}, "required": ["owner", "repo", "tag_name"]}}, {"name": "get_user_orgs", "description": "List current user's organizations", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}}}}, {"name": "issue_read", "description": "Read issue: details, comments, or labels.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["get", "get_comments", "get_labels"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo", "issue_number"]}}, {"name": "issue_write", "description": "Write issues: create, update, manage comments and labels.", "parameters": {"type": "object", "properties": {"assignees": {"type": "array", "items": {"type": "string"}}, "body": {"type": "string", "description": "required for 'create'/'add_comment'/'edit_comment'"}, "commentID": {"type": "number", "description": "for 'edit_comment'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "issue_number": {"type": "number", "description": "required except for 'create'"}, "label_id": {"type": "number", "description": "for 'remove_label'"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "method": {"type": "string", "enum": ["create", "update", "add_comment", "edit_comment", "add_labels", "remove_label", "replace_labels", "clear_labels"]}, "milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "ref": {"type": "string", "description": "branch to associate"}, "remove_deadline": {"type": "boolean"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "title": {"type": "string", "description": "required for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "label_read", "description": "Read repo or org labels.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "label ID (for 'get_repo_label')"}, "method": {"type": "string", "enum": ["list_repo_labels", "get_repo_label", "list_org_labels"]}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "label_write", "description": "Write labels (repo or org): create, edit, delete.", "parameters": {"type": "object", "properties": {"color": {"type": "string", "description": "hex (#RRGGBB); required for create"}, "description": {"type": "string"}, "exclusive": {"type": "boolean", "description": "exclusive (org only)"}, "id": {"type": "number", "description": "for edit/delete"}, "is_archived": {"type": "boolean", "description": "archived (repo only)"}, "method": {"type": "string", "enum": ["create_repo_label", "edit_repo_label", "delete_repo_label", "create_org_label", "edit_org_label", "delete_org_label"]}, "name": {"type": "string", "description": "required for create"}, "org": {"type": "string", "description": "for org methods"}, "owner": {"type": "string", "description": "for repo methods"}, "repo": {"type": "string", "description": "for repo methods"}}, "required": ["method"]}}, {"name": "list_branches", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_commits", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "path": {"type": "string", "description": "only commits touching this path"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sha": {"type": "string", "description": "starting SHA or branch"}}, "required": ["owner", "repo"]}}, {"name": "list_issues", "description": "", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "labels": {"type": "array", "items": {"type": "string"}, "description": "label name filter"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "state": {"type": "string", "default": "all"}}, "required": ["owner", "repo"]}}, {"name": "list_my_repos", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}}}}, {"name": "list_org_repos", "description": "", "parameters": {"type": "object", "properties": {"org": {"type": "string"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 100, "minimum": 1, "description": "results per page"}}, "required": ["org"]}}, {"name": "list_pull_requests", "description": "", "parameters": {"type": "object", "properties": {"milestone": {"type": "number"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "sort": {"type": "string", "default": "recentupdate", "enum": ["oldest", "recentupdate", "leastupdate", "mostcomment", "leastcomment", "priority"]}, "state": {"type": "string", "default": "all", "enum": ["open", "closed", "all"]}}, "required": ["owner", "repo"]}}, {"name": "list_releases", "description": "", "parameters": {"type": "object", "properties": {"is_draft": {"type": "boolean"}, "is_pre_release": {"type": "boolean"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "list_tags", "description": "", "parameters": {"type": "object", "properties": {"owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 20, "minimum": 1, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["owner", "repo"]}}, {"name": "milestone_read", "description": "Read milestones: get one or list.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "for 'get'"}, "method": {"type": "string", "enum": ["get", "list"]}, "name": {"type": "string", "description": "name filter (for 'list')"}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "default": "all"}}, "required": ["method", "owner", "repo"]}}, {"name": "milestone_write", "description": "Write milestones: create, update, delete.", "parameters": {"type": "object", "properties": {"description": {"type": "string"}, "due_on": {"type": "string", "description": "due date"}, "id": {"type": "number", "description": "for 'update'/'delete'"}, "method": {"type": "string", "enum": ["create", "update", "edit", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "state": {"type": "string", "enum": ["open", "closed"]}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}, {"name": "notification_read", "description": "Read notifications: list (optionally scoped to a repo) or get a thread by ID.", "parameters": {"type": "object", "properties": {"before": {"type": "string", "description": "updated before ISO 8601"}, "id": {"type": "number", "description": "thread ID (for 'get')"}, "method": {"type": "string", "enum": ["list", "get"]}, "owner": {"type": "string", "description": "scope 'list' to a repo"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "scope 'list' to a repo"}, "since": {"type": "string", "description": "updated after ISO 8601"}, "status": {"type": "string", "enum": ["unread", "read", "pinned"]}, "subject_type": {"type": "string", "enum": ["Issue", "Pull", "Commit", "Repository"]}}, "required": ["method"]}}, {"name": "notification_write", "description": "Mark a notification or all notifications as read.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "thread ID (for 'mark_read')"}, "last_read_at": {"type": "string", "description": "ISO 8601; defaults to now"}, "method": {"type": "string", "enum": ["mark_read", "mark_all_read"]}, "owner": {"type": "string", "description": "scope 'mark_all_read' to a repo"}, "repo": {"type": "string", "description": "scope 'mark_all_read' to a repo"}}, "required": ["method"]}}, {"name": "package_read", "description": "Read package registry: list packages (one entry per version, filter via 'q'/'type'), list versions, or get a version.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "list_versions", "get"]}, "name": {"type": "string", "description": "slashes auto-encoded; required except 'list'"}, "owner": {"type": "string", "description": "user or org"}, "page": {"type": "number", "default": 1, "minimum": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "minimum": 1, "description": "results per page"}, "q": {"type": "string", "description": "search query"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic; required except 'list'"}, "version": {"type": "string", "description": "for 'get'"}}, "required": ["method", "owner"]}}, {"name": "package_write", "description": "Delete a package version (irreversible).", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["delete"]}, "name": {"type": "string", "description": "slashes auto-encoded"}, "owner": {"type": "string", "description": "user or org"}, "type": {"type": "string", "description": "container/npm/maven/pypi/cargo/generic"}, "version": {"type": "string"}}, "required": ["method", "owner", "type", "name", "version"]}}, {"name": "pull_request_read", "description": "Read pull request: details, diff, changed files, head commit status, reviews.", "parameters": {"type": "object", "properties": {"binary": {"type": "boolean", "description": "include binary diff"}, "method": {"type": "string", "enum": ["get", "get_diff", "get_files", "get_status", "get_reviews", "get_review", "get_review_comments"]}, "owner": {"type": "string", "description": "repo owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "for 'get_review'/'get_review_comments'"}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_review_write", "description": "Write PR reviews: create, submit, delete, dismiss.", "parameters": {"type": "object", "properties": {"body": {"type": "string"}, "comments": {"type": "array", "description": "inline comments (for 'create')", "items": {"type": "object", "properties": {"body": {"type": "string"}, "new_line_num": {"type": "number", "description": "new-file line (additions)"}, "old_line_num": {"type": "number", "description": "old-file line (deletions)"}, "path": {"type": "string"}}}}, "commit_id": {"type": "string", "description": "for 'create'"}, "message": {"type": "string", "description": "dismissal reason"}, "method": {"type": "string", "enum": ["create", "submit", "delete", "dismiss"]}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number"}, "repo": {"type": "string", "description": "repo name"}, "review_id": {"type": "number", "description": "required except for 'create'"}, "state": {"type": "string", "enum": ["APPROVED", "REQUEST_CHANGES", "COMMENT", "PENDING"]}}, "required": ["method", "owner", "repo", "pull_number"]}}, {"name": "pull_request_write", "description": "Write pull requests: create, update, close, reopen, merge, update branch from base, manage reviewers.", "parameters": {"type": "object", "properties": {"allow_maintainer_edit": {"type": "boolean", "description": "for 'update'"}, "assignee": {"type": "string", "description": "for 'update'"}, "assignees": {"type": "array", "items": {"type": "string"}, "description": "for 'update'"}, "base": {"type": "string", "description": "base branch (required for 'create')"}, "body": {"type": "string", "description": "required for 'create'; optional for 'update'"}, "deadline": {"type": "string", "description": "ISO 8601"}, "delete_branch": {"type": "boolean", "description": "for 'merge'"}, "draft": {"type": "boolean", "description": "uses 'WIP: ' title prefix"}, "force_merge": {"type": "boolean", "description": "merge even if checks fail"}, "head": {"type": "string", "description": "head branch (required for 'create')"}, "head_commit_id": {"type": "string", "description": "expected head SHA for conflict detection"}, "labels": {"type": "array", "items": {"type": "number"}, "description": "label IDs"}, "merge_style": {"type": "string", "default": "merge", "enum": ["merge", "rebase", "rebase-merge", "squash", "fast-forward-only"], "description": "for 'merge'"}, "merge_when_checks_succeed": {"type": "boolean", "description": "for 'merge'"}, "message": {"type": "string", "description": "merge commit message or dismissal reason"}, "method": {"type": "string", "enum": ["create", "update", "close", "reopen", "merge", "update_branch", "add_reviewers", "remove_reviewers"]}, "milestone": {"type": "number", "description": "for 'update'"}, "owner": {"type": "string", "description": "repo owner"}, "pull_number": {"type": "number", "description": "required except for 'create'"}, "remove_deadline": {"type": "boolean", "description": "for 'update'"}, "repo": {"type": "string", "description": "repo name"}, "reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "state": {"type": "string", "description": "for 'update'", "enum": ["open", "closed"]}, "team_reviewers": {"type": "array", "items": {"type": "string"}, "description": "for 'add_reviewers'/'remove_reviewers'"}, "title": {"type": "string", "description": "required for 'create'; optional for 'update'/'merge'"}}, "required": ["method", "owner", "repo"]}}, {"name": "search_issues", "description": "Search issues and PRs across repositories", "parameters": {"type": "object", "properties": {"labels": {"type": "string", "description": "comma-separated"}, "owner": {"type": "string", "description": "filter by owner"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "state": {"type": "string", "enum": ["open", "closed", "all"]}, "type": {"type": "string", "enum": ["issues", "pulls"]}}, "required": ["query"]}}, {"name": "search_org_teams", "description": "", "parameters": {"type": "object", "properties": {"includeDescription": {"type": "boolean"}, "org": {"type": "string"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["org", "query"]}}, {"name": "search_repos", "description": "", "parameters": {"type": "object", "properties": {"isArchived": {"type": "boolean"}, "isPrivate": {"type": "boolean"}, "keywordInDescription": {"type": "boolean"}, "keywordIsTopic": {"type": "boolean"}, "order": {"type": "string"}, "ownerID": {"type": "number"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}, "sort": {"type": "string"}}, "required": ["query"]}}, {"name": "search_users", "description": "", "parameters": {"type": "object", "properties": {"page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "query": {"type": "string"}}, "required": ["query"]}}, {"name": "timetracking_read", "description": "Read time tracking: issue times, repo times, active stopwatches, your tracked times.", "parameters": {"type": "object", "properties": {"issue_number": {"type": "number", "description": "for 'list_issue_times'"}, "method": {"type": "string", "enum": ["list_issue_times", "list_repo_times", "get_my_stopwatches", "get_my_times"]}, "owner": {"type": "string", "description": "for list_* methods"}, "page": {"type": "number", "default": 1, "description": "page"}, "per_page": {"type": "number", "default": 30, "description": "results per page"}, "repo": {"type": "string", "description": "for list_* methods"}}, "required": ["method"]}}, {"name": "timetracking_write", "description": "Write time tracking: stopwatches and entries.", "parameters": {"type": "object", "properties": {"id": {"type": "number", "description": "entry ID (for 'delete_time')"}, "issue_number": {"type": "number"}, "method": {"type": "string", "enum": ["start_stopwatch", "stop_stopwatch", "delete_stopwatch", "add_time", "delete_time"]}, "owner": {"type": "string", "description": "repo owner"}, "repo": {"type": "string", "description": "repo name"}, "time": {"type": "number", "description": "seconds (for 'add_time')"}}, "required": ["method"]}}, {"name": "wiki_read", "description": "Read wiki: list pages, get content, revision history.", "parameters": {"type": "object", "properties": {"method": {"type": "string", "enum": ["list", "get", "get_revisions"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'get'/'get_revisions'"}, "repo": {"type": "string", "description": "repo name"}}, "required": ["method", "owner", "repo"]}}, {"name": "wiki_write", "description": "Write wiki pages: create, update, delete.", "parameters": {"type": "object", "properties": {"content": {"type": "string", "description": "for 'create'/'update'"}, "message": {"type": "string", "description": "commit message"}, "method": {"type": "string", "enum": ["create", "update", "delete"]}, "owner": {"type": "string", "description": "repo owner"}, "pageName": {"type": "string", "description": "for 'update'/'delete'"}, "repo": {"type": "string", "description": "repo name"}, "title": {"type": "string", "description": "for 'create'"}}, "required": ["method", "owner", "repo"]}}]} {"prompt": "Armame un cuadro comparativo de 388 columnas para una heladeria artesanal, encabezado en #c2410c y filas alternadas.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]} {"prompt": "Busca en 'sincronizador-offline' el codigo que define la funcion 'linea de tiempo 122'.", "mcp": "github-personal", "expect": "tool-call-valido", "tools": [{"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 :\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"]}}]} {"prompt": "Hero de 880x420 para un club de ajedrez con foto de fondo, un velo oscuro encima y titular en blanco.", "mcp": "penpot", "expect": "diseno-penpot", "tools": [{"name": "execute_code", "description": "Executes JavaScript code in the Penpot plugin context.\nIMPORTANT: Before using this tool, make sure you have read the 'Penpot High-Level Overview' and know which Penpot API functionality is necessary and how to use it.\nYou have access two main objects: `penpot` (the Penpot API, of type `Penpot`), `penpotUtils`, and `storage`.\n`storage` is an object in which arbitrary data can be stored, simply by adding a new attribute; stored attributes can be referenced in future calls to this tool, so any intermediate results that could come in handy later should be stored in `storage` instead of just a fleeting variable; you can also store functions and thus build up a library).\nThink of the code being executed as the body of a function: The tool call returns whatever you return in the applicable `return` statement, if any.\nIf an exception occurs, the exception's message will be returned to you.\nAny output that you generate via the `console` object will be returned to you separately; so you may use itto track what your code is doing, but you should *only* do so only if there is an ACTUAL NEED for this! VERY IMPORTANT: Don't use logging prematurely! NEVER log the data you are returning, as you will otherwise receive it twice!\nVERY IMPORTANT: In general, try a simple approach first, and only if it fails, try more complex code that involves handling different cases (in particular error cases) and that applies logging.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"code": {"type": "string", "minLength": 1, "description": "The JavaScript code to execute in the plugin context."}}, "required": ["code"]}}, {"name": "export_shape", "description": "Exports a shape (or a shape's image fill) from the Penpot design to a PNG or SVG image, such that you can get an impression of what it looks like. ", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"shapeId": {"type": "string", "minLength": 1, "description": "Identifier of the shape to export. Use the special identifier 'selection' to export the first shape currently selected by the user."}, "format": {"type": "string", "enum": ["svg", "png"], "default": "png", "description": "The output format, either 'png' (default) or 'svg'."}, "mode": {"type": "string", "enum": ["shape", "fill"], "default": "shape", "description": "The export mode: either 'shape' (full shape as it appears in the design, including descendants; the default) or 'fill' (export the raw image that is used as a fill for the shape; PNG format only)"}}, "required": ["shapeId"]}, "notes": "En despliegues con filesystem habilitado, el schema oficial incluye ademas un parametro opcional 'filePath' (para guardar el export a disco) y la descripcion agrega 'Alternatively, you can save it to a file.'. En este deployment (remoto/multi-usuario) 'filePath' esta eliminado del schema y esa frase no aparece -- ver PENPOT_DEPLOYMENT_NOTES.md."}, {"name": "high_level_overview", "description": "Returns basic high-level instructions on the usage of Penpot-related tools and the Penpot API. If you have already read the 'Penpot High-Level Overview', you must not call this tool.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}, {"name": "penpot_api_info", "description": "Retrieves Penpot API documentation for types and their members.Be sure to read the 'Penpot High-Level Overview' first.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"type": {"type": "string", "minLength": 1}, "member": {"type": "string"}}, "required": ["type"]}}]}