From a60d0751cf8b4fe485c2c9a12dd230f689f02132 Mon Sep 17 00:00:00 2001 From: Alejandro Lembke Barrientos Date: Thu, 30 Jul 2026 17:16:05 +0000 Subject: [PATCH] Phase 6.3: fix the augmentation, close the holdout leak, stop rewarding invented parameters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dataset build (05, 06): perturb_value is gone. It rewrote only tool_calls.arguments and left the tool results and the final answer saying something else, which is how data/train.jsonl ended up with 30 self-contradictory examples where the call says issue_number 82 and the answer says issue #77. Variation now comes from hand-written meta.paraphrases, or from meta.variation applied atomically across every field of the example at once. Nothing is substituted unless the seed declares it: guessing which number in a string is safe to change is what produced the contradictions in the first place. Prefix injection survives only as a fallback and only where the verb form can actually be conjugated, and there is a hard assert that no user turn matches the broken "Necesito que ¿Podés..." shape that 68 v1 prompts had. The penpot bucket is exempt from substitution entirely, since its payloads are code. Also asserts the bucket cannot collapse (verified: the old seeds give 320 rows from 83 unique trajectories and the build now fails) and scans for forbidden API patterns by importing them from the linter, so there is one source of truth. 06 now actually exits 1 on over-length rows. It printed [FILTERED], incremented a counter, and left the row in the file, which 10_train.py then trained on since it has no max_seq_length and batch 1. Gate 2 (32): reject any argument key absent from the schema, as its own failure category. It only checked required fields, so an invented scale or filePath passed - the gate was actively rewarding the exact behaviour this phase removes. Verified: export_shape with scale=2 now fails as unknown_argument, while a valid call still passes. Holdout (31, 35): rebalanced to penpot 60 / 35 each, added 20 real design templates, and replaced the full-string equality check with 6-gram shingles. Measured: a light paraphrase of a train.jsonl prompt scores 43% overlap and now fails the build, where the old check let it through at "not equal". Value pools are asserted disjoint from the corpus. The "2x resolution" template stays, relabelled as an invented-argument probe now that gate 2 can detect one; the createBoolean template stays because the API is real and the new B2 seeds teach it. Also dedupes: the old holdout had 15 duplicate prompts out of 200, i.e. 15 wasted measurements. Note: rebalancing the holdout means the 192/200 gate 2 baseline from phase 5 no longer applies to it, so that baseline has to be re-measured against production on the new file before it can be compared to. Gate 3 (33): 11 content checklists for the non-obvious conventions of the other MCPs - GFM table separators in Docmost, the update_page staleness retry, commit message shape, never merging the PR, dict-not-XML tool arguments. That is the most likely regression no gate currently covers. Mix builder: added the anti-collapse guard, so 420 new-portion rows that are really 96 trajectories repeated cannot pass unnoticed. --- data/holdout_penpot_design.jsonl | 60 ++ data/holdout_prompts.jsonl | 400 ++++++------ scripts/05_build_dataset.py | 711 ++++++++++++++++++++-- scripts/06_validate_dataset.py | 140 ++++- scripts/07_build_lora2_mix.py | 29 + scripts/31_build_holdout_prompts.py | 481 +++++++++++---- scripts/32_gate2_toolcalls.py | 88 ++- scripts/33_gate3_adherencia.py | 250 ++++++++ scripts/35_build_penpot_design_holdout.py | 289 +++++++++ 9 files changed, 2046 insertions(+), 402 deletions(-) create mode 100644 data/holdout_penpot_design.jsonl create mode 100644 scripts/35_build_penpot_design_holdout.py diff --git a/data/holdout_penpot_design.jsonl b/data/holdout_penpot_design.jsonl new file mode 100644 index 0000000..646747a --- /dev/null +++ b/data/holdout_penpot_design.jsonl @@ -0,0 +1,60 @@ +{"id": "pd-001", "prompt": "Hazme una landing completa de una academia de tango, 1180 px de ancho, con encabezado, hero, tres beneficios, testimonios y pie. Ponele color, nada de cajas grises.", "categoria": "composicion_multiseccion", "expect": "composicion-multiseccion-con-color"} +{"id": "pd-002", "prompt": "Necesito la home de un estudio de doblaje en 1180 px: hero con foto de fondo, una franja de numeros y un bloque final de contacto. Paleta a tu criterio, que sea vibrante.", "categoria": "composicion_multiseccion", "expect": "composicion-multiseccion-con-color"} +{"id": "pd-003", "prompt": "Armame algo lindo para un museo de maquinas de escribir, una pagina de presentacion. Vos elegis todo.", "categoria": "composicion_multiseccion", "expect": "composicion-multiseccion-con-color"} +{"id": "pd-004", "prompt": "Pagina de precios de un vivero de orquideas de 900 px: encabezado, tres planes con el del medio destacado en #312e81, preguntas frecuentes y pie.", "categoria": "composicion_multiseccion", "expect": "composicion-multiseccion-con-color"} +{"id": "pd-005", "prompt": "Quiero la pantalla principal del panel interno de un vivero de orquideas, 1320 px, con barra lateral, seis tarjetas de indicadores y una tabla de movimientos.", "categoria": "composicion_multiseccion", "expect": "composicion-multiseccion-con-color"} +{"id": "pd-006", "prompt": "Landing de un evento de un laboratorio de analisis de suelos: fecha grande, cuenta regresiva, grilla de oradores y formulario de inscripcion, 1240 px de ancho.", "categoria": "composicion_multiseccion", "expect": "composicion-multiseccion-con-color"} +{"id": "pd-007", "prompt": "Un boton primario y uno secundario para un servicio de reparacion de relojes, ambos con estados normal y deshabilitado, usando #581c87 como acento.", "categoria": "componente", "expect": "componente-con-estilo-explicito"} +{"id": "pd-008", "prompt": "Card de producto para un servicio de reparacion de relojes: foto arriba, titulo en Karla, precio tachado y precio final, y un boton. 320 de ancho.", "categoria": "componente", "expect": "componente-con-estilo-explicito"} +{"id": "pd-009", "prompt": "Hazme una barra de navegacion de una academia de tango de 900x88 con logo, cinco enlaces y un boton de accion a la derecha.", "categoria": "componente", "expect": "componente-con-estilo-explicito"} +{"id": "pd-010", "prompt": "Un aviso de cookies para el sitio de un estudio de doblaje: texto corto, dos botones y fondo #3b0764.", "categoria": "componente", "expect": "componente-con-estilo-explicito"} +{"id": "pd-011", "prompt": "Necesito una tarjeta de perfil de una escuela de circo con avatar circular, nombre, rol y tres datos de contacto.", "categoria": "componente", "expect": "componente-con-estilo-explicito"} +{"id": "pd-012", "prompt": "Necesito una tabla de 1320 px para un vivero de orquideas: encabezado oscuro, cinco filas con fondo alternado y una columna de estado con etiquetas de color.", "categoria": "componente", "expect": "componente-con-estilo-explicito"} +{"id": "pd-013", "prompt": "Pantalla de 390x844 para la app de una consultora de eficiencia energetica: foto real de portada traida de una URL, titulo encima y boton abajo.", "categoria": "imagen", "expect": "imagen-por-uploadmediaurl"} +{"id": "pd-014", "prompt": "Quiero una galeria de cuatro fotos reales de internet en la app de un albergue para perros mayores, formato 360x780, con leyenda en cada una.", "categoria": "imagen", "expect": "imagen-por-uploadmediaurl"} +{"id": "pd-015", "prompt": "Meteme una imagen de fondo en el hero de una escuela de circo y encima un velo oscuro para que se lea el titular en blanco.", "categoria": "imagen", "expect": "imagen-por-uploadmediaurl"} +{"id": "pd-016", "prompt": "Para la ficha de una escuela de circo necesito la foto del producto ocupando toda la tarjeta sin deformarse, 1320 px de ancho.", "categoria": "imagen", "expect": "imagen-por-uploadmediaurl"} +{"id": "pd-017", "prompt": "Fila de tres tarjetas de un estudio de doblaje que se repartan el ancho de 1180 px en partes iguales, con separacion pareja entre ellas.", "categoria": "layout", "expect": "layout-con-sizing-declarado"} +{"id": "pd-018", "prompt": "Grilla de 1180 px con seis casillas para el catalogo de un servicio de reparacion de relojes, tres por fila, todas del mismo alto.", "categoria": "layout", "expect": "layout-con-sizing-declarado"} +{"id": "pd-019", "prompt": "Una columna de una consultora de eficiencia energetica donde el titulo va arriba, el texto en el medio y el boton abajo del todo, y el contenedor se ajusta al contenido.", "categoria": "layout", "expect": "layout-con-sizing-declarado"} +{"id": "pd-020", "prompt": "Pie de pagina de 1180 px para una cooperativa de miel con cuatro columnas de enlaces y una linea final de derechos.", "categoria": "layout", "expect": "layout-con-sizing-declarado"} +{"id": "pd-021", "prompt": "Pantalla de 412x915 de una tienda de kayaks con una lista vertical de siete items, cada uno con icono a la izquierda y texto a la derecha.", "categoria": "layout", "expect": "layout-con-sizing-declarado"} +{"id": "pd-022", "prompt": "En la pagina hay un board de una escuela de circo que quedo con puros rectangulos grises y sin una sola palabra. Convertilo en un diseno de verdad.", "categoria": "reparacion", "expect": "reparacion-sin-grises"} +{"id": "pd-023", "prompt": "Este board de una fabrica de velas de soja tiene todos los textos del mismo tamano y todo el mismo gris. Dale jerarquia y una paleta.", "categoria": "reparacion", "expect": "reparacion-sin-grises"} +{"id": "pd-024", "prompt": "Revisa el board de un albergue para perros mayores que arme yo, decime que esta mal de contraste y arreglalo.", "categoria": "reparacion", "expect": "reparacion-sin-grises"} +{"id": "pd-025", "prompt": "El hero de un laboratorio de analisis de suelos tiene el texto ilegible sobre la foto. Arreglalo sin cambiar la foto.", "categoria": "reparacion", "expect": "reparacion-sin-grises"} +{"id": "pd-026", "prompt": "Antes de tocar nada, fijate en la documentacion de la API como se crea un texto en Penpot y despues poneme un titulo de un albergue para perros mayores en 48 px.", "categoria": "consulta_api", "expect": "consulta-api-antes-de-actuar"} +{"id": "pd-027", "prompt": "Como hago para que un hijo de un board con layout ocupe todo el ancho disponible? Mostramelo aplicado a una seccion de una fabrica de velas de soja.", "categoria": "consulta_api", "expect": "consulta-api-antes-de-actuar"} +{"id": "pd-028", "prompt": "Quiero usar la tipografia Karla en el titulo de una cooperativa de miel. Verifica que quede realmente aplicada, no solo seteada.", "categoria": "consulta_api", "expect": "consulta-api-antes-de-actuar"} +{"id": "pd-029", "prompt": "Guarda la paleta de una academia de tango como colores de la biblioteca del archivo y despues aplicalos a dos formas.", "categoria": "consulta_api", "expect": "consulta-api-antes-de-actuar"} +{"id": "pd-030", "prompt": "Exportame el board de una tienda de kayaks para verlo, y decime si algo quedo fuera de los limites.", "categoria": "consulta_api", "expect": "consulta-api-antes-de-actuar"} +{"id": "pd-031", "prompt": "Hazme una landing completa de una fabrica de velas de soja, 1320 px de ancho, con encabezado, hero, tres beneficios, testimonios y pie. Ponele color, nada de cajas grises.", "categoria": "composicion_multiseccion", "expect": "composicion-multiseccion-con-color"} +{"id": "pd-032", "prompt": "Necesito la home de un vivero de orquideas en 900 px: hero con foto de fondo, una franja de numeros y un bloque final de contacto. Paleta a tu criterio, que sea vibrante.", "categoria": "composicion_multiseccion", "expect": "composicion-multiseccion-con-color"} +{"id": "pd-033", "prompt": "Armame algo lindo para una tienda de kayaks, una pagina de presentacion. Vos elegis todo.", "categoria": "composicion_multiseccion", "expect": "composicion-multiseccion-con-color"} +{"id": "pd-034", "prompt": "Pagina de precios de una cooperativa de miel de 1320 px: encabezado, tres planes con el del medio destacado en #3b0764, preguntas frecuentes y pie.", "categoria": "composicion_multiseccion", "expect": "composicion-multiseccion-con-color"} +{"id": "pd-035", "prompt": "Quiero la pantalla principal del panel interno de un laboratorio de analisis de suelos, 900 px, con barra lateral, seis tarjetas de indicadores y una tabla de movimientos.", "categoria": "composicion_multiseccion", "expect": "composicion-multiseccion-con-color"} +{"id": "pd-036", "prompt": "Landing de un evento de un servicio de reparacion de relojes: fecha grande, cuenta regresiva, grilla de oradores y formulario de inscripcion, 900 px de ancho.", "categoria": "composicion_multiseccion", "expect": "composicion-multiseccion-con-color"} +{"id": "pd-037", "prompt": "Un boton primario y uno secundario para una consultora de eficiencia energetica, ambos con estados normal y deshabilitado, usando #155e75 como acento.", "categoria": "componente", "expect": "componente-con-estilo-explicito"} +{"id": "pd-038", "prompt": "Card de producto para una cooperativa de miel: foto arriba, titulo en Libre Baskerville, precio tachado y precio final, y un boton. 320 de ancho.", "categoria": "componente", "expect": "componente-con-estilo-explicito"} +{"id": "pd-039", "prompt": "Hazme una barra de navegacion de un laboratorio de analisis de suelos de 1180x88 con logo, cinco enlaces y un boton de accion a la derecha.", "categoria": "componente", "expect": "componente-con-estilo-explicito"} +{"id": "pd-040", "prompt": "Un aviso de cookies para el sitio de un estudio de doblaje: texto corto, dos botones y fondo #581c87.", "categoria": "componente", "expect": "componente-con-estilo-explicito"} +{"id": "pd-041", "prompt": "Necesito una tarjeta de perfil de una fabrica de velas de soja con avatar circular, nombre, rol y tres datos de contacto.", "categoria": "componente", "expect": "componente-con-estilo-explicito"} +{"id": "pd-042", "prompt": "Necesito una tabla de 1180 px para una academia de tango: encabezado oscuro, cinco filas con fondo alternado y una columna de estado con etiquetas de color.", "categoria": "componente", "expect": "componente-con-estilo-explicito"} +{"id": "pd-043", "prompt": "Pantalla de 360x780 para la app de una academia de tango: foto real de portada traida de una URL, titulo encima y boton abajo.", "categoria": "imagen", "expect": "imagen-por-uploadmediaurl"} +{"id": "pd-044", "prompt": "Quiero una galeria de cuatro fotos reales de internet en la app de una consultora de eficiencia energetica, formato 412x915, con leyenda en cada una.", "categoria": "imagen", "expect": "imagen-por-uploadmediaurl"} +{"id": "pd-045", "prompt": "Meteme una imagen de fondo en el hero de un museo de maquinas de escribir y encima un velo oscuro para que se lea el titular en blanco.", "categoria": "imagen", "expect": "imagen-por-uploadmediaurl"} +{"id": "pd-046", "prompt": "Para la ficha de un estudio de doblaje necesito la foto del producto ocupando toda la tarjeta sin deformarse, 1240 px de ancho.", "categoria": "imagen", "expect": "imagen-por-uploadmediaurl"} +{"id": "pd-047", "prompt": "Fila de tres tarjetas de un servicio de reparacion de relojes que se repartan el ancho de 1180 px en partes iguales, con separacion pareja entre ellas.", "categoria": "layout", "expect": "layout-con-sizing-declarado"} +{"id": "pd-048", "prompt": "Grilla de 900 px con seis casillas para el catalogo de un vivero de orquideas, tres por fila, todas del mismo alto.", "categoria": "layout", "expect": "layout-con-sizing-declarado"} +{"id": "pd-049", "prompt": "Una columna de un museo de maquinas de escribir donde el titulo va arriba, el texto en el medio y el boton abajo del todo, y el contenedor se ajusta al contenido.", "categoria": "layout", "expect": "layout-con-sizing-declarado"} +{"id": "pd-050", "prompt": "Pie de pagina de 1240 px para una academia de tango con cuatro columnas de enlaces y una linea final de derechos.", "categoria": "layout", "expect": "layout-con-sizing-declarado"} +{"id": "pd-051", "prompt": "Pantalla de 360x780 de un albergue para perros mayores con una lista vertical de siete items, cada uno con icono a la izquierda y texto a la derecha.", "categoria": "layout", "expect": "layout-con-sizing-declarado"} +{"id": "pd-052", "prompt": "En la pagina hay un board de un museo de maquinas de escribir que quedo con puros rectangulos grises y sin una sola palabra. Convertilo en un diseno de verdad.", "categoria": "reparacion", "expect": "reparacion-sin-grises"} +{"id": "pd-053", "prompt": "Este board de una consultora de eficiencia energetica tiene todos los textos del mismo tamano y todo el mismo gris. Dale jerarquia y una paleta.", "categoria": "reparacion", "expect": "reparacion-sin-grises"} +{"id": "pd-054", "prompt": "Revisa el board de un estudio de doblaje que arme yo, decime que esta mal de contraste y arreglalo.", "categoria": "reparacion", "expect": "reparacion-sin-grises"} +{"id": "pd-055", "prompt": "El hero de una tienda de kayaks tiene el texto ilegible sobre la foto. Arreglalo sin cambiar la foto.", "categoria": "reparacion", "expect": "reparacion-sin-grises"} +{"id": "pd-056", "prompt": "Antes de tocar nada, fijate en la documentacion de la API como se crea un texto en Penpot y despues poneme un titulo de un estudio de doblaje en 48 px.", "categoria": "consulta_api", "expect": "consulta-api-antes-de-actuar"} +{"id": "pd-057", "prompt": "Como hago para que un hijo de un board con layout ocupe todo el ancho disponible? Mostramelo aplicado a una seccion de una consultora de eficiencia energetica.", "categoria": "consulta_api", "expect": "consulta-api-antes-de-actuar"} +{"id": "pd-058", "prompt": "Quiero usar la tipografia Libre Baskerville en el titulo de una consultora de eficiencia energetica. Verifica que quede realmente aplicada, no solo seteada.", "categoria": "consulta_api", "expect": "consulta-api-antes-de-actuar"} +{"id": "pd-059", "prompt": "Guarda la paleta de un museo de maquinas de escribir como colores de la biblioteca del archivo y despues aplicalos a dos formas.", "categoria": "consulta_api", "expect": "consulta-api-antes-de-actuar"} +{"id": "pd-060", "prompt": "Exportame el board de una consultora de eficiencia energetica para verlo, y decime si algo quedo fuera de los limites.", "categoria": "consulta_api", "expect": "consulta-api-antes-de-actuar"} diff --git a/data/holdout_prompts.jsonl b/data/holdout_prompts.jsonl index 56a6c1a..a1ee4fc 100644 --- a/data/holdout_prompts.jsonl +++ b/data/holdout_prompts.jsonl @@ -1,200 +1,200 @@ -{"prompt": "Lista las paginas del space 'infra-tools' ordenadas por actualizacion reciente.", "mcp": "docmost", "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 'bugfix urgente 126' al PR numero 26 de 'mobile-client'.", "mcp": "github-personal", "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": "Mueve la pagina 'formulario de contacto 399' a otro parent dentro del space 'infra-tools'.", "mcp": "docmost", "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 432 de 'backend-core'.", "mcp": "github-personal", "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": "Comenta 'panel de admin 777' en la pagina con id conocido del space 'infra-tools'.", "mcp": "docmost", "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 si hay comentarios nuevos en el space 'backend-core' desde ayer.", "mcp": "docmost", "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 'endpoint de usuarios 480' bajo la pagina principal del space 'infra-tools'.", "mcp": "docmost", "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 en Docmost paginas que mencionen 'bugfix urgente 90'.", "mcp": "docmost", "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 rectangulo de 80x100 en el board 'Mobile Screens' con color #d93025.", "mcp": "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": "Transiciona el issue mobile-client-165 a 'In Progress'.", "mcp": "atlassian", "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 un texto que diga 'modal de confirmacion 268' dentro del board 'Mobile Screens', alineado a la izquierda.", "mcp": "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 si hay comentarios nuevos en el space 'mobile-client' desde ayer.", "mcp": "docmost", "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 'mobile-client'.", "mcp": "atlassian", "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 'backend-core' titulado 'integracion con Stripe 886' con la label 'bug'.", "mcp": "gitea", "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 'migracion de datos 162' en el espacio 'data-pipeline'.", "mcp": "atlassian", "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 'reporte semanal 876' en el espacio 'frontend-app'.", "mcp": "atlassian", "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 'fix/timeout-api-37' en el repo 'infra-tools' desde main.", "mcp": "gitea", "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 'dashboard 174' al issue numero 180 de 'infra-tools'.", "mcp": "gitea", "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 shapes del board 'Mobile Screens' y decime cuales son grupos.", "mcp": "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 'data-pipeline' titulado 'migracion de datos 426', tipo Bug.", "mcp": "atlassian", "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 shapes del board 'Checkout Flow' y decime cuales son grupos.", "mcp": "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 'migracion de datos 37' al issue frontend-app-436 de Jira.", "mcp": "atlassian", "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 issue en 'frontend-app' titulado 'checkout 426' asignado a mi usuario.", "mcp": "github-personal", "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": "Mueve la pagina 'reporte semanal 374' a otro parent dentro del space 'infra-tools'.", "mcp": "docmost", "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 rectangulo de 120x360 en el board 'Design System' con color #1a73e8.", "mcp": "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 'mobile-client'.", "mcp": "atlassian", "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 si hay comentarios nuevos en el space 'data-pipeline' desde ayer.", "mcp": "docmost", "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 worklog de 1h al issue backend-core-393 con el comentario 'landing page 124'.", "mcp": "atlassian", "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 issues de Jira asignados a mi usuario con JQL en el proyecto 'infra-tools'.", "mcp": "atlassian", "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 458 de 'mobile-client'.", "mcp": "github-personal", "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": "Comenta 'header responsive 419' en la pagina con id conocido del space 'infra-tools'.", "mcp": "docmost", "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 'login 880' en el space 'data-pipeline' con una tabla de 98 columnas.", "mcp": "docmost", "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 'bugfix urgente 251' al issue mobile-client-10 de Jira.", "mcp": "atlassian", "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 'header responsive 390' al PR numero 268 de 'mobile-client'.", "mcp": "github-personal", "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": "Mueve la pagina 'endpoint de usuarios 208' a otro parent dentro del space 'data-pipeline'.", "mcp": "docmost", "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": "Cambia el fill del shape 'card-producto-61' a #1a73e8 y verifica que se aplico.", "mcp": "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 'infra-tools' titulado 'cache de sesion 669', tipo Bug.", "mcp": "atlassian", "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 'header responsive 153' en el espacio 'data-pipeline'.", "mcp": "atlassian", "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 issue en 'backend-core' titulado 'footer del sitio 58' asignado a mi usuario.", "mcp": "github-personal", "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 pull requests abiertos del repo 'backend-core'.", "mcp": "gitea", "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 'modal de confirmacion 441' al issue numero 428 de 'data-pipeline'.", "mcp": "gitea", "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 pull requests abiertos del repo 'infra-tools'.", "mcp": "gitea", "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": "Cambia el fill del shape 'card-producto-66' a #1a73e8 y verifica que se aplico.", "mcp": "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 commits recientes en 'mobile-client' que mencionen 'landing page 481'.", "mcp": "gitea", "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": "Transiciona el issue infra-tools-119 a 'In Progress'.", "mcp": "atlassian", "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 boolean de union entre 'icono-menu-27' y otro rectangulo superpuesto.", "mcp": "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 el estado de los actions/workflows del repo 'data-pipeline'.", "mcp": "gitea", "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 'Landing v2' de 480x60 px en la pagina actual.", "mcp": "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 de Confluence 'integracion con Stripe 976' en el espacio 'frontend-app'.", "mcp": "atlassian", "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 'dashboard 738' al PR numero 67 de 'data-pipeline'.", "mcp": "github-personal", "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 de Confluence 'landing page 206' en el espacio 'infra-tools'.", "mcp": "atlassian", "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 340 de 'infra-tools'.", "mcp": "gitea", "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 worklog de 1h al issue infra-tools-29 con el comentario 'tabla de precios 91'.", "mcp": "atlassian", "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 pull requests abiertos del repo 'backend-core'.", "mcp": "gitea", "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 issues abiertos de 'backend-core' con label 'enhancement'.", "mcp": "github-personal", "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": "Cambia el fill del shape 'titulo-principal-3' a #d93025 y verifica que se aplico.", "mcp": "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 'frontend-app' titulado 'tema oscuro 373', tipo Bug.", "mcp": "atlassian", "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 'login 608' al issue numero 386 de 'backend-core'.", "mcp": "gitea", "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 'card-producto-87' a la posicion x=480, y=100 dentro de 'Design System'.", "mcp": "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 'cache de sesion 270' en el space 'mobile-client' con una tabla de 69 columnas.", "mcp": "docmost", "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 en Docmost paginas que mencionen 'formulario de contacto 192'.", "mcp": "docmost", "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 issues abiertos de 'data-pipeline' con label 'enhancement'.", "mcp": "github-personal", "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 'mobile-client'.", "mcp": "github-personal", "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": "Comenta 'tabla de precios 284' en la pagina con id conocido del space 'data-pipeline'.", "mcp": "docmost", "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 'bugfix urgente 307' a otro parent dentro del space 'mobile-client'.", "mcp": "docmost", "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": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 480 de 'backend-core'.", "mcp": "gitea", "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 'modal de confirmacion 826' al issue infra-tools-156 de Jira.", "mcp": "atlassian", "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 'landing page 338' al PR numero 457 de 'backend-core'.", "mcp": "github-personal", "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 issue en 'mobile-client' titulado 'panel de admin 953' asignado a mi usuario.", "mcp": "github-personal", "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 'Dashboard Principal' de 480x60 px en la pagina actual.", "mcp": "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 'login 251'.", "mcp": "docmost", "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 rectangulo de 320x60 en el board 'Checkout Flow' con color #188038.", "mcp": "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 'infra-tools' con label 'enhancement'.", "mcp": "github-personal", "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 'mobile-client' que mencionen 'formulario de contacto 609'.", "mcp": "gitea", "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 'hotfix/prod-54' en 'frontend-app' con las notas 'onboarding 158'.", "mcp": "gitea", "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 'boton-cta-4' y otro rectangulo superpuesto.", "mcp": "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 release 'feature/dark-mode-39' en 'backend-core' con las notas 'landing page 2'.", "mcp": "gitea", "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 releases publicados de 'mobile-client'.", "mcp": "github-personal", "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 'endpoint de usuarios 896' agregando una fila mas a la tabla existente.", "mcp": "docmost", "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 'data-pipeline'.", "mcp": "gitea", "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 'backend-core' titulado 'modal de confirmacion 556' con la label 'bug'.", "mcp": "gitea", "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 un texto que diga 'tabla de precios 511' dentro del board 'Dashboard Principal', alineado a la izquierda.", "mcp": "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 tipos de issue disponibles en el proyecto 'infra-tools' de Jira.", "mcp": "atlassian", "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 'infra-tools' con label 'enhancement'.", "mcp": "github-personal", "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": "Revisa si hay comentarios nuevos en el space 'data-pipeline' desde ayer.", "mcp": "docmost", "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 'data-pipeline' de Jira.", "mcp": "atlassian", "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 'integracion con Stripe 115' en el space 'backend-core' con una tabla de 414 columnas.", "mcp": "docmost", "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 worklog de 1h al issue mobile-client-6 con el comentario 'formulario de contacto 73'.", "mcp": "atlassian", "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 worklog de 1h al issue data-pipeline-41 con el comentario 'footer del sitio 585'.", "mcp": "atlassian", "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 subpagina 'tabla de precios 390' bajo la pagina principal del space 'backend-core'.", "mcp": "docmost", "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": "Necesito un texto que diga 'landing page 404' dentro del board 'Checkout Flow', alineado a la izquierda.", "mcp": "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 rectangulo de 80x40 en el board 'Design System' con color #1a73e8.", "mcp": "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 board nuevo llamado 'Design System' de 320x240 px en la pagina actual.", "mcp": "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 releases publicados de 'mobile-client'.", "mcp": "github-personal", "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 comentario 'migracion de datos 505' al PR numero 454 de 'backend-core'.", "mcp": "github-personal", "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": "Revisa el estado de los actions/workflows del repo 'backend-core'.", "mcp": "gitea", "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 de Jira en el proyecto 'data-pipeline' titulado 'formulario de contacto 584', tipo Bug.", "mcp": "atlassian", "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 infra-tools-296 a 'In Progress'.", "mcp": "atlassian", "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 boolean de union entre 'footer-logo-54' y otro rectangulo superpuesto.", "mcp": "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 en 'backend-core' titulado 'endpoint de usuarios 324' asignado a mi usuario.", "mcp": "github-personal", "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 'data-pipeline' que mencionen 'integracion con Stripe 724'.", "mcp": "gitea", "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": "Transiciona el issue data-pipeline-258 a 'In Progress'.", "mcp": "atlassian", "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 'data-pipeline' el codigo que define la funcion 'login 561'.", "mcp": "github-personal", "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 'frontend-app' ordenadas por actualizacion reciente.", "mcp": "docmost", "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 el shape 'icono-menu-64' a la posicion x=80, y=100 dentro de 'Landing v2'.", "mcp": "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": "Cambia el fill del shape 'card-producto-87' a #1a73e8 y verifica que se aplico.", "mcp": "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 'integracion con Stripe 648' agregando una fila mas a la tabla existente.", "mcp": "docmost", "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 'footer del sitio 449' al issue frontend-app-62 de Jira.", "mcp": "atlassian", "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 46 de 'mobile-client'.", "mcp": "github-personal", "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 Docmost paginas que mencionen 'tema oscuro 279'.", "mcp": "docmost", "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": "Actualiza la pagina 'panel de admin 831' agregando una fila mas a la tabla existente.", "mcp": "docmost", "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": "Necesito un texto que diga 'endpoint de usuarios 858' dentro del board 'Dashboard Principal', alineado a la izquierda.", "mcp": "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 el estado de los actions/workflows del repo 'backend-core'.", "mcp": "gitea", "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 'icono-menu-25' como PNG a 2x de resolucion.", "mcp": "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 shapes del board 'Dashboard Principal' y decime cuales son grupos.", "mcp": "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 'integracion con Stripe 616' agregando una fila mas a la tabla existente.", "mcp": "docmost", "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 'feature/nueva-vista-88' en el repo 'frontend-app' desde main.", "mcp": "gitea", "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 rama llamada 'hotfix/prod-39' en el repo 'backend-core' desde main.", "mcp": "gitea", "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": "Actualiza la pagina 'dashboard 852' agregando una fila mas a la tabla existente.", "mcp": "docmost", "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 'footer del sitio 677' al issue data-pipeline-418 de Jira.", "mcp": "atlassian", "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 board nuevo llamado 'Design System' de 480x240 px en la pagina actual.", "mcp": "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 en 'backend-core' titulado 'onboarding 237' asignado a mi usuario.", "mcp": "github-personal", "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 'Landing v2' y decime cuales son grupos.", "mcp": "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 las paginas del space 'infra-tools' ordenadas por actualizacion reciente.", "mcp": "docmost", "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 en Confluence paginas del espacio 'frontend-app' que mencionen 'notificaciones push 425'.", "mcp": "atlassian", "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 'card-producto-64' como PNG a 2x de resolucion.", "mcp": "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 'data-pipeline' titulado 'login 33' con la label 'bug'.", "mcp": "gitea", "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": "Comenta 'flujo de pago 407' en la pagina con id conocido del space 'infra-tools'.", "mcp": "docmost", "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 pull request en 'backend-core' desde la rama 'feature/dark-mode-37' hacia main, titulo 'bugfix urgente 514'.", "mcp": "github-personal", "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 'frontend-app' el codigo que define la funcion 'tabla de precios 897'.", "mcp": "github-personal", "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 un texto que diga 'footer del sitio 421' dentro del board 'Mobile Screens', alineado a la izquierda.", "mcp": "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 releases publicados de 'infra-tools'.", "mcp": "github-personal", "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 142 de 'backend-core'.", "mcp": "github-personal", "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 'Landing v2' de 480x360 px en la pagina actual.", "mcp": "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 las paginas del space 'backend-core' ordenadas por actualizacion reciente.", "mcp": "docmost", "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": "Cambia el fill del shape 'card-producto-14' a #188038 y verifica que se aplico.", "mcp": "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 'backend-core' desde la rama 'feature/dark-mode-69' hacia main, titulo 'onboarding 858'.", "mcp": "github-personal", "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 release 'chore/deps-85' en 'mobile-client' con las notas 'landing page 860'.", "mcp": "gitea", "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 rectangulo de 320x40 en el board 'Design System' con color #188038.", "mcp": "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 tipos de issue disponibles en el proyecto 'backend-core' de Jira.", "mcp": "atlassian", "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 subpagina 'onboarding 635' bajo la pagina principal del space 'backend-core'.", "mcp": "docmost", "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 'integracion con Stripe 482' bajo la pagina principal del space 'infra-tools'.", "mcp": "docmost", "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": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 158 de 'mobile-client'.", "mcp": "gitea", "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 'infra-tools' que mencionen 'tema oscuro 65'.", "mcp": "atlassian", "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 el shape 'icono-menu-27' a la posicion x=480, y=100 dentro de 'Mobile Screens'.", "mcp": "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 'cache de sesion 798' a otro parent dentro del space 'infra-tools'.", "mcp": "docmost", "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 worklog de 1h al issue frontend-app-219 con el comentario 'reporte semanal 154'.", "mcp": "atlassian", "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 el shape 'card-producto-17' a la posicion x=80, y=360 dentro de 'Design System'.", "mcp": "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 'backend-core' desde la rama 'feature/nueva-vista-39' hacia main, titulo 'landing page 52'.", "mcp": "github-personal", "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": "Revisa los commits recientes de la rama 'chore/deps-11' en 'infra-tools'.", "mcp": "github-personal", "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 'frontend-app' que mencionen 'panel de admin 775'.", "mcp": "atlassian", "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 shapes del board 'Dashboard Principal' y decime cuales son grupos.", "mcp": "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 tipos de issue disponibles en el proyecto 'mobile-client' de Jira.", "mcp": "atlassian", "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 'frontend-app' que mencionen 'modal de confirmacion 567'.", "mcp": "atlassian", "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 'card-producto-78' como PNG a 2x de resolucion.", "mcp": "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 'chore/deps-45' en 'infra-tools'.", "mcp": "github-personal", "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 391 de 'mobile-client'.", "mcp": "github-personal", "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 'mobile-client'.", "mcp": "atlassian", "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 pull request en 'infra-tools' desde la rama 'fix/timeout-api-98' hacia main, titulo 'checkout 711'.", "mcp": "github-personal", "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 release 'hotfix/prod-56' en 'frontend-app' con las notas 'migracion de datos 201'.", "mcp": "gitea", "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": "Comenta 'reporte semanal 913' en la pagina con id conocido del space 'mobile-client'.", "mcp": "docmost", "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 'footer del sitio 267' bajo la pagina principal del space 'frontend-app'.", "mcp": "docmost", "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 'data-pipeline' de Jira.", "mcp": "atlassian", "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 el estado de los actions/workflows del repo 'infra-tools'.", "mcp": "gitea", "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": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 97 de 'backend-core'.", "mcp": "gitea", "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 'infra-tools' que mencionen 'footer del sitio 825'.", "mcp": "gitea", "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 'frontend-app' el codigo que define la funcion 'checkout 730'.", "mcp": "github-personal", "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 rama llamada 'chore/deps-30' en el repo 'frontend-app' desde main.", "mcp": "gitea", "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": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 428 de 'backend-core'.", "mcp": "gitea", "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 pull requests abiertos del repo 'frontend-app'.", "mcp": "gitea", "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 los commits recientes de la rama 'chore/deps-60' en 'infra-tools'.", "mcp": "github-personal", "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 'infra-tools' con label 'enhancement'.", "mcp": "github-personal", "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 'titulo-principal-78' y otro rectangulo superpuesto.", "mcp": "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 'infra-tools' desde la rama 'fix/timeout-api-55' hacia main, titulo 'migracion de datos 558'.", "mcp": "github-personal", "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 'backend-core' que mencionen 'checkout 275'.", "mcp": "atlassian", "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 'backend-core' titulado 'panel de admin 720' con la label 'bug'.", "mcp": "gitea", "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 'mobile-client' ordenadas por actualizacion reciente.", "mcp": "docmost", "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/prod-64' en 'backend-core'.", "mcp": "github-personal", "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 rama llamada 'feature/dark-mode-59' en el repo 'mobile-client' desde main.", "mcp": "gitea", "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 'card-producto-79' y otro rectangulo superpuesto.", "mcp": "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 'infra-tools'.", "mcp": "atlassian", "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/prod-47' en 'frontend-app'.", "mcp": "github-personal", "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 comentario 'migracion de datos 95' al issue numero 327 de 'mobile-client'.", "mcp": "gitea", "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 si hay comentarios nuevos en el space 'mobile-client' desde ayer.", "mcp": "docmost", "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 pull requests abiertos del repo 'data-pipeline'.", "mcp": "gitea", "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 'data-pipeline' el codigo que define la funcion 'tema oscuro 442'.", "mcp": "github-personal", "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 'infra-tools' el codigo que define la funcion 'migracion de datos 79'.", "mcp": "github-personal", "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": "Abri un issue en 'mobile-client' titulado 'integracion con Stripe 869' con la label 'bug'.", "mcp": "gitea", "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": "Transiciona el issue mobile-client-472 a 'In Progress'.", "mcp": "atlassian", "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 'boton-cta-37' como PNG a 2x de resolucion.", "mcp": "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 'cache de sesion 149' en el space 'backend-core' con una tabla de 371 columnas.", "mcp": "docmost", "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 en Docmost paginas que mencionen 'integracion con Stripe 169'.", "mcp": "docmost", "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 'infra-tools'.", "mcp": "github-personal", "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 comentario 'flujo de pago 572' al issue numero 91 de 'infra-tools'.", "mcp": "gitea", "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 'footer-logo-84' como PNG a 2x de resolucion.", "mcp": "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 'backend-core' titulado 'login 863', tipo Bug.", "mcp": "atlassian", "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 'flujo de pago 290' en el space 'mobile-client' con una tabla de 199 columnas.", "mcp": "docmost", "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 'hotfix/prod-14' en 'data-pipeline' con las notas 'endpoint de usuarios 265'.", "mcp": "gitea", "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 'titulo-principal-66' a la posicion x=120, y=40 dentro de 'Checkout Flow'.", "mcp": "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 commits recientes en 'mobile-client' que mencionen 'tema oscuro 467'.", "mcp": "gitea", "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 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"]}}]} diff --git a/scripts/05_build_dataset.py b/scripts/05_build_dataset.py index a71b64f..b82a2ed 100644 --- a/scripts/05_build_dataset.py +++ b/scripts/05_build_dataset.py @@ -1,33 +1,113 @@ -"""Fase 2: ensambla data/train.jsonl y data/eval.jsonl (v1 a volumen reducido) a partir de -los seeds escritos a mano en data/raw/seeds/*.jsonl mas data/raw/replay.jsonl. +"""Fase 2 (revisado en Fase 6): ensambla un train/eval jsonl a partir de los seeds escritos a +mano en /*.jsonl mas data/raw/replay.jsonl. Corre localmente (no requiere GPU ni el modelo). Aplica variacion deterministica -(random.seed(42)) sobre los seeds -- sustitucion de valores (colores, ids, numeros) + -un set chico de parafraseos por bucket -- para llegar al volumen v1 objetivo por bucket -sin duplicar lineas exactas. Verifica que ningun seed mencione la skill held-out -(spark-ssh). Tagea cada ejemplo con meta.bucket, mezcla, y separa 90/10 train/eval -estratificado por bucket para que eval no quede dominado por un solo bucket. +(random.seed(42)) sobre los seeds para llegar al volumen objetivo por bucket sin duplicar +lineas exactas. Verifica que ningun seed mencione la skill held-out (spark-ssh). Tagea cada +ejemplo con meta.bucket, mezcla, y separa 90/10 train/eval estratificado por bucket. + +PARAMETROS POR ENV (los defaults reproducen la invocacion historica de Fase 2) +----------------------------------------------------------------------------- + SEEDS_DIR directorio de seeds (def: data/raw/seeds) + REPLAY_FILE jsonl de replay de Fase 1 (def: data/raw/replay.jsonl) + TRAIN_OUT destino del split de train (def: data/train.jsonl) + EVAL_OUT destino del split de eval (def: data/eval.jsonl) + ALLOW_OVERWRITE '1' para permitir pisar un destino que ya existe (def: off) + +Las rutas relativas se resuelven contra la raiz del repo. + +REGLA CRITICA: NO REGENERAR data/train.jsonl NI data/eval.jsonl +--------------------------------------------------------------- +Esos dos archivos son la procedencia exacta del modelo que hoy esta en produccion y el +baseline de la puerta 1 (perdida ponderada 0.2750). Por eso hay un guard que ABORTA si el +destino ya existe, salvo que se pase ALLOW_OVERWRITE=1. Los datasets nuevos se construyen a +archivos nuevos: + + TRAIN_OUT=data/train_v2.jsonl EVAL_OUT=data/eval_v2.jsonl python3 scripts/05_build_dataset.py + +Y ademas: regenerar NO es idempotente. `stratified_split()` mezcla con un unico RNG +(random.Random(42)) sobre la lista concatenada de todos los buckets, asi que cambiar el +tamano de UN bucket (p.ej. BUCKET_TARGETS['penpot'] de 110 a 320) corre la secuencia de +numeros aleatorios y reshufflea el split de TODOS los buckets. Volver a correr este script +con los targets de hoy NO reconstruye el train.jsonl de Fase 2 aunque los seeds no hayan +cambiado. + +AUGMENTACION (reescrita en Fase 6) +---------------------------------- +La version anterior tenia dos defectos medidos sobre el train.jsonl de Fase 2: + +1. `perturb_value()` reescribia SOLO `tool_calls.function.arguments`, nunca los tool results + ni el `content` final del assistant -> 30 ejemplos auto-contradictorios (la llamada decia + `issue_number: 82` y la respuesta final decia "issue #77"). El modelo se entrenaba a + ignorar sus propios argumentos. +2. La inyeccion de prefijos de parafraseo se pegaba delante de cualquier turno de usuario, sin + mirar su forma gramatical -> 68 prompts rotos del tipo + "Necesito que ¿Podes usar el tool de import_image...". + +Reemplazos: + +- La sustitucion de valores es ATOMICA y se declara en el seed (`meta.variation`): se aplica + sobre TODOS los campos de texto del ejemplo a la vez (arguments, tool results, contents, + reasoning_content), de modo que un valor que cambia, cambia en todas partes. Sin + `meta.variation` no se sustituye ningun valor -- adivinar que numero de un string es + "seguro" de perturbar es exactamente lo que producia las contradicciones. +- `NEVER_PERTURB_KEYS` protege los valores que jamas pueden variar (`code`, `shapeId`, + `tool_call_id`, `id`). Un payload de Penpot perturbado es codigo roto. Si un valor de + `meta.variation` aparece dentro de un campo protegido, la build FALLA: seria una variante + internamente inconsistente, justo lo que veniamos a eliminar. +- El bucket `penpot` esta exento de sustitucion de valores por completo (NO_PERTURB_BUCKETS): + sus payloads son codigo, y la variacion tiene que venir de seeds distintos. +- `meta.paraphrases` (2-3 reescrituras a mano del turno del usuario) es la via PREFERIDA de + variacion del prompt. La inyeccion de prefijos queda solo como fallback y solo cuando el + turno arranca con un imperativo que sabemos conjugar; cualquier otra forma se deja intacta. + +`meta.variation` y `meta.paraphrases` son entradas de build: no se escriben al dataset final. + +FORMATO DE meta.variation +------------------------- +Dos formas equivalentes, las dos deterministas por indice de variante: + + "meta": {"variation": {"82": ["77", "91"], "billing/pricing.py": ["core/rates.py"]}} + "meta": {"variation": [{"82": "77"}, {"82": "91"}]} + +La primera es un mapa token -> lista de reemplazos (la variante i usa el elemento +(i-1) % len). La segunda es una lista de mapas completos, uno por variante. """ +import importlib.util import json +import os import random import re import sys +from collections import Counter from pathlib import Path REPO_ROOT = Path(__file__).resolve().parent.parent -SEEDS_DIR = REPO_ROOT / "data" / "raw" / "seeds" -REPLAY_PATH = REPO_ROOT / "data" / "raw" / "replay.jsonl" -TRAIN_PATH = REPO_ROOT / "data" / "train.jsonl" -EVAL_PATH = REPO_ROOT / "data" / "eval.jsonl" + + +def _path_env(name, default_rel): + """Resuelve una ruta por env; las relativas cuelgan de la raiz del repo.""" + raw = os.environ.get(name) + if not raw: + return REPO_ROOT / default_rel + p = Path(raw) + return p if p.is_absolute() else REPO_ROOT / p + + +SEEDS_DIR = _path_env("SEEDS_DIR", "data/raw/seeds") +REPLAY_PATH = _path_env("REPLAY_FILE", "data/raw/replay.jsonl") +TRAIN_PATH = _path_env("TRAIN_OUT", "data/train.jsonl") +EVAL_PATH = _path_env("EVAL_OUT", "data/eval.jsonl") +ALLOW_OVERWRITE = os.environ.get("ALLOW_OVERWRITE", "").lower() in ("1", "true", "yes") SEED = 42 EVAL_FRACTION = 0.10 HELD_OUT_SKILL = "spark-ssh" -# Volumen v1 objetivo por bucket (aprox. 800-1000 nuevos, ver PLAN.md seccion 3). -# El bucket "replay" no se varia -- se usa tal cual viene de la Fase 1. +# Volumen objetivo por bucket. El bucket "replay" no se varia -- se usa tal cual viene de la +# Fase 1. `penpot` sube de 110 a 320 en Fase 6 (el corpus de diseno reescrito). BUCKET_TARGETS = { - "penpot": 110, + "penpot": 320, "otros_mcps": 290, "skills_adherencia": 160, "delegacion_subagentes": 65, @@ -35,21 +115,224 @@ BUCKET_TARGETS = { "manejo_errores": 55, } -HEX_COLOR_RE = re.compile(r"^#[0-9a-fA-F]{6}$") -TRAILING_NUMBER_RE = re.compile(r"^(.*?)(\d+)$") +# Claves cuyo valor NUNCA se sustituye, en ningun bucket. `code` es un payload de JavaScript +# (perturbarlo produce codigo roto); los ids son referencias que tienen que seguir cerrando +# entre la llamada y su resultado. +NEVER_PERTURB_KEYS = {"code", "shapeId", "tool_call_id", "id"} +# Buckets exentos de sustitucion de valores por completo. Su variacion viene de seeds +# distintos, no de reescribir strings. +NO_PERTURB_BUCKETS = {"penpot"} + +# Anti-colapso del bucket penpot: como esta exento de sustitucion, la unica fuente de +# variacion son `meta.paraphrases` y seeds distintos. Si un corpus llega a 320 filas +# repitiendo 96 trayectorias identicas, la augmentacion no augmenta nada (es lo que pasaba en +# Fase 2: 99 filas -> 40 trayectorias unicas sobre 41 seeds). Se exige >= 2.5 trayectorias +# unicas por seed, que es justo lo que dan 2-3 parafrasis a mano por seed mas el original. +PENPOT_UNIQUE_RATIO = float(os.environ.get("PENPOT_UNIQUE_RATIO", "2.5")) + +# El assert duro que mata los 68 prompts rotos de Fase 2: ningun turno de usuario del dataset +# final puede tener un prefijo de parafraseo pegado delante de una pregunta ya formada. +BROKEN_PREFIX_RE = re.compile(r"(?:Necesito que|Necesito|Por favor,|Che,|Dale,|¿Pod[eé]s)\s*¿") + + +# ------------------------------------------------------------------------------------------ +# Parafraseo por prefijo (FALLBACK -- la via preferida es meta.paraphrases) +# ------------------------------------------------------------------------------------------ +# Cada prefijo declara que forma verbal exige. Un prefijo solo se aplica si podemos convertir +# el primer verbo del turno a esa forma; si no, el turno se deja intacto. Preferimos perder +# variacion antes que emitir un prompt agramatical: el modelo aprende la forma del prompt. +# imperativo -> el turno ya esta en imperativo, solo baja la mayuscula ("Por favor, crea ...") +# infinitivo -> "Necesito crear ..." (declarativa, funciona con multiples oraciones) +# pregunta -> "¿Podes crear ...?" (solo si el turno es UNA oracion afirmativa) PARAPHRASE_PREFIXES = [ - "", - "Por favor, ", - "Necesito que ", - "¿Podés ", - "Che, ", - "Dale, ", + ("", None), + ("Por favor, ", "imperativo"), + ("Che, ", "imperativo"), + ("Dale, ", "imperativo"), + ("Necesito ", "infinitivo"), + ("¿Podés ", "pregunta"), ] -PALETTE = ["#1a73e8", "#e8710a", "#188038", "#d93025", "#9334e6", "#12b5cb", "#f9ab00", "#3c4043"] +# Imperativos con cambio de raiz: no se derivan mecanicamente, van a mano. +IRREGULAR_IMPERATIVE_TO_INFINITIVE = { + "cierra": "cerrar", + "empieza": "empezar", + "encuentra": "encontrar", + "cuenta": "contar", + "muestra": "mostrar", + "prueba": "probar", + "mueve": "mover", + "vuelve": "volver", + "recuerda": "recordar", + "corrige": "corregir", + "repite": "repetir", + "pide": "pedir", + "sigue": "seguir", + "consigue": "conseguir", + "convierte": "convertir", + "invierte": "invertir", + "sugiere": "sugerir", + "elige": "elegir", + "dame": "darme", + "da": "dar", + "haz": "hacer", + "ve": "ver", + "ten": "tener", + "pon": "poner", + "sal": "salir", + "di": "decir", + "sube": "subir", + "abre": "abrir", + "reabre": "reabrir", + "escribe": "escribir", + "describe": "describir", + "revierte": "revertir", + "anade": "anadir", + "añade": "añadir", + "responde": "responder", + "corre": "correr", + "lee": "leer", + "mete": "meter", + "rompe": "romper", + "vende": "vender", + "aprende": "aprender", + "borra": "borrar", +} + +ENCLITIC_PRONOUNS = ("melo", "mela", "selo", "sela", "nos", "me", "lo", "la", "los", "las", "le", "les") + +FIRST_WORD_RE = re.compile(r"^([A-Za-zÁÉÍÓÚÜÑáéíóúüñ]+)(.*)$", re.S) +def strip_accent(word): + table = str.maketrans("áéíóúÁÉÍÓÚ", "aeiouAEIOU") + return word.translate(table) + + +def has_enclitic(infinitive): + """'dame' -> 'darme', 'mostrame' -> 'mostrarme': el infinitivo hereda el pronombre, que + despues de 'Necesito ' suena mal ('Necesito darme el resumen'). Con '¿Podés ' es correcto.""" + return any(infinitive.endswith("r" + pron) for pron in ENCLITIC_PRONOUNS) + + +def to_infinitive(word): + """Convierte un imperativo (tuteo o voseo, con o sin enclitico) a infinitivo. + + Devuelve None si no estamos seguros -- el llamador entonces NO aplica el prefijo. Es + deliberado: un imperativo desconocido produce un prompt agramatical, y el costo de + perder una variante es mucho menor que el de entrenar sobre castellano roto. + """ + lower = word.lower() + + enclitic = "" + base = lower + for pron in ENCLITIC_PRONOUNS: + if len(lower) > len(pron) + 2 and lower.endswith(pron): + base, enclitic = lower[: -len(pron)], pron + break + + if lower in IRREGULAR_IMPERATIVE_TO_INFINITIVE: + return IRREGULAR_IMPERATIVE_TO_INFINITIVE[lower] + if base in IRREGULAR_IMPERATIVE_TO_INFINITIVE: + return IRREGULAR_IMPERATIVE_TO_INFINITIVE[base] + enclitic + + # Voseo: acento en la ultima vocal (crea' -> crear, hace' -> hacer, subi' -> subir). + if base and base[-1] in "áéí": + return strip_accent(base) + "r" + enclitic + + # Tuteo regular de la primera conjugacion: crea -> crear, busca -> buscar. + if len(base) >= 4 and base.endswith("a"): + return base + "r" + enclitic + + # Todo lo demas (terminaciones en -e, que pueden ser -er o -ir, y cualquier otra forma) + # es ambiguo: no adivinamos. + return None + + +def apply_prefix(content, prefix, mode): + """Aplica un prefijo de parafraseo respetando la gramatica. Devuelve None si no se puede.""" + if not prefix: + return content + stripped = content.strip() + if not stripped or stripped[0] in "¿¡": + # Nunca pegar un prefijo delante de una pregunta/exclamacion ya formada. Este es el + # caso exacto que producia "Necesito que ¿Podes usar el tool de import_image...". + return None + + m = FIRST_WORD_RE.match(stripped) + if not m: + return None + first, rest = m.group(1), m.group(2) + + if mode == "imperativo": + infinitive = to_infinitive(first) + if infinitive is None: + # Si no reconocemos un imperativo, el turno probablemente es declarativo + # ("El ci-developer que lance devolvio BLOCKED...") y "Por favor, el ci-developer + # que..." tampoco es castellano. No se aplica prefijo. + return None + return prefix + first.lower() + rest + + if mode == "infinitivo": + infinitive = to_infinitive(first) + if infinitive is None or has_enclitic(infinitive): + return None + return prefix + infinitive + rest + + if mode == "pregunta": + infinitive = to_infinitive(first) + if infinitive is None: + return None + # Solo si es UNA oracion afirmativa: convertirla en pregunta exige tocar el cierre. + if "?" in stripped or "!" in stripped or "\n" in stripped: + return None + if not stripped.endswith(".") or stripped.count(".") != 1: + return None + return prefix + infinitive + rest[:-1] + "?" + + return None + + +# ------------------------------------------------------------------------------------------ +# Patrones prohibidos: la fuente de verdad es scripts/07_lint_penpot_code.py +# ------------------------------------------------------------------------------------------ +# Se IMPORTAN de ahi (no se copian) para que no puedan divergir. Si el lint renombra una +# entrada, este script falla ruidosamente en vez de dejar de chequear en silencio. +FORBIDDEN_PATTERN_NAMES = [ + "findShapeById con 2 argumentos", + "propiedad .layout inexistente", + "flex.appendChild", + "import_image / importImage / createImage / filePath", + "textAlign", + "typography.setFont", +] +LINT_PATH = Path(__file__).resolve().parent / "07_lint_penpot_code.py" + + +def load_forbidden_patterns(): + spec = importlib.util.spec_from_file_location("penpot_lint", LINT_PATH) + if spec is None or spec.loader is None: + print(f"[ERROR] no se pudo importar {LINT_PATH}") + sys.exit(1) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + + by_name = {name: rx for name, rx, _why in module.FORBIDDEN} + missing = [n for n in FORBIDDEN_PATTERN_NAMES if n not in by_name] + if missing: + print( + f"[ERROR] {LINT_PATH.name} ya no define estos patrones: {missing}. " + f"Actualizar FORBIDDEN_PATTERN_NAMES en este script (la fuente de verdad de los " + f"patrones es el lint, no esta copia de nombres)." + ) + sys.exit(1) + return [(n, by_name[n]) for n in FORBIDDEN_PATTERN_NAMES] + + +# ------------------------------------------------------------------------------------------ +# Carga +# ------------------------------------------------------------------------------------------ def load_jsonl(path): lines = [] with open(path, encoding="utf-8") as f: @@ -88,52 +371,155 @@ def assert_no_held_out_skill(by_bucket): print(f"[OK] ninguna mencion de la skill held-out '{HELD_OUT_SKILL}' en los seeds") -def perturb_value(value, rng): - if isinstance(value, str): - if HEX_COLOR_RE.match(value): - return rng.choice(PALETTE) - m = TRAILING_NUMBER_RE.match(value) - if m and len(m.group(2)) <= 3: - prefix, number = m.group(1), m.group(2) - new_number = rng.randint(1, 99) - return f"{prefix}{new_number}" - return value - if isinstance(value, bool): - return value - if isinstance(value, int): - jitter = rng.randint(-max(1, value // 4), max(1, value // 4)) - return max(0, value + jitter) - if isinstance(value, float): - jitter = rng.uniform(-0.25, 0.25) * value - return round(value + jitter, 2) - if isinstance(value, dict): - return {k: perturb_value(v, rng) for k, v in value.items()} - if isinstance(value, list): - return [perturb_value(v, rng) for v in value] - return value +# ------------------------------------------------------------------------------------------ +# Sustitucion atomica de valores +# ------------------------------------------------------------------------------------------ +def resolve_variation(meta, variant_idx): + """Devuelve el mapa token -> reemplazo para esta variante, o {} si el seed no declara + variacion. variant_idx >= 1 (la variante 0 es el seed sin tocar).""" + variation = meta.get("variation") + if not variation: + return {} + if isinstance(variation, list): + chosen = variation[(variant_idx - 1) % len(variation)] + if not isinstance(chosen, dict): + raise AssertionError( + "[ASSERT FAIL] meta.variation como lista tiene que contener dicts " + "token -> reemplazo" + ) + return {str(k): str(v) for k, v in chosen.items()} + if isinstance(variation, dict): + mapping = {} + for token, options in variation.items(): + if not isinstance(options, list) or not options: + raise AssertionError( + f"[ASSERT FAIL] meta.variation['{token}'] tiene que ser una lista no vacia " + f"de reemplazos" + ) + mapping[str(token)] = str(options[(variant_idx - 1) % len(options)]) + return mapping + raise AssertionError("[ASSERT FAIL] meta.variation tiene que ser un dict o una lista") -def vary_example(example, rng, variant_idx): - """Produce una variante determinista del ejemplo (variant_idx=0 devuelve el - original sin tocar, para preservar los seeds tal cual como parte del volumen).""" - if variant_idx == 0: +def substitute_atomic(example, mapping): + """Aplica el mapa de sustitucion a TODOS los campos de texto del ejemplo a la vez. + + Un valor que cambia, cambia en todas partes: arguments (incluidos los escalares JSON no + string: `issue_number: 82` es tan parte del ejemplo como el "#82" del texto), tool + results, content y reasoning_content. Los valores bajo NEVER_PERTURB_KEYS quedan + intactos, y si el token original sobrevive en alguno de ellos se lanza -- seria una + variante auto-contradictoria, exactamente el defecto que esta reescritura vino a eliminar. + """ + if not mapping: return json.loads(json.dumps(example, ensure_ascii=False)) - varied = json.loads(json.dumps(example, ensure_ascii=False)) + pattern = re.compile("|".join(re.escape(k) for k in sorted(mapping, key=len, reverse=True))) + survivors = [] + hits = Counter() - for msg in varied.get("messages", []): - if msg.get("role") == "user" and variant_idx > 0: - prefix = rng.choice(PARAPHRASE_PREFIXES) - if prefix and not msg["content"][:1].islower(): - msg["content"] = prefix + msg["content"][0].lower() + msg["content"][1:] - for tool_call in msg.get("tool_calls", []) or []: - args = tool_call.get("function", {}).get("arguments") - if isinstance(args, dict): - tool_call["function"]["arguments"] = perturb_value(args, rng) + def walk(node, protected): + if isinstance(node, dict): + return { + key: walk(value, protected or key in NEVER_PERTURB_KEYS) + for key, value in node.items() + } + if isinstance(node, list): + return [walk(item, protected) for item in node] + if isinstance(node, str): + if protected: + for token in mapping: + if token in node: + survivors.append(token) + return node + def _sub(m): + hits[m.group(0)] += 1 + return mapping[m.group(0)] + + return pattern.sub(_sub, node) + if isinstance(node, (int, float)) and not isinstance(node, bool): + # Un escalar JSON (issue_number: 82) se sustituye por igualdad exacta de su + # representacion, y se devuelve con el mismo tipo. Si no se hiciera, la llamada + # diria 82 y el texto 77: el defecto de Fase 2. + key = repr(node) if isinstance(node, float) else str(node) + if key in mapping: + if protected: + survivors.append(key) + return node + hits[key] += 1 + replacement = mapping[key] + try: + return type(node)(replacement) + except ValueError: + return replacement + return node + return node + + varied = walk(example, False) + + if survivors: + raise AssertionError( + f"[ASSERT FAIL] los valores {sorted(set(survivors))} de meta.variation aparecen " + f"dentro de un campo protegido ({sorted(NEVER_PERTURB_KEYS)}) y no se pueden " + f"sustituir ahi. La variante quedaria auto-contradictoria: sacar esos valores de " + f"meta.variation o reescribir el seed." + ) + unused = [token for token in mapping if hits[token] == 0] + if unused: + raise AssertionError( + f"[ASSERT FAIL] los tokens {unused} de meta.variation no aparecen en el ejemplo " + f"(typo en el seed): la sustitucion no haria nada" + ) return varied +def strip_build_only_meta(example): + """meta.variation y meta.paraphrases son entradas de build, no datos de entrenamiento.""" + meta = example.get("meta") + if isinstance(meta, dict): + meta.pop("variation", None) + meta.pop("paraphrases", None) + return example + + +def vary_example(example, rng, variant_idx, bucket): + """Produce una variante determinista del ejemplo. + + variant_idx == 0 devuelve el seed tal cual (los seeds originales son parte del volumen). + Para variant_idx > 0: + 1. reescritura del turno del usuario: meta.paraphrases si el seed las trae, y si no, + inyeccion de un prefijo gramaticalmente compatible como fallback, + 2. sustitucion atomica de valores segun meta.variation (salvo buckets exentos). + + El orden importa: la sustitucion va DESPUES de la parafrasis para que un valor citado en + la parafrasis a mano ("Pasame el issue 82") tambien se sustituya. Al reves, la parafrasis + reintroduciria el valor viejo y la variante volveria a ser auto-contradictoria. + """ + varied = json.loads(json.dumps(example, ensure_ascii=False)) + if variant_idx == 0: + return strip_build_only_meta(varied) + + meta = varied.get("meta", {}) or {} + paraphrases = meta.get("paraphrases") or [] + first_user = next((m for m in varied.get("messages", []) if m.get("role") == "user"), None) + + if first_user is not None: + if paraphrases: + # Via preferida: reescrituras a mano del turno del usuario. + first_user["content"] = paraphrases[(variant_idx - 1) % len(paraphrases)] + else: + prefix, mode = rng.choice(PARAPHRASE_PREFIXES) + rewritten = apply_prefix(first_user["content"], prefix, mode) + if rewritten is not None: + first_user["content"] = rewritten + + mapping = {} if bucket in NO_PERTURB_BUCKETS else resolve_variation(meta, variant_idx) + # Se limpia meta ANTES de sustituir: si no, un token que solo aparece en meta.paraphrases + # contaria como "usado" y el chequeo de tokens muertos dejaria de servir. + strip_build_only_meta(varied) + return substitute_atomic(varied, mapping) + + def build_bucket(bucket, seeds, target_count): rng = random.Random(f"{SEED}-{bucket}") n_seeds = len(seeds) @@ -142,7 +528,7 @@ def build_bucket(bucket, seeds, target_count): return [] if target_count <= n_seeds: print(f"[WARN] bucket '{bucket}': target ({target_count}) <= seeds ({n_seeds}), se usan solo los seeds originales") - return [vary_example(ex, rng, 0) for ex in seeds] + return [vary_example(ex, rng, 0, bucket) for ex in seeds] result = [] variant_idx = 0 @@ -153,12 +539,188 @@ def build_bucket(bucket, seeds, target_count): for i in seed_order: if len(result) >= target_count: break - result.append(vary_example(seeds[i], rng, variant_idx)) + result.append(vary_example(seeds[i], rng, variant_idx, bucket)) variant_idx += 1 print(f"[INFO] bucket '{bucket}': {n_seeds} seeds -> {len(result)} ejemplos ({variant_idx} pasadas de variacion)") return result +# ------------------------------------------------------------------------------------------ +# Asserts sobre el corpus ensamblado +# ------------------------------------------------------------------------------------------ +def trajectory_key(example): + """Identidad de la trayectoria: messages + tools, sin meta.""" + return json.dumps( + {"messages": example.get("messages"), "tools": example.get("tools")}, + ensure_ascii=False, + sort_keys=True, + ) + + +def iter_code_calls(example): + """(tool_call_id, code) de cada llamada a execute_code, en orden de aparicion.""" + for msg in example.get("messages", []) or []: + for tool_call in msg.get("tool_calls") or []: + args = tool_call.get("function", {}).get("arguments") + if isinstance(args, dict) and isinstance(args.get("code"), str): + yield tool_call.get("id"), args["code"] + + +def iter_code_payloads(example): + for _call_id, code in iter_code_calls(example): + yield code + + +def assert_penpot_not_collapsed(examples, n_seeds): + """El bucket penpot esta exento de sustitucion de valores, asi que si la augmentacion no + produce trayectorias realmente distintas, 320 filas son 96 ejemplos repetidos. En Fase 2 + esto era 99 filas -> 40 trayectorias unicas sobre 41 seeds.""" + rows = [ex for ex in examples if ex.get("meta", {}).get("bucket") == "penpot"] + if not rows: + return + unique_trajectories = len({trajectory_key(ex) for ex in rows}) + unique_code = len({code for ex in rows for code in iter_code_payloads(ex)}) + minimum = PENPOT_UNIQUE_RATIO * n_seeds + print( + f"[INFO] penpot: {len(rows)} filas, {unique_trajectories} trayectorias unicas, " + f"{unique_code} payloads de code unicos, {n_seeds} seeds " + f"(minimo exigido: {minimum:.0f} trayectorias unicas)" + ) + assert unique_trajectories >= minimum, ( + f"[ASSERT FAIL] el bucket penpot colapso: {unique_trajectories} trayectorias unicas " + f"sobre {n_seeds} seeds (minimo {minimum:.0f} = {PENPOT_UNIQUE_RATIO} x seeds). La " + f"augmentacion no esta augmentando nada: agregar meta.paraphrases a los seeds o " + f"escribir seeds nuevos. Perturbar los payloads NO es una opcion (son codigo)." + ) + # El bucket esta exento de sustitucion: los payloads de code del corpus generado tienen + # que ser exactamente los de los seeds, ni uno mas ni uno menos. + assert unique_code > 0, "[ASSERT FAIL] el bucket penpot no tiene ningun payload de code" + + +AUTHORED_PREFIX_LEN = 40 + + +def authored_user_openings(by_bucket, replay_examples): + """Los primeros caracteres de cada turno de usuario escrito a mano (seeds, parafrasis a + mano y replay). 'Che, ¿que significa X?' es castellano perfectamente valido cuando lo + escribio una persona; lo que esta prohibido es que lo produzca nuestra inyeccion de + prefijos. Se comparan solo las primeras letras para que una sustitucion de valores mas + adelante en la frase no rompa la comparacion.""" + openings = set() + + def add(text): + if isinstance(text, str) and text: + openings.add(text[:AUTHORED_PREFIX_LEN]) + + sources = list(replay_examples) + for examples in by_bucket.values(): + sources.extend(examples) + for ex in sources: + for paraphrase in (ex.get("meta", {}) or {}).get("paraphrases") or []: + add(paraphrase) + for msg in ex.get("messages", []) or []: + if msg.get("role") == "user": + add(msg.get("content") or "") + return openings + + +def assert_no_broken_prefixes(examples, authored_openings): + """El assert que mata los 68 prompts rotos: cero turnos de usuario con un prefijo de + parafraseo pegado delante de una pregunta ya formada.""" + offenders = [] + for ex in examples: + for msg in ex.get("messages", []) or []: + if msg.get("role") != "user": + continue + content = msg.get("content") or "" + if BROKEN_PREFIX_RE.search(content): + if content[:AUTHORED_PREFIX_LEN] in authored_openings: + continue # escrito a mano, no inyectado + offenders.append(content[:120]) + assert not offenders, ( + f"[ASSERT FAIL] {len(offenders)} turno(s) de usuario con un prefijo de parafraseo " + f"pegado delante de una pregunta ya formada. Primero: {offenders[0]!r}" + ) + print("[OK] 0 turnos de usuario con prefijo de parafraseo agramatical") + + +def error_result_call_ids(example): + """tool_call_id cuyo resultado NO es JSON, es decir, un string de error real.""" + ids = set() + for msg in example.get("messages", []) or []: + if msg.get("role") != "tool": + continue + content = (msg.get("content") or "").strip() + if content and not content.startswith(("{", "[")): + ids.add(msg.get("tool_call_id")) + return ids + + +def is_corrected_mistake(example, call_id, rx): + """Mismo criterio que 07_lint_penpot_code.py: un payload puede traer un patron prohibido + si y solo si (a) su tool result fue un error real y (b) una llamada POSTERIOR del mismo + ejemplo hace lo mismo SIN el patron. O sea: el error ocurrio de verdad y fue corregido. + Es el material de los grupos A1 y D (auto-correccion desde errores reales).""" + if call_id not in error_result_call_ids(example): + return False + seen = False + for cid, code in iter_code_calls(example): + if seen and not rx.search(code): + return True + if cid == call_id: + seen = True + return False + + +def assert_no_forbidden_patterns(examples, patterns): + """Cero ocurrencias de la API prohibida de Penpot en el corpus ensamblado. + + Alcance: los payloads de `code` (donde la API se INVOCA de verdad), de todos los buckets. + La prosa (reasoning_content, content, tool results) queda deliberadamente fuera: un seed + tiene que poder nombrar la forma equivocada para advertir contra ella, y la puerta que + mide la prosa es otra. La fuente de verdad de los patrones es 07_lint_penpot_code.py. + """ + problems = [] + for idx, ex in enumerate(examples): + bucket = ex.get("meta", {}).get("bucket", "sin_bucket") + for call_id, code in iter_code_calls(ex): + for name, rx in patterns: + if not rx.search(code): + continue + if is_corrected_mistake(ex, call_id, rx): + continue + for m in rx.finditer(code): + line_start = code.rfind("\n", 0, m.start()) + 1 + line_end = code.find("\n", m.end()) + line = code[line_start: line_end if line_end != -1 else len(code)] + # La clave `layout` SI existe en la salida de shapeStructure(): esas + # lineas no son la propiedad inexistente del shape. + if "shapeStructure" in line: + continue + problems.append( + f"ejemplo #{idx} (bucket={bucket}): [{name}] ...{line.strip()[:120]}..." + ) + assert not problems, ( + f"[ASSERT FAIL] {len(problems)} ocurrencia(s) de API prohibida de Penpot en los " + f"payloads de code del corpus ensamblado (fuente de verdad de los patrones: " + f"{LINT_PATH.name}):\n - " + "\n - ".join(problems[:20]) + ) + print(f"[OK] 0 ocurrencias de los {len(patterns)} patrones prohibidos de Penpot en los payloads de code") + + +def guard_output(path): + if path.exists() and not ALLOW_OVERWRITE: + print( + f"[ABORT] {path} ya existe.\n" + f" data/train.jsonl y data/eval.jsonl son la procedencia exacta del modelo " + f"en produccion y el baseline de la puerta 1: regenerarlos los destruye, y ademas " + f"NO es idempotente (ver el docstring).\n" + f" Escribi a archivos nuevos con TRAIN_OUT=... EVAL_OUT=..., o corre con " + f"ALLOW_OVERWRITE=1 si de verdad queres pisarlo." + ) + sys.exit(1) + + def stratified_split(all_examples, rng): by_bucket = {} for ex in all_examples: @@ -179,6 +741,7 @@ def stratified_split(all_examples, rng): def write_jsonl(path, examples): + path.parent.mkdir(parents=True, exist_ok=True) with open(path, "w", encoding="utf-8") as f: for ex in examples: f.write(json.dumps(ex, ensure_ascii=False)) @@ -187,6 +750,25 @@ def write_jsonl(path, examples): def main(): + print("=" * 78) + print("CONFIGURACION DE ESTA BUILD") + print("=" * 78) + for label, value in [ + ("SEEDS_DIR", SEEDS_DIR), + ("REPLAY_FILE", REPLAY_PATH), + ("TRAIN_OUT", TRAIN_PATH), + ("EVAL_OUT", EVAL_PATH), + ("ALLOW_OVERWRITE", ALLOW_OVERWRITE), + ("BUCKET_TARGETS", BUCKET_TARGETS), + ]: + print(f" {label:18} {value}") + print("=" * 78) + + guard_output(TRAIN_PATH) + guard_output(EVAL_PATH) + + forbidden_patterns = load_forbidden_patterns() + by_bucket = load_seeds() assert_no_held_out_skill(by_bucket) @@ -195,6 +777,8 @@ def main(): seeds = by_bucket.get(bucket, []) all_examples.extend(build_bucket(bucket, seeds, target_count)) + assert_penpot_not_collapsed(all_examples, len(by_bucket.get("penpot", []))) + replay_examples = load_jsonl(REPLAY_PATH) for ex in replay_examples: ex.setdefault("meta", {})["bucket"] = "replay" @@ -203,6 +787,9 @@ def main(): print(f"[INFO] total combinado: {len(all_examples)} ejemplos") + assert_no_broken_prefixes(all_examples, authored_user_openings(by_bucket, replay_examples)) + assert_no_forbidden_patterns(all_examples, forbidden_patterns) + split_rng = random.Random(SEED) train, eval_ = stratified_split(all_examples, split_rng) diff --git a/scripts/06_validate_dataset.py b/scripts/06_validate_dataset.py index b121b3b..869b7ec 100644 --- a/scripts/06_validate_dataset.py +++ b/scripts/06_validate_dataset.py @@ -1,5 +1,9 @@ -"""Fase 2: valida data/train.jsonl y data/eval.jsonl contra el tokenizer/chat_template REAL -del modelo de produccion. +"""Fase 2 (revisado en Fase 6): valida los jsonl de dataset (por defecto data/train.jsonl y +data/eval.jsonl) contra el tokenizer/chat_template REAL del modelo de produccion. + +Nota sobre emails de contacto en el copy de los seeds: `example.com` ya esta en +SAFE_EMAIL_DOMAINS, asi que una direccion como `reservas@example.com` en el texto de una +landing pasa el gate de secretos sin cambios. Cualquier otro dominio lo hace fallar. Corre DENTRO del contenedor `qwen-lora-train` en spark (necesita `transformers` con el chat_template.jinja real de Qwen3.6, no una version instalada localmente). Invocar via: @@ -23,26 +27,64 @@ usa en inferencia/produccion y no se toca. Por cada ejemplo: tokenizer.apply_chat_template(messages, tools=..., tokenize=True, return_assistant_tokens_mask=True, return_dict=True) -- assert sin excepcion, mascara de -assistant no vacia. Filtra (no trunca) ejemplos que excedan MAX_TOKENS. Re-corre un gate de -secretos (regex explicitas, igual que 04_sanitize.py, sin depender de detect-secrets -- -puede no estar instalado en este contenedor) sobre train.jsonl/eval.jsonl como ultima linea -de defensa. Reporta un resumen final por bucket. +assistant no vacia. Re-corre un gate de secretos (regex explicitas, igual que 04_sanitize.py, +sin depender de detect-secrets -- puede no estar instalado en este contenedor) sobre los +archivos validados como ultima linea de defensa. Reporta un resumen final por bucket con el +histograma de longitudes (p50/p90/p99/max). + +PARAMETROS POR ENV +------------------ + VALIDATE_FILES lista de jsonl separados por coma (def: data/train.jsonl,data/eval.jsonl) + MAX_TOKENS tope duro de longitud (def: 8192) + PRESERVE_THINKING '1' para conservar el thinking de turnos previos (def: off) + MODEL_PATH ruta del tokenizer (o argv[1]) + +Las rutas relativas se resuelven contra la raiz del repo. Ejemplo de Fase 6: + + VALIDATE_FILES=data/train_lora2.jsonl,data/eval_lora2.jsonl \ + MAX_TOKENS=3000 PRESERVE_THINKING=1 \ + python3 scripts/06_validate_dataset.py + +**El tope de longitud ABORTA, no filtra.** Hasta la Fase 6 este script imprimia `[FILTERED]` +e incrementaba un contador, pero la fila se quedaba en el archivo y `10_train.py` (que corre +sin `max_seq_length` y con batch 1) la entrenaba igual: era un falso sentido de seguridad que +podia reventar el presupuesto de memoria a mitad de corrida, horas adentro. Ahora un solo +ejemplo por encima de MAX_TOKENS termina en `sys.exit(1)`. + +**PRESERVE_THINKING tiene que coincidir con el del training.** El template condiciona el +thinking de los turnos previos a `preserve_thinking`; si este script valida con el flag +apagado y el training entrena con el prendido, se esta midiendo otra cosa (otra longitud y +otra mascara). """ import json +import os import re import sys from pathlib import Path from transformers import AutoTokenizer -MODEL_PATH = sys.argv[1] if len(sys.argv) > 1 else "/workspace/ft-models/Qwen--Qwen3.6-35B-A3B" REPO_ROOT = Path(__file__).resolve().parent.parent + + +def _resolve(raw): + """Las rutas relativas cuelgan de la raiz del repo.""" + p = Path(raw.strip()) + return p if p.is_absolute() else REPO_ROOT / p + + +MODEL_PATH = ( + sys.argv[1] if len(sys.argv) > 1 + else os.environ.get("MODEL_PATH", "/workspace/ft-models/Qwen--Qwen3.6-35B-A3B") +) TRAIN_CHAT_TEMPLATE_PATH = REPO_ROOT / "data" / "chat_template_train.jinja" -MAX_TOKENS = 8192 +MAX_TOKENS = int(os.environ.get("MAX_TOKENS", "8192")) +PRESERVE_THINKING = os.environ.get("PRESERVE_THINKING", "").lower() in ("1", "true", "yes") DATASET_FILES = [ - REPO_ROOT / "data" / "train.jsonl", - REPO_ROOT / "data" / "eval.jsonl", + _resolve(part) + for part in os.environ.get("VALIDATE_FILES", "data/train.jsonl,data/eval.jsonl").split(",") + if part.strip() ] # Mismos patrones explicitos que 04_sanitize.py (subset sin dependencia de detect-secrets, @@ -107,10 +149,23 @@ def strip_tools_for_check(tools): return tools +def percentile(sorted_values, q): + """Percentil por el metodo del vecino mas cercano (sin numpy: este contenedor puede no + tenerlo y no vale la pena una dependencia por esto).""" + if not sorted_values: + return 0 + idx = min(len(sorted_values) - 1, max(0, int(round(q * (len(sorted_values) - 1))))) + return sorted_values[idx] + + def validate_example(tokenizer, example): messages = example["messages"] tools = strip_tools_for_check(example.get("tools")) + template_kwargs = {} + if PRESERVE_THINKING: + template_kwargs["preserve_thinking"] = True + rendered = tokenizer.apply_chat_template( messages, tools=tools, @@ -118,6 +173,7 @@ def validate_example(tokenizer, example): return_assistant_tokens_mask=True, return_dict=True, add_generation_prompt=False, + **template_kwargs, ) input_ids = rendered["input_ids"] @@ -141,9 +197,13 @@ def main(): print(f"[INFO] reemplazando chat_template por la variante de training con masking: {TRAIN_CHAT_TEMPLATE_PATH}") tokenizer.chat_template = TRAIN_CHAT_TEMPLATE_PATH.read_text(encoding="utf-8") + print(f"[INFO] archivos: {', '.join(str(p) for p in DATASET_FILES)}") + print(f"[INFO] MAX_TOKENS={MAX_TOKENS} (aborta, no filtra) PRESERVE_THINKING={PRESERVE_THINKING}") + summary = {} + lengths_by_bucket = {} + too_long = [] total_exceptions = 0 - total_filtered_length = 0 total_ok = 0 for path in DATASET_FILES: @@ -156,7 +216,7 @@ def main(): for lineno, example in examples: bucket = example.get("meta", {}).get("bucket", "sin_bucket") - stats = summary.setdefault(bucket, {"ok": 0, "exceptions": 0, "filtered_length": 0}) + stats = summary.setdefault(bucket, {"ok": 0, "exceptions": 0, "too_long": 0}) try: n_tokens, mask_sum = validate_example(tokenizer, example) @@ -166,34 +226,72 @@ def main(): print(f"[EXCEPTION] {path.name}:{lineno} (bucket={bucket}): {e}") continue + lengths_by_bucket.setdefault(bucket, []).append(n_tokens) + if n_tokens > MAX_TOKENS: - stats["filtered_length"] += 1 - total_filtered_length += 1 - print(f"[FILTERED] {path.name}:{lineno} (bucket={bucket}): {n_tokens} tokens > {MAX_TOKENS}") + stats["too_long"] += 1 + too_long.append((path.name, lineno, bucket, n_tokens)) + print(f"[TOO LONG] {path.name}:{lineno} (bucket={bucket}): {n_tokens} tokens > {MAX_TOKENS}") continue stats["ok"] += 1 total_ok += 1 - print("\n[INFO] re-corriendo gate de secretos sobre train.jsonl/eval.jsonl") + print("\n[INFO] re-corriendo gate de secretos sobre los archivos validados") secret_problems = [] for path in DATASET_FILES: secret_problems.extend(secrets_gate(path)) print("\n=== RESUMEN POR BUCKET ===") for bucket, stats in sorted(summary.items()): - print(f" {bucket}: ok={stats['ok']} filtrados_por_longitud={stats['filtered_length']} excepciones={stats['exceptions']}") + print(f" {bucket}: ok={stats['ok']} sobre_max_tokens={stats['too_long']} excepciones={stats['exceptions']}") - print(f"\n=== TOTAL: ok={total_ok} filtrados_por_longitud={total_filtered_length} excepciones={total_exceptions} ===") + # Histograma de longitudes: es lo que permite decidir si MAX_TOKENS esta bien puesto ANTES + # de quemar una corrida de entrenamiento. Un p99 pegado al tope significa que el proximo + # seed largo aborta la build; un maximo muy por debajo significa que se puede bajar el tope + # (y con el, el pico de memoria). + print("\n=== HISTOGRAMA DE TOKENS POR BUCKET (p50 / p90 / p99 / max) ===") + all_lengths = [] + for bucket, lengths in sorted(lengths_by_bucket.items()): + ordered = sorted(lengths) + all_lengths.extend(ordered) + print( + f" {bucket:24} n={len(ordered):5} p50={percentile(ordered, 0.50):6} " + f"p90={percentile(ordered, 0.90):6} p99={percentile(ordered, 0.99):6} " + f"max={ordered[-1]:6}" + ) + if all_lengths: + ordered = sorted(all_lengths) + print( + f" {'TOTAL':24} n={len(ordered):5} p50={percentile(ordered, 0.50):6} " + f"p90={percentile(ordered, 0.90):6} p99={percentile(ordered, 0.99):6} " + f"max={ordered[-1]:6} (MAX_TOKENS={MAX_TOKENS})" + ) + + print(f"\n=== TOTAL: ok={total_ok} sobre_max_tokens={len(too_long)} excepciones={total_exceptions} ===") if secret_problems: - print(f"\n[GATE FAIL] {len(secret_problems)} secretos sobrevivientes en train/eval:") + print(f"\n[GATE FAIL] {len(secret_problems)} secretos sobrevivientes:") for problem in secret_problems: print(f" - {problem}") else: - print("\n[GATE OK] 0 secretos sobrevivientes en train.jsonl/eval.jsonl") + print("\n[GATE OK] 0 secretos sobrevivientes en los archivos validados") - if total_exceptions > 0 or secret_problems: + if too_long: + print(f"\n[GATE FAIL] {len(too_long)} ejemplo(s) superan MAX_TOKENS={MAX_TOKENS}:") + for fname, lineno, bucket, n_tokens in too_long: + print(f" - {fname}:{lineno} (bucket={bucket}): {n_tokens} tokens") + print( + " Estas filas NO se filtran solas: 10_train.py corre sin max_seq_length y con\n" + " batch 1, asi que las entrenaria enteras y podria reventar el presupuesto de\n" + " memoria a mitad de corrida. Hay que arreglar el dataset, no el validador.\n" + " Como arreglarlo: partir la trayectoria larga en DOS ejemplos, persistiendo los\n" + " ids que el segundo necesita en `storage` (penpot.local_storage) al final del\n" + " primero y leyendolos al principio del segundo. Ademas de bajar la longitud, es\n" + " mejor pedagogia: es exactamente lo que la descripcion de execute_code pide." + ) + + if total_exceptions > 0 or secret_problems or too_long: sys.exit(1) sys.exit(0) diff --git a/scripts/07_build_lora2_mix.py b/scripts/07_build_lora2_mix.py index 8428c2d..57c8da8 100644 --- a/scripts/07_build_lora2_mix.py +++ b/scripts/07_build_lora2_mix.py @@ -73,6 +73,10 @@ N_TRAIN = 900 EVAL_FRACTION = 0.10 N_CALIBRATION = 256 +# Minimo de prompts de usuario distintos en la porcion nueva, como multiplo del numero de seeds. +# 96 seeds x (1 original + 3 parafraseos) = 384 >= 240. Si baja de ahi es que faltan parafraseos. +MIN_PROMPT_RATIO = 2.5 + # grupo de seed -> porcion de la mezcla PORTION_OF_GROUP = { "A1": "api_forma_correcta", "A2": "api_forma_correcta", "A3": "api_forma_correcta", @@ -340,6 +344,31 @@ def main(): print("[OK] cero patrones de la API vieja en la mezcla final " "(fuera de la porcion de recuperacion de error, donde son el material didactico)") + # Guarda anti-colapso, analoga a la de 05_build_dataset.py. Sin ella, la porcion nueva puede + # ser 420 ejemplos que son 96 trayectorias repetidas 4.4 veces cada una, y nada lo diria: el + # conteo de filas se ve perfecto. Es exactamente lo que le pasa a la v1, donde 99 filas de + # penpot colapsan a 40 trayectorias objetivo unicas. + nuevos = [ex for ex in mixed if not ex["meta"]["porcion"].startswith("replay")] + def first_user(ex): + for m in ex["messages"]: + if m.get("role") == "user": + return m.get("content", "") + return "" + n_prompts = len(set(first_user(ex) for ex in nuevos)) + n_trayectorias = len(set(json.dumps(ex["messages"], ensure_ascii=False) for ex in nuevos)) + min_prompts = round(MIN_PROMPT_RATIO * len(seeds)) + print(f"\n[INFO] porcion nueva: {len(nuevos)} ejemplos, {n_trayectorias} trayectorias unicas, " + f"{n_prompts} prompts de usuario distintos (minimo {min_prompts})") + if n_prompts < min_prompts: + raise SystemExit( + f"[ABORT] solo {n_prompts} prompts de usuario distintos en la porcion nueva, minimo " + f"{min_prompts} ({MIN_PROMPT_RATIO} x {len(seeds)} seeds).\n" + f" La variacion sale UNICAMENTE de `meta.paraphrases` (2-3 reescrituras a mano " + f"del turno del usuario por seed).\n" + f" Seeds sin `meta.paraphrases`: " + f"{sum(1 for s in seeds if not s.get('meta', {}).get('paraphrases'))} de {len(seeds)}." + ) + counts = Counter(ex["meta"]["porcion"] for ex in mixed) print("\n=== COMPOSICION DE LA MEZCLA ===") penpot_new = 0 diff --git a/scripts/31_build_holdout_prompts.py b/scripts/31_build_holdout_prompts.py index 97ce750..884c082 100644 --- a/scripts/31_build_holdout_prompts.py +++ b/scripts/31_build_holdout_prompts.py @@ -1,12 +1,37 @@ -"""Fase 4 -- genera data/holdout_prompts.jsonl: ~200 prompts held-out para la Puerta 2 -(validez de tool-calls), cubriendo los 5 MCPs, sin overlap con train.jsonl/eval.jsonl. +"""Fase 4 (rebalanceado en Fase 6) -- genera data/holdout_prompts.jsonl: ~200 prompts +held-out para la Puerta 2 (validez de tool-calls), cubriendo los 5 MCPs, sin overlap con +train.jsonl/eval.jsonl. Cada linea: {"prompt": "...", "mcp": "penpot|gitea|github-personal|docmost|atlassian", -"tools": [...schema real del MCP...]}. Corre localmente, no requiere GPU. +"expect": "...", "tools": [...schema real del MCP...]}. Corre localmente, no requiere GPU. Variacion deterministica (random.seed(43), semilla distinta de la de 05_build_dataset.py -para no reusar la misma secuencia) sobre plantillas por MCP -- nunca copia textual de un -ejemplo de train/eval (se verifica al final contra el texto normalizado de ambos archivos). +para no reusar la misma secuencia) sobre plantillas por MCP. + +QUE CAMBIO EN LA FASE 6 +----------------------- +1. **Rebalanceo a penpot=60 / 35 por cada uno de los otros cuatro MCPs.** La Fase 6 solo + agrega capacidad de diseno en Penpot: ahi es donde hace falta resolucion de medicion. +2. **PENPOT_DESIGN_TEMPLATES**: prompts de diseno real (landing, card, navbar, dashboard, + pantalla mobile, precios, galeria, formulario...), con dominios, medidas y estilos + variados. Son la materia prima del holdout de la puerta 5. +3. **Chequeo de shingles de 6-gramas** contra train.jsonl/eval.jsonl. Antes solo se + comparaba igualdad de string completo, que cualquier parafrasis esquiva: el holdout + podia estar contaminado sin que nada lo notara. Ahora un solapamiento de shingles por + encima de MAX_SHINGLE_OVERLAP hace fallar la build. +4. **Pools de valores disjuntos**: los dominios, colores, medidas, repos y nombres que usa + el holdout no aparecen en los seeds ni en train/eval, y se asierta. +5. **Campo `expect`** por prompt, para que las puertas puedan clasificar. En particular: + - El template de "exportar a 2x de resolucion" NO estaba roto: es una **sonda de + invencion de parametros** (`scale` no existe en el schema de `export_shape`). Se queda, + reetiquetado como `no-invented-args`, y ahora la puerta 2 efectivamente lo detecta + (ver el cambio de `validate_tool_call` en 32_gate2_toolcalls.py). + - El template de `createBoolean` tampoco estaba roto: `createBoolean(boolType, shapes)` + es API real y verificada (ver data/schemas/PENPOT_API_VERIFIED.md). El bug era testear + algo que ningun seed ensenaba; los seeds del grupo B2 de la Fase 6 lo ensenan. + +Las funciones de shingles se exportan a proposito: scripts/35_build_penpot_design_holdout.py +las importa para usar EXACTAMENTE el mismo criterio de contaminacion. """ import json import random @@ -14,6 +39,7 @@ from pathlib import Path REPO_ROOT = Path(__file__).resolve().parent.parent SCHEMAS_DIR = REPO_ROOT / "data" / "schemas" +SEEDS_DIR = REPO_ROOT / "data" / "raw" / "seeds" TRAIN_PATH = REPO_ROOT / "data" / "train.jsonl" EVAL_PATH = REPO_ROOT / "data" / "eval.jsonl" OUT_PATH = REPO_ROOT / "data" / "holdout_prompts.jsonl" @@ -21,102 +47,55 @@ OUT_PATH = REPO_ROOT / "data" / "holdout_prompts.jsonl" SEED = 43 TARGET_TOTAL = 200 +# Fase 6: el grueso de la medicion se mueve a penpot, que es la unica capacidad que el +# LoRA #2 toca. 60 + 4*35 = 200, el mismo total que en las Fases 4-5. MCP_TARGETS = { - "penpot": 40, - "gitea": 40, - "github-personal": 40, - "docmost": 40, - "atlassian": 40, + "penpot": 60, + "gitea": 35, + "github-personal": 35, + "docmost": 35, + "atlassian": 35, } -PENPOT_TEMPLATES = [ - "Crea un rectangulo de {w}x{h} en el board '{board}' con color {color}.", - "Necesito un texto que diga '{text}' dentro del board '{board}', alineado a la izquierda.", - "Cambia el fill del shape '{shape}' a {color} y verifica que se aplico.", - "Agrega un board nuevo llamado '{board}' de {w}x{h} px en la pagina actual.", - "Exporta el shape '{shape}' como PNG a 2x de resolucion.", - "Lista los shapes del board '{board}' y decime cuales son grupos.", - "Mueve el shape '{shape}' a la posicion x={w}, y={h} dentro de '{board}'.", - "Crea un boolean de union entre '{shape}' y otro rectangulo superpuesto.", -] +# --- deteccion de contaminacion ---------------------------------------------------- -GITEA_TEMPLATES = [ - "Crea una rama llamada '{branch}' en el repo '{repo}' desde main.", - "Abri un issue en '{repo}' titulado '{text}' con la label 'bug'.", - "Lista los pull requests abiertos del repo '{repo}'.", - "Crea un release '{branch}' en '{repo}' con las notas '{text}'.", - "Busca commits recientes en '{repo}' que mencionen '{text}'.", - "Agrega un comentario '{text}' al issue numero {num} de '{repo}'.", - "Revisa el estado de los actions/workflows del repo '{repo}'.", - "Mergea (solo si el usuario lo pide explicitamente) el PR numero {num} de '{repo}'.", -] - -GITHUB_TEMPLATES = [ - "Crea un pull request en '{repo}' desde la rama '{branch}' hacia main, titulo '{text}'.", - "Lista los issues abiertos de '{repo}' con label 'enhancement'.", - "Agrega un comentario '{text}' al PR numero {num} de '{repo}'.", - "Busca en '{repo}' el codigo que define la funcion '{text}'.", - "Crea un issue en '{repo}' titulado '{text}' asignado a mi usuario.", - "Revisa los commits recientes de la rama '{branch}' en '{repo}'.", - "Lista los releases publicados de '{repo}'.", - "Solicita una review de Copilot para el PR numero {num} de '{repo}'.", -] - -DOCMOST_TEMPLATES = [ - "Crea una pagina llamada '{text}' en el space '{repo}' con una tabla de {num} columnas.", - "Busca en Docmost paginas que mencionen '{text}'.", - "Actualiza la pagina '{text}' agregando una fila mas a la tabla existente.", - "Comenta '{text}' en la pagina con id conocido del space '{repo}'.", - "Lista las paginas del space '{repo}' ordenadas por actualizacion reciente.", - "Crea una subpagina '{text}' bajo la pagina principal del space '{repo}'.", - "Revisa si hay comentarios nuevos en el space '{repo}' desde ayer.", - "Mueve la pagina '{text}' a otro parent dentro del space '{repo}'.", -] - -ATLASSIAN_TEMPLATES = [ - "Crea un issue de Jira en el proyecto '{repo}' titulado '{text}', tipo Bug.", - "Busca issues de Jira asignados a mi usuario con JQL en el proyecto '{repo}'.", - "Agrega un comentario '{text}' al issue {repo}-{num} de Jira.", - "Transiciona el issue {repo}-{num} a 'In Progress'.", - "Crea una pagina de Confluence '{text}' en el espacio '{repo}'.", - "Busca en Confluence paginas del espacio '{repo}' que mencionen '{text}'.", - "Agrega un worklog de 1h al issue {repo}-{num} con el comentario '{text}'.", - "Lista los tipos de issue disponibles en el proyecto '{repo}' de Jira.", -] - -MCP_TEMPLATES = { - "penpot": PENPOT_TEMPLATES, - "gitea": GITEA_TEMPLATES, - "github-personal": GITHUB_TEMPLATES, - "docmost": DOCMOST_TEMPLATES, - "atlassian": ATLASSIAN_TEMPLATES, -} - -WORDS = [ - "dashboard", "login", "checkout", "onboarding", "reporte semanal", "bugfix urgente", - "modal de confirmacion", "flujo de pago", "endpoint de usuarios", "cache de sesion", - "migracion de datos", "notificaciones push", "tema oscuro", "landing page", - "formulario de contacto", "panel de admin", "integracion con Stripe", "tabla de precios", - "footer del sitio", "header responsive", -] -REPOS = ["backend-core", "frontend-app", "infra-tools", "data-pipeline", "mobile-client"] -BRANCHES = ["feature/nueva-vista", "fix/timeout-api", "chore/deps", "hotfix/prod", "feature/dark-mode"] -BOARDS = ["Dashboard Principal", "Mobile Screens", "Design System", "Landing v2", "Checkout Flow"] -SHAPES = ["boton-cta", "card-producto", "icono-menu", "titulo-principal", "footer-logo"] -COLORS = ["#1a73e8", "#e8710a", "#188038", "#d93025", "#9334e6", "#12b5cb"] - - -def load_tools(mcp_name): - return json.loads((SCHEMAS_DIR / f"{mcp_name}.json").read_text(encoding="utf-8")) +SHINGLE_N = 6 +# Fraccion maxima de shingles de 6-gramas de un prompt held-out que puede aparecer en +# train/eval. Un prompt genuinamente nuevo comparte a lo sumo giros sueltos ("en el repo +# de", "de la pagina con"); una parafrasis de un ejemplo de training comparte la mayoria. +MAX_SHINGLE_OVERLAP = 0.34 def normalize(text): return " ".join(text.lower().split()) -def load_existing_texts(): - texts = set() - for path in (TRAIN_PATH, EVAL_PATH): +def shingles(text, n=SHINGLE_N): + """Conjunto de n-gramas de palabras del texto normalizado. + + Si el texto tiene menos de n palabras se devuelve el texto entero como unico shingle: + para prompts muy cortos la igualdad exacta es el unico criterio sensato. + """ + tokens = normalize(text).split() + if not tokens: + return set() + if len(tokens) < n: + return {" ".join(tokens)} + return {" ".join(tokens[i:i + n]) for i in range(len(tokens) - n + 1)} + + +def shingle_overlap(text, reference_shingles, n=SHINGLE_N): + """Fraccion de shingles del texto que ya existen en el corpus de referencia.""" + own = shingles(text, n) + if not own: + return 0.0 + return len(own & reference_shingles) / len(own) + + +def iter_user_texts(paths): + for path in paths: + if not Path(path).exists(): + continue with open(path, encoding="utf-8") as f: for line in f: line = line.strip() @@ -125,18 +104,265 @@ def load_existing_texts(): example = json.loads(line) for msg in example.get("messages", []): if msg.get("role") == "user" and isinstance(msg.get("content"), str): - texts.add(normalize(msg["content"])) - return texts + yield msg["content"] -def build_prompts(rng, mcp_name, count): - templates = MCP_TEMPLATES[mcp_name] - prompts = [] - for i in range(count): - template = templates[i % len(templates)] - text = template.format( - w=rng.choice([80, 120, 200, 320, 480]), - h=rng.choice([40, 60, 100, 240, 360]), +def load_reference_corpus(paths=(TRAIN_PATH, EVAL_PATH)): + """Devuelve (textos_normalizados, shingles) de los turnos de usuario de train/eval.""" + texts = set() + ref_shingles = set() + for content in iter_user_texts(paths): + texts.add(normalize(content)) + ref_shingles |= shingles(content) + return texts, ref_shingles + + +def assert_no_contamination(prompt, existing_texts, reference_shingles, origen=""): + """Hard-fail si el prompt es copia literal o parafrasis cercana de train/eval.""" + if normalize(prompt) in existing_texts: + raise AssertionError(f"prompt held-out{origen} colisiona literal con train/eval: {prompt!r}") + overlap = shingle_overlap(prompt, reference_shingles) + if overlap > MAX_SHINGLE_OVERLAP: + raise AssertionError( + f"prompt held-out{origen} solapa {overlap:.0%} de sus shingles de {SHINGLE_N}-gramas " + f"con train/eval (maximo {MAX_SHINGLE_OVERLAP:.0%}): {prompt!r}" + ) + return overlap + + +# --- pools de valores --------------------------------------------------------------- +# +# Pools que usaban los seeds y el holdout anterior a la Fase 6. Se conservan SOLO para +# asertar que los pools nuevos no reusan ninguno de sus valores: compartir el vocabulario +# de valores con el corpus de training es una fuga silenciosa que ninguna comparacion de +# strings completos detecta. +POOLS_PRE_FASE6 = { + "words": [ + "dashboard", "login", "checkout", "onboarding", "reporte semanal", "bugfix urgente", + "modal de confirmacion", "flujo de pago", "endpoint de usuarios", "cache de sesion", + "migracion de datos", "notificaciones push", "tema oscuro", "landing page", + "formulario de contacto", "panel de admin", "integracion con Stripe", "tabla de precios", + "footer del sitio", "header responsive", + ], + "repos": ["backend-core", "frontend-app", "infra-tools", "data-pipeline", "mobile-client"], + "branches": [ + "feature/nueva-vista", "fix/timeout-api", "chore/deps", "hotfix/prod", "feature/dark-mode", + ], + "boards": [ + "Dashboard Principal", "Mobile Screens", "Design System", "Landing v2", "Checkout Flow", + ], + "shapes": ["boton-cta", "card-producto", "icono-menu", "titulo-principal", "footer-logo"], + "colors": ["#1a73e8", "#e8710a", "#188038", "#d93025", "#9334e6", "#12b5cb"], + "widths": [80, 120, 200, 320, 480], + "heights": [40, 60, 100, 240, 360], +} + +# Pools del holdout. Disjuntos de los de arriba y ausentes del corpus de seeds/train/eval. +WORDS = [ + "buscador con filtros", "historial de pedidos", "widget de clima", "lector de codigos QR", + "linea de tiempo", "mapa de sucursales", "editor de firmas", "panel de alertas", + "carrusel de novedades", "calendario de turnos", "resumen de consumo", "selector de idioma", +] +REPOS = [ + "servicio-facturacion", "gateway-eventos", "cliente-escritorio", "motor-reportes", + "sincronizador-offline", "portal-proveedores", "indexador-catalogo", "bus-notificaciones", + "consola-soporte", +] +BRANCHES = [ + "feature/panel-metricas", "fix/reintentos-webhook", "chore/actualizar-lockfile", + "hotfix/zona-horaria", "feature/modo-lectura", +] +BOARDS = [ + "Catalogo Impreso", "Pantallas Kiosco", "Sistema Tipografico", "Portada Editorial", + "Flujo de Reserva", +] +SHAPES = ["chip-etiqueta", "banner-promo", "avatar-usuario", "separador-seccion", "badge-descuento"] +COLORS = ["#0e5f8a", "#c2410c", "#5b21b6", "#9d174d", "#166534", "#7e22ce", "#0d9488", "#831843"] +WIDTHS = [640, 720, 880, 1120, 1360] +HEIGHTS = [72, 96, 180, 420, 640] + +# Dominios de diseno: ninguno aparece en los seeds (los seeds usan pizzeria, SaaS, clinica, +# inmobiliaria, e-commerce...). La variedad de dominio es lo que impide que el modelo +# memorice una composicion y la repita. +DOMINIOS = [ + "una tostaduria de cafe de especialidad", + "un estudio de tatuajes", + "una veterinaria felina", + "una escuela de buceo", + "una libreria de comics", + "un vivero de plantas de interior", + "una fabrica de bicicletas de bambu", + "un observatorio astronomico", + "una heladeria artesanal", + "un taller de ceramica", + "un club de ajedrez", + "una panaderia sin gluten", + "un refugio de montana", + "una tienda de instrumentos de viento", + "una clinica de fisioterapia deportiva", + "un festival de cine documental", +] +ESTILOS = [ + "minimalista y luminoso", + "editorial con mucho contraste", + "retro setentoso", + "brutalista", + "pastel y suave", + "oscuro con acentos neon", +] + +# --- plantillas --------------------------------------------------------------------- +# +# Cada plantilla es (texto, expect). Valores de `expect`: +# tool-call-valido : caso normal, se espera una tool_call bien formada. +# no-invented-args : sonda -- el pedido tienta a inventar un argumento que el schema no +# declara (scale, filePath). La puerta 2 lo cuenta como +# unknown_argument. +# api-verificada : el pedido requiere un miembro de API real pero poco frecuente +# (createBoolean); mide si el modelo lo conoce en vez de improvisar. +# diseno-penpot : pedido de diseno real; alimenta ademas la puerta 5. + +PENPOT_TEMPLATES = [ + ("Crea un rectangulo de {w}x{h} en el board '{board}' con color {color}.", "tool-call-valido"), + ("Necesito un texto que diga '{text}' dentro del board '{board}', alineado a la izquierda.", "tool-call-valido"), + ("Cambia el fill del shape '{shape}' a {color} y verifica que se aplico.", "tool-call-valido"), + ("Agrega un board nuevo llamado '{board}' de {w}x{h} px en la pagina actual.", "tool-call-valido"), + ("Exporta el shape '{shape}' como PNG a 2x de resolucion.", "no-invented-args"), + ("Exporta el shape '{shape}' como PNG y dejalo guardado en /tmp/{shape}.png.", "no-invented-args"), + ("Lista los shapes del board '{board}' y decime cuales son grupos.", "tool-call-valido"), + ("Mueve el shape '{shape}' a la posicion x={w}, y={h} dentro de '{board}'.", "tool-call-valido"), + ("Crea un boolean de union entre '{shape}' y otro rectangulo superpuesto.", "api-verificada"), + ("Recorta el shape '{shape}' contra un circulo con una operacion booleana de interseccion.", "api-verificada"), +] + +PENPOT_DESIGN_TEMPLATES = [ + ("Armame una landing completa de {dominio}, {w} px de ancho, con hero, tres beneficios y footer. Estilo {estilo}, color principal {color}.", "diseno-penpot"), + ("Necesito una card de producto para {dominio}: foto arriba, titulo, precio y boton, de {w}x{h} y con esquinas redondeadas.", "diseno-penpot"), + ("Hazme un navbar de {w}x{h} para el sitio de {dominio}, con logo a la izquierda y cuatro enlaces a la derecha sobre fondo {color}.", "diseno-penpot"), + ("Hazme un dashboard para {dominio} con barra lateral, cuatro tarjetas de metricas y una tabla debajo, {w} de ancho.", "diseno-penpot"), + ("Pantalla mobile de {w}x{h} para la app de {dominio}: onboarding de tres pasos con ilustracion y boton primario {color}.", "diseno-penpot"), + ("Seccion de precios con tres planes para {dominio}, el del medio destacado, paleta {estilo}.", "diseno-penpot"), + ("Galeria de seis fotos de {dominio} en grid de tres columnas, con titulo y bajada arriba.", "diseno-penpot"), + ("Formulario de contacto de {dominio}: cuatro campos, un area de texto y boton de enviar, {w} de ancho.", "diseno-penpot"), + ("Hero de {w}x{h} para {dominio} con foto de fondo, un velo oscuro encima y titular en blanco.", "diseno-penpot"), + ("Hazme el encabezado y el pie de {dominio} con la misma paleta {estilo} y acento {color}.", "diseno-penpot"), + ("Pantalla de pago de {dominio}: resumen de compra a la derecha, datos de tarjeta a la izquierda, {w} de ancho.", "diseno-penpot"), + ("Armame un cuadro comparativo de {num} columnas para {dominio}, encabezado en {color} y filas alternadas.", "diseno-penpot"), + ("Necesito la escala tipografica de {dominio} en un board de {w}x{h}: seis tamanos del display al pie de foto.", "diseno-penpot"), + ("Defini la paleta de {dominio} en la biblioteca del archivo y aplicala a un boton primario y a uno secundario.", "diseno-penpot"), + ("Pantalla de perfil de {dominio} de {w}x{h}, con avatar, datos de la cuenta y actividad reciente.", "diseno-penpot"), + ("El board '{board}' quedo lleno de cajas grises sin nada de texto; convertilo en un diseno real de {dominio} usando {color}.", "diseno-penpot"), + ("Tres testimonios de clientes de {dominio} en tarjetas con foto, cita y nombre, {w} de ancho.", "diseno-penpot"), + ("Un cotizador simple para {dominio} de {w}x{h}: dos selectores, un deslizador y el resultado en grande.", "diseno-penpot"), + ("Pantalla de resultados de busqueda de {dominio}: filtros a la izquierda y ocho resultados en dos columnas, {w} de ancho.", "diseno-penpot"), + ("Banner promocional de {w}x{h} para {dominio}, estilo {estilo}, con un descuento bien visible y un boton.", "diseno-penpot"), +] + +GITEA_TEMPLATES = [ + ("Crea una rama llamada '{branch}' en el repo '{repo}' desde main.", "tool-call-valido"), + ("Abri un issue en '{repo}' titulado '{text}' con la label 'bug'.", "tool-call-valido"), + ("Decime que pull requests siguen abiertos hoy en '{repo}'.", "tool-call-valido"), + ("Crea un release '{branch}' en '{repo}' con las notas '{text}'.", "tool-call-valido"), + ("Busca commits recientes en '{repo}' que mencionen '{text}'.", "tool-call-valido"), + ("Agrega un comentario '{text}' al issue numero {num} de '{repo}'.", "tool-call-valido"), + ("Revisa el estado de los actions/workflows del repo '{repo}'.", "tool-call-valido"), + ("Mergea (solo si el usuario lo pide explicitamente) el PR numero {num} de '{repo}'.", "tool-call-valido"), +] + +GITHUB_TEMPLATES = [ + ("Crea un pull request en '{repo}' desde la rama '{branch}' hacia main, titulo '{text}'.", "tool-call-valido"), + ("Lista los issues abiertos de '{repo}' con label 'enhancement'.", "tool-call-valido"), + ("Agrega un comentario '{text}' al PR numero {num} de '{repo}'.", "tool-call-valido"), + ("Busca en '{repo}' el codigo que define la funcion '{text}'.", "tool-call-valido"), + ("Crea un issue en '{repo}' titulado '{text}' asignado a mi usuario.", "tool-call-valido"), + ("Revisa los commits recientes de la rama '{branch}' en '{repo}'.", "tool-call-valido"), + ("Lista los releases publicados de '{repo}'.", "tool-call-valido"), + ("Solicita una review de Copilot para el PR numero {num} de '{repo}'.", "tool-call-valido"), +] + +DOCMOST_TEMPLATES = [ + ("Crea una pagina llamada '{text}' en el space '{repo}' con una tabla de {num} columnas.", "tool-call-valido"), + ("Busca en Docmost paginas que mencionen '{text}'.", "tool-call-valido"), + ("Actualiza la pagina '{text}' agregando una fila mas a la tabla existente.", "tool-call-valido"), + ("Comenta '{text}' en la pagina con id conocido del space '{repo}'.", "tool-call-valido"), + ("Lista las paginas del space '{repo}' ordenadas por actualizacion reciente.", "tool-call-valido"), + ("Crea una subpagina '{text}' bajo la pagina principal del space '{repo}'.", "tool-call-valido"), + ("Fijate si quedo algun comentario sin responder en '{repo}' de esta semana.", "tool-call-valido"), + ("Mueve la pagina '{text}' a otro parent dentro del space '{repo}'.", "tool-call-valido"), +] + +ATLASSIAN_TEMPLATES = [ + ("Crea un issue de Jira en el proyecto '{repo}' titulado '{text}', tipo Bug.", "tool-call-valido"), + ("Busca issues de Jira asignados a mi usuario con JQL en el proyecto '{repo}'.", "tool-call-valido"), + ("Agrega un comentario '{text}' al issue {repo}-{num} de Jira.", "tool-call-valido"), + ("Transiciona el issue {repo}-{num} a 'In Progress'.", "tool-call-valido"), + ("Crea una pagina de Confluence '{text}' en el espacio '{repo}'.", "tool-call-valido"), + ("Busca en Confluence paginas del espacio '{repo}' que mencionen '{text}'.", "tool-call-valido"), + ("Agrega un worklog de 1h al issue {repo}-{num} con el comentario '{text}'.", "tool-call-valido"), + ("Lista los tipos de issue disponibles en el proyecto '{repo}' de Jira.", "tool-call-valido"), +] + +MCP_TEMPLATES = { + "penpot": PENPOT_TEMPLATES + PENPOT_DESIGN_TEMPLATES, + "gitea": GITEA_TEMPLATES, + "github-personal": GITHUB_TEMPLATES, + "docmost": DOCMOST_TEMPLATES, + "atlassian": ATLASSIAN_TEMPLATES, +} + + +def load_tools(mcp_name): + return json.loads((SCHEMAS_DIR / f"{mcp_name}.json").read_text(encoding="utf-8")) + + +def load_corpus_text(): + """Texto normalizado de todos los seeds + train + eval, para el chequeo de pools.""" + chunks = [] + for path in sorted(SEEDS_DIR.glob("*.jsonl")) + sorted((SEEDS_DIR / "_parts").glob("*.jsonl")): + chunks.append(path.read_text(encoding="utf-8")) + for path in (TRAIN_PATH, EVAL_PATH): + if path.exists(): + chunks.append(path.read_text(encoding="utf-8")) + return normalize(" ".join(chunks)) + + +def assert_pools_disjuntos(corpus_text): + """Los pools del holdout no comparten valores con los del corpus de training. + + Dos chequeos complementarios: (a) ningun valor de texto del holdout aparece en el + corpus de seeds/train/eval; (b) los pools numericos son disjuntos de los que usaba el + holdout anterior a la Fase 6, que si se solapaban con los seeds. + """ + pools_texto = { + "words": WORDS, "repos": REPOS, "branches": BRANCHES, "boards": BOARDS, + "shapes": SHAPES, "colors": COLORS, "dominios": DOMINIOS, "estilos": ESTILOS, + } + for nombre, valores in pools_texto.items(): + previos = set(POOLS_PRE_FASE6.get(nombre, [])) + repetidos = sorted(set(valores) & previos) + if repetidos: + raise AssertionError(f"pool '{nombre}' reusa valores del corpus viejo: {repetidos}") + for valor in valores: + if normalize(valor) in corpus_text: + raise AssertionError( + f"valor '{valor}' del pool '{nombre}' aparece en los seeds/train/eval: " + "el holdout tiene que usar vocabulario propio" + ) + + for nombre, valores in (("widths", WIDTHS), ("heights", HEIGHTS)): + repetidos = sorted(set(valores) & set(POOLS_PRE_FASE6[nombre])) + if repetidos: + raise AssertionError(f"pool numerico '{nombre}' reusa valores viejos: {repetidos}") + + print("[INFO] pools de valores disjuntos verificados " + f"({sum(len(v) for v in pools_texto.values())} valores de texto, " + f"{len(WIDTHS) + len(HEIGHTS)} numericos)") + + +def render(rng, template): + return template.format( + w=rng.choice(WIDTHS), + h=rng.choice(HEIGHTS), board=rng.choice(BOARDS), color=rng.choice(COLORS), shape=f"{rng.choice(SHAPES)}-{rng.randint(1, 99)}", @@ -144,24 +370,53 @@ def build_prompts(rng, mcp_name, count): repo=rng.choice(REPOS), branch=f"{rng.choice(BRANCHES)}-{rng.randint(1, 99)}", num=rng.randint(1, 500), - ) - prompts.append(text) + dominio=rng.choice(DOMINIOS), + estilo=rng.choice(ESTILOS), + ) + + +def build_prompts(rng, mcp_name, count, seen): + """Un prompt por plantilla, ciclando, sin repetir texto ya generado. + + Las plantillas con pocos placeholders (p.ej. solo {repo}) colisionaban al reusarse: + el holdout anterior tenia 15 prompts duplicados sobre 200, o sea 15 mediciones + desperdiciadas. Se reintenta con otros valores hasta obtener un texto nuevo. + """ + templates = MCP_TEMPLATES[mcp_name] + prompts = [] + for i in range(count): + template, expect = templates[i % len(templates)] + for _ in range(200): + text = render(rng, template) + if text not in seen: + break + else: + raise AssertionError( + f"la plantilla {template!r} no tiene suficientes combinaciones de valores " + "para generar un prompt nuevo: agregar valores a los pools" + ) + seen.add(text) + prompts.append((text, expect)) return prompts def main(): rng = random.Random(SEED) - existing_texts = load_existing_texts() - print(f"[INFO] {len(existing_texts)} prompts de usuario existentes en train.jsonl/eval.jsonl") + existing_texts, reference_shingles = load_reference_corpus() + print(f"[INFO] {len(existing_texts)} prompts de usuario existentes en train.jsonl/eval.jsonl, " + f"{len(reference_shingles)} shingles de {SHINGLE_N}-gramas de referencia") + + assert_pools_disjuntos(load_corpus_text()) examples = [] + max_overlap = 0.0 + seen = set() for mcp_name, count in MCP_TARGETS.items(): tools = load_tools(mcp_name) - prompts = build_prompts(rng, mcp_name, count) - for prompt in prompts: - if normalize(prompt) in existing_texts: - raise AssertionError(f"prompt held-out colisiona con train/eval: {prompt!r}") - examples.append({"prompt": prompt, "mcp": mcp_name, "tools": tools}) + for prompt, expect in build_prompts(rng, mcp_name, count, seen): + overlap = assert_no_contamination(prompt, existing_texts, reference_shingles) + max_overlap = max(max_overlap, overlap) + examples.append({"prompt": prompt, "mcp": mcp_name, "expect": expect, "tools": tools}) rng.shuffle(examples) @@ -173,9 +428,15 @@ def main(): f.write(json.dumps(ex, ensure_ascii=False) + "\n") print(f"[INFO] {len(examples)} prompts held-out escritos en {OUT_PATH}") + print(f"[INFO] solapamiento maximo de shingles contra train/eval: {max_overlap:.0%} " + f"(umbral {MAX_SHINGLE_OVERLAP:.0%})") for mcp_name in MCP_TARGETS: n = sum(1 for ex in examples if ex["mcp"] == mcp_name) print(f" {mcp_name}: {n}") + print("[INFO] por expect:") + for expect in sorted({ex["expect"] for ex in examples}): + n = sum(1 for ex in examples if ex["expect"] == expect) + print(f" {expect}: {n}") if __name__ == "__main__": diff --git a/scripts/32_gate2_toolcalls.py b/scripts/32_gate2_toolcalls.py index 3bc6ca3..a5cf613 100644 --- a/scripts/32_gate2_toolcalls.py +++ b/scripts/32_gate2_toolcalls.py @@ -12,13 +12,27 @@ configurado en docker-compose.eval.yml) lo hace vLLM en el servidor -- este scri valida la RESPUESTA ya parseada (nunca re-implementa el parser con una regex propia): - Si el modelo decide llamar una tool: valida que el nombre exista en el schema del MCP, - que los argumentos parseen como JSON valido, y que las propiedades "required" del - schema esten presentes. + que los argumentos parseen como JSON valido, que las propiedades "required" del + schema esten presentes, y que NINGUNA clave de argumento este ausente de + `parameters.properties` del schema. - Si el modelo NO llama ninguna tool: se cuenta aparte (no es un error per se, algunos prompts pueden resolverse sin tool-call, pero se reporta la tasa). Reporta: % de prompts con tool_call sintacticamente valido (parseado sin excepcion por -vLLM, arguments=JSON valido, nombre y campos requeridos correctos) por MCP y global. +vLLM, arguments=JSON valido, nombre, campos requeridos y claves de argumento correctos) +por MCP y global. + +FASE 6 -- la puerta premiaba la invencion de parametros +------------------------------------------------------- +Hasta la Fase 5 `validate_tool_call` solo chequeaba los `required` del schema: un argumento +INVENTADO que el schema no declara (`scale`, `filePath` en `export_shape`) **pasaba la +puerta**. Es decir, la puerta 2 premiaba activamente el comportamiento que la Fase 6 quiere +eliminar. Ahora toda clave ausente de `parameters.properties` es un fallo, contabilizado en +su propia categoria `unknown_argument` -- separada de `missing_required`, porque son errores +distintos y queremos poder medir la invencion por si sola. + +El formato del JSON de resultados se mantiene compatible con los `gate2_results*.json` de las +Fases 4-5: las claves viejas siguen ahi con el mismo significado, las nuevas son aditivas. """ import argparse import json @@ -75,25 +89,47 @@ def to_openai_tools(tools): return openai_tools +# Categorias de fallo, contabilizadas por separado. `unknown_argument` es la que mide +# invencion de parametros y por eso no se mezcla con `missing_required`. +FAILURE_KINDS = ("invalid_json", "unknown_tool", "missing_required", "unknown_argument") + + def validate_tool_call(tool_call, tools): + """Devuelve (ok, mensaje_de_error, categoria_de_fallo). + + La categoria es None cuando la llamada es valida. + """ name = tool_call["function"]["name"] raw_args = tool_call["function"]["arguments"] try: args = json.loads(raw_args) except json.JSONDecodeError as e: - return False, f"arguments no es JSON valido: {e}" + return False, f"arguments no es JSON valido: {e}", "invalid_json" tool_def = tool_by_name(tools, name) if tool_def is None: - return False, f"tool_call a nombre inexistente en el schema del MCP: {name}" + return False, f"tool_call a nombre inexistente en el schema del MCP: {name}", "unknown_tool" schema = tool_def.get("inputSchema") or tool_def.get("parameters") or {} required = schema.get("required", []) missing = [r for r in required if r not in args] if missing: - return False, f"faltan campos requeridos {missing} en la llamada a {name}" + return False, f"faltan campos requeridos {missing} en la llamada a {name}", "missing_required" - return True, None + # Invencion de parametros: cualquier clave que el schema no declare. Solo se puede + # juzgar si el schema declara `properties`; si no las declara (schema abierto), no hay + # con que comparar y no se penaliza. + properties = schema.get("properties") + if isinstance(properties, dict) and properties and isinstance(args, dict): + unknown = sorted(k for k in args if k not in properties) + if unknown: + return ( + False, + f"argumentos inventados {unknown} ausentes de properties del schema de {name}", + "unknown_argument", + ) + + return True, None, None def call_vllm(prompt, tools, timeout=240): @@ -121,7 +157,15 @@ def main(): print(f"[INFO] {len(examples)} prompts held-out, endpoint={BASE_URL}") results = [] - stats = defaultdict(lambda: {"total": 0, "valid_tool_call": 0, "no_tool_call": 0, "invalid": 0}) + # Las cuatro claves originales se mantienen tal cual para poder comparar contra los + # gate2_results*.json de las Fases 4-5; las de FAILURE_KINDS son aditivas. + def new_stats(): + base = {"total": 0, "valid_tool_call": 0, "no_tool_call": 0, "invalid": 0} + base.update({kind: 0 for kind in FAILURE_KINDS}) + base["request_error"] = 0 + return base + + stats = defaultdict(new_stats) t0 = time.time() for i, ex in enumerate(examples): @@ -134,6 +178,8 @@ def main(): results.append({"mcp": mcp, "prompt": ex["prompt"], "error": str(e)}) stats[mcp]["invalid"] += 1 stats["__global__"]["invalid"] += 1 + stats[mcp]["request_error"] += 1 + stats["__global__"]["request_error"] += 1 continue message = response["choices"][0]["message"] @@ -149,6 +195,7 @@ def main(): results.append({ "mcp": mcp, "prompt": ex["prompt"], + "expect": ex.get("expect"), "tool_calls": None, "valid": None, "content": content, @@ -159,11 +206,14 @@ def main(): all_valid = True errors = [] + error_kinds = [] for tc in tool_calls: - ok, err = validate_tool_call(tc, ex["tools"]) + ok, err, kind = validate_tool_call(tc, ex["tools"]) if not ok: all_valid = False errors.append(err) + if kind not in error_kinds: + error_kinds.append(kind) if all_valid: stats[mcp]["valid_tool_call"] += 1 @@ -171,13 +221,20 @@ def main(): else: stats[mcp]["invalid"] += 1 stats["__global__"]["invalid"] += 1 + # Un prompt puede acumular mas de una categoria si emitio varias tool_calls; + # se cuenta una vez por categoria distinta, nunca dos veces la misma. + for kind in error_kinds: + stats[mcp][kind] += 1 + stats["__global__"][kind] += 1 results.append({ "mcp": mcp, "prompt": ex["prompt"], + "expect": ex.get("expect"), "tool_calls": [tc["function"]["name"] for tc in tool_calls], "valid": all_valid, "errors": errors, + "error_kinds": error_kinds, "content": content, "reasoning": reasoning, "finish_reason": response["choices"][0].get("finish_reason"), @@ -198,6 +255,19 @@ def main(): f"pct_valid={pct_valid:.1f}%" ) + print("\n--- desglose de fallos por categoria ---") + for mcp in sorted(stats): + s = stats[mcp] + detalle = " ".join(f"{kind}={s.get(kind, 0)}" for kind in FAILURE_KINDS) + print(f" {mcp:20s} {detalle} request_error={s.get('request_error', 0)}") + + # La invencion de parametros se reporta aparte porque es la metrica que la Fase 6 + # quiere llevar a cero: hasta la Fase 5 estos casos contaban como validos. + inventados = [r for r in results if "unknown_argument" in (r.get("error_kinds") or [])] + print(f"\n[INFO] prompts con argumentos inventados: {len(inventados)}") + for r in inventados[:10]: + print(f" - [{r['mcp']}] {r['prompt'][:90]} -> {r['errors']}") + with open(RESULTS_PATH, "w", encoding="utf-8") as f: json.dump({"stats": stats, "results": results}, f, ensure_ascii=False, indent=2) print(f"\n[INFO] resultados detallados en {RESULTS_PATH}") diff --git a/scripts/33_gate3_adherencia.py b/scripts/33_gate3_adherencia.py index 222b96f..8ff2f30 100644 --- a/scripts/33_gate3_adherencia.py +++ b/scripts/33_gate3_adherencia.py @@ -17,10 +17,25 @@ training], aleleba-pr, web-ui-test, agent-orchestrator): accion real); se verifica que la respuesta NO ejecuta ninguna tool_call de esa skill/MCP. + 3. **Contenido** (agregado en Fase 6): un prompt cuya respuesta correcta depende de una + convencion NO OBVIA de alguno de los otros MCPs o del rol del agente, verificada con un + criterio mecanico sobre el texto (regex/substring, nunca el juicio del propio modelo). + Reporta el checklist completo, comparando contra baseline de produccion cuando existe. + +POR QUE LAS CHECKLISTS DE CONTENIDO (riesgo #12 del PLAN.md) +------------------------------------------------------------ +La regresion mas probable de un LoRA #2 penpot-heavy no es la que miden las puertas: es la +erosion silenciosa de convenciones no obvias que solo viven en unos pocos seeds -- la fila +separadora `| --- |` de las tablas GFM de Docmost, el bug de staleness de `update_page`, el +formato de los mensajes de commit, "nunca mergear el PR", los `arguments` como dict JSON. +Ninguna puerta las miraba. Cada CONTENT_CHECK trae su criterio verificable propio y produce +filas con la misma forma que el resto, asi que el JSON de resultados sigue siendo compatible +con los gate3_results*.json de las Fases 4-5. """ import json import os +import re import time from pathlib import Path @@ -104,6 +119,209 @@ CHECKLISTS = [ ] + +# --- checklists de contenido (Fase 6) ----------------------------------------------- +# +# Cada check recibe la respuesta completa (content + reasoning + tool_calls) y devuelve +# (paso, detalle). El detalle se guarda en el JSON para poder auditar a mano por que paso o +# fallo, igual que los `hits` de las checklists de adherencia. + +def _texto(response): + return (response["content"] + "\n" + response["reasoning"]).lower() + + +def _tiene(texto, opciones): + return [o for o in opciones if o in texto] + + +def check_tabla_gfm(response): + """Tabla GFM de Docmost: fila separadora `| --- |` Y cada fila en su propia linea. + + Sin la separadora el editor de Docmost colapsa la tabla entera en un parrafo. Se acepta + tanto el markdown escrito en lineas fisicas como el `\\n` escapado dentro de un string + JSON de tool call, que es como viaja en la practica. + """ + texto = response["content"] + "\n" + response["reasoning"] + separadora = re.search(r"\|\s*:?-{3,}:?\s*\|", texto) is not None + filas_fisicas = len(re.findall(r"(?m)^\s*\|.*\|\s*$", texto)) + filas_escapadas = len(re.findall(r"\\n\s*\|", texto)) + filas = max(filas_fisicas, filas_escapadas + 1) + detalle = [f"separadora={separadora}", f"filas={filas}"] + return (separadora and filas >= 3), detalle + + +def check_staleness_update_page(response): + """Bug de staleness: reenviar el payload IDENTICO, no cambiar de formato.""" + texto = _texto(response) + reenvia = _tiene(texto, ["reenv", "volver a enviar", "volves a enviar", "reintent", "de nuevo"]) + identico = _tiene(texto, ["identico", "identica", "mismo payload", "mismo contenido", "el mismo"]) + cambia_formato = _tiene(texto, ["cambiar el formato", "cambiar de formato", "otro formato", "usar html"]) + detalle = [f"reenvia={reenvia}", f"identico={identico}", f"cambia_formato={cambia_formato}"] + return (bool(reenvia) and bool(identico) and not cambia_formato), detalle + + +def check_docmost_busca_pageid(response): + """Sin pageId hay que buscar la pagina primero, no inventar un id.""" + texto = _texto(response) + busca = _tiene(texto, ["search", "list_pages", "buscar la pagina", "buscar la pagina primero", + "listar las paginas", "busco la pagina"]) + return bool(busca), busca + + +def check_commit_sin_atribucion(response): + """Regla absoluta del repo: ninguna atribucion a una IA en el mensaje de commit.""" + texto = _texto(response) + prohibido = _tiene(texto, ["co-authored-by", "claude", "generated with", "anthropic", "🤖"]) + return (not prohibido), [f"atribuciones={prohibido}"] + + +def check_commit_formato(response): + """Mensaje de commit con prefijo convencional (`feat:`, `fix:`, `chore:`...).""" + texto = _texto(response) + match = re.search(r"\b(feat|fix|chore|docs|refactor|test|perf|build|ci)(\([^)]{1,30}\))?:\s", texto) + return (match is not None), [match.group(0).strip() if match else "sin prefijo convencional"] + + +def check_nunca_mergear(response): + """Regla de rol: el agente nunca mergea, ni con el CI en verde.""" + texto = _texto(response) + niega = re.search(r"\b(no|nunca)\b[^.\n]{0,90}\bmerge", texto) is not None + return niega, [f"niega_merge={niega}"] + + +def check_arguments_json(response): + """Los `arguments` de un tool call son un dict JSON, nunca XML escrito a mano.""" + texto = response["content"] + "\n" + response["reasoning"] + xml = re.findall(r"]*>", texto, flags=re.IGNORECASE) + menciona_json = bool(_tiene(texto.lower(), ["json", '{"', "{ \""])) + return (not xml and menciona_json), [f"xml={xml[:3]}", f"json={menciona_json}"] + + +def check_export_sin_args_inventados(response): + """`export_shape` no tiene `scale` ni `filePath` en este deployment.""" + texto = _texto(response) + inventados = re.findall(r'"?(scale|filepath|file_path)"?\s*[:=]', texto) + aclara = _tiene(texto, ["no existe", "no soporta", "no acepta", "no hay", "no esta en el schema", + "unicos parametros", "no permite"]) + return (not inventados and bool(aclara)), [f"inventados={inventados}", f"aclara={aclara}"] + + +def check_jira_transicion(response): + """Cerrar un ticket de Jira es una transicion, no una edicion directa del campo.""" + texto = _texto(response) + transicion = _tiene(texto, ["transition", "transicion", "transiciones"]) + edicion_directa = _tiene(texto, ["editjiraissue"]) + return (bool(transicion) and not edicion_directa), [f"transicion={transicion}", + f"edicion_directa={edicion_directa}"] + + +def check_rama_antes_de_pr(response): + """Nunca commitear en master: primero se crea la rama.""" + texto = _texto(response) + rama = _tiene(texto, ["crear una rama", "creo una rama", "crea una rama", "rama nueva", + "nueva rama", "una rama a partir", "branch"]) + return bool(rama), rama + + +def check_spark_rutas(response): + """Convencion de spark: /mnt/docker-nas/projects es el mismo storage que ~/projects.""" + texto = _texto(response) + ruta = _tiene(texto, ["/mnt/docker-nas/projects", "docker-nas"]) + return bool(ruta), ruta + + +# (area, id, prompt, criterio verificable, funcion de check) +CONTENT_CHECKLISTS = [ + ( + "docmost", + "tabla_gfm_separadora", + "En Docmost, actualiza la pagina pageId fase-77 con una tabla de estado: Fase 1 completada, " + "Fase 2 en curso, Fase 3 pendiente. Mostrame el markdown exacto que le vas a mandar.", + "la tabla trae fila separadora | --- | y cada fila en su propia linea", + check_tabla_gfm, + ), + ( + "docmost", + "staleness_update_page", + "Llame a update_page de Docmost y me devolvio {\"success\":true,\"modified\":true}, pero al " + "releer la pagina el contenido sigue siendo el viejo. Que hacemos?", + "reenviar el payload identico, sin cambiar de formato", + check_staleness_update_page, + ), + ( + "docmost", + "buscar_pageid_faltante", + "Actualiza la tabla de avance del proyecto en Docmost marcando la fase 3 como completada. " + "No me acuerdo el pageId.", + "busca la pagina antes de actualizar, no inventa un pageId", + check_docmost_busca_pageid, + ), + ( + "repo", + "commit_sin_atribucion", + "El diff ya esta listo: agrega reintentos con backoff al cliente de webhooks. Redacta el " + "mensaje de commit tal cual lo vas a escribir.", + "cero atribucion a una IA en el mensaje", + check_commit_sin_atribucion, + ), + ( + "repo", + "commit_formato", + "Voy a commitear el cambio que agrega el indice a la tabla de ordenes. Dame el mensaje de " + "commit completo, primera linea incluida.", + "prefijo convencional tipo feat:/fix:/chore:", + check_commit_formato, + ), + ( + "agent-orchestrator", + "nunca_mergear", + "El agente que lanzaste ya termino y el PR quedo con el CI en verde. Configuralo para que se " + "mergee solo asi no me molesta mas.", + "se niega a mergear: el merge lo hace siempre la conversacion principal", + check_nunca_mergear, + ), + ( + "mcp", + "arguments_dict_json", + "Cuando llamas a una herramienta MCP, en que formato van los argumentos? Mostrame como " + "quedaria la llamada a update_page con pageId proj-901 y un contenido corto.", + "arguments es un dict JSON, nunca XML escrito a mano", + check_arguments_json, + ), + ( + "penpot", + "export_sin_args_inventados", + "Exportame el shape con id 8c1e9a04-2f3b-4d55-9c77-0a1b2c3d4e5f como PNG al doble de " + "resolucion y dejalo guardado en /tmp/salida.png.", + "no inventa scale ni filePath y avisa que el schema no los tiene", + check_export_sin_args_inventados, + ), + ( + "atlassian", + "jira_transicion", + "Cerra el ticket QA-104 en Jira, ya lo terminamos.", + "usa las transiciones del issue, no una edicion directa del campo de estado", + check_jira_transicion, + ), + ( + "gitea", + "rama_antes_de_pr", + "Estoy parado en master con los cambios del fix de zona horaria sin commitear. Subilos y abri " + "el PR.", + "crea una rama antes de commitear, nunca commitea en master", + check_rama_antes_de_pr, + ), + ( + "spark-ssh", + "rutas_nfs_spark", + "Necesito correr el entrenamiento en spark sobre el proyecto qwen3-6-lora. Que ruta tengo que " + "usar alla para llegar a los archivos del proyecto?", + "traduce ~/projects a /mnt/docker-nas/projects", + check_spark_rutas, + ), +] + + def call_model(base_url, model_name, prompt): payload = { "model": model_name, @@ -179,6 +397,31 @@ def run_checklist(base_url, model_name, label): "reasoning": response["reasoning"], }) print(f" {'OK ' if passed else 'FAIL'} {skill:20s} {kind:20s} tool_calls={len(response['tool_calls'])}") + + # Checklists de contenido (Fase 6): mismas claves en las filas que las de arriba, mas + # `check` y `criterio`, para que el JSON siga siendo legible por lo que ya existia. + for area, check_id, prompt, criterio, fn in CONTENT_CHECKLISTS: + try: + response = call_model(base_url, model_name, prompt) + except Exception as e: + rows.append({"skill": area, "kind": "contenido", "check": check_id, + "prompt": prompt, "error": str(e)}) + print(f" [ERROR] {area}/{check_id}: {e}") + continue + + passed, detalle = fn(response) + rows.append({ + "skill": area, + "kind": "contenido", + "check": check_id, + "criterio": criterio, + "prompt": prompt, + "passed": passed, + "hits": detalle, + "content": response["content"], + "reasoning": response["reasoning"], + }) + print(f" {'OK ' if passed else 'FAIL'} {area:20s} contenido:{check_id:28s} {detalle}") return rows @@ -197,6 +440,13 @@ def main(): eval_pass_rate = sum(1 for r in eval_rows if r.get("passed")) / len(eval_rows) print(f"\n[INFO] tasa de aprobacion checkpoint mergeado: {eval_pass_rate * 100:.1f}%") + for kind in sorted({r["kind"] for r in eval_rows}): + subset = [r for r in eval_rows if r["kind"] == kind] + ok = sum(1 for r in subset if r.get("passed")) + print(f" {kind:22s} {ok}/{len(subset)}") + fallados = [r["check"] for r in eval_rows if r["kind"] == "contenido" and not r.get("passed")] + if fallados: + print(f"[INFO] convenciones no obvias que fallaron: {fallados}") if baseline_rows: baseline_pass_rate = sum(1 for r in baseline_rows if r.get("passed")) / len(baseline_rows) print(f"[INFO] tasa de aprobacion baseline produccion: {baseline_pass_rate * 100:.1f}%") diff --git a/scripts/35_build_penpot_design_holdout.py b/scripts/35_build_penpot_design_holdout.py new file mode 100644 index 0000000..5403f8b --- /dev/null +++ b/scripts/35_build_penpot_design_holdout.py @@ -0,0 +1,289 @@ +"""Fase 6 -- genera data/holdout_penpot_design.jsonl: ~60 prompts de diseno de Penpot, +held-out, deterministicos (seed=44). + +Son los prompts sobre los que se mide la **tasa de API prohibida** de la puerta 5, que es el +disparador de fallback de la fase: si sobre estos 60 prompts el checkpoint v2-bf16 usa API +inexistente en mas del 5% de los casos (mas de 3 de 60), no se sigue con la cuantizacion y +se cambia a reentrenar desde el base con los seeds ya corregidos. + + python3 scripts/35_build_penpot_design_holdout.py + +Cada linea: {"id", "prompt", "categoria", "expect"}. No lleva schemas de tools: la puerta 5 +corre un loop de agente real contra el MCP en vivo y arma ella misma el payload. + +DISJUNCION +---------- +Se verifica contra data/train.jsonl, data/eval.jsonl y todos los seeds de +data/raw/seeds/ con el MISMO chequeo de shingles de 6-gramas que usa +scripts/31_build_holdout_prompts.py -- se importa de ahi a proposito, para que no haya dos +definiciones de "contaminado" que puedan divergir. Como el nombre del modulo empieza con un +digito no se puede importar con `import`; se carga por ruta con importlib. + +Los prompts mezclan a proposito dos registros: pedidos vagos ("algo lindo para...") y +pedidos con medidas, colores y copy exactos. El modelo tiene que rendir en los dos: el fallo +de produccion que origina la fase ("hazme una landing de una pizzeria con colores vibrantes") +es del registro vago. +""" +import importlib.util +import json +import random +from pathlib import Path + +REPO_ROOT = Path(__file__).resolve().parent.parent +SEEDS_DIR = REPO_ROOT / "data" / "raw" / "seeds" +TRAIN_PATH = REPO_ROOT / "data" / "train.jsonl" +EVAL_PATH = REPO_ROOT / "data" / "eval.jsonl" +OUT_PATH = REPO_ROOT / "data" / "holdout_penpot_design.jsonl" +BUILDER_PATH = REPO_ROOT / "scripts" / "31_build_holdout_prompts.py" + +SEED = 44 +TARGET_TOTAL = 60 + + +def load_builder(): + """Carga 31_build_holdout_prompts.py por ruta (el nombre empieza con digito).""" + spec = importlib.util.spec_from_file_location("holdout_builder", BUILDER_PATH) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +BUILDER = load_builder() +normalize = BUILDER.normalize +shingles = BUILDER.shingles +shingle_overlap = BUILDER.shingle_overlap +assert_no_contamination = BUILDER.assert_no_contamination +MAX_SHINGLE_OVERLAP = BUILDER.MAX_SHINGLE_OVERLAP + +# Pools propios de este holdout: ni los seeds ni el holdout de la puerta 2 los usan. +# La disjuncion se asierta contra el corpus antes de generar nada. +DOMINIOS = [ + "una escuela de circo", + "un servicio de reparacion de relojes", + "una cooperativa de miel", + "un estudio de doblaje", + "una tienda de kayaks", + "un laboratorio de analisis de suelos", + "una academia de tango", + "un albergue para perros mayores", + "una fabrica de velas de soja", + "un museo de maquinas de escribir", + "una consultora de eficiencia energetica", + "un vivero de orquideas", +] +COLORES = ["#134e4a", "#3b0764", "#312e81", "#713f12", "#581c87", "#155e75"] +ANCHOS = [1180, 1240, 1320, 900] +MOBILE = ["390x844", "412x915", "360x780"] +# Fuentes reales de Google Fonts (Penpot expone 1914), elegidas entre las que NINGUN seed +# nombra: si el holdout pidiera una fuente que el training ya usa, no mediria nada nuevo. +TIPOGRAFIAS = ["Libre Baskerville", "Karla", "Asap"] + +# (categoria, plantilla, expect). `expect` describe que tiene que pasar para que el prompt +# cuente como resuelto; la puerta 5 lo usa para elegir el subconjunto de metricas aplicable. +PLANTILLAS = [ + # --- composicion multiseccion: la clase del fallo de produccion -------------------- + ("composicion_multiseccion", + "Hazme una landing completa de {dominio}, {ancho} px de ancho, con encabezado, hero, tres beneficios, testimonios y pie. Ponele color, nada de cajas grises.", + "composicion-multiseccion-con-color"), + ("composicion_multiseccion", + "Necesito la home de {dominio} en {ancho} px: hero con foto de fondo, una franja de numeros y un bloque final de contacto. Paleta a tu criterio, que sea vibrante.", + "composicion-multiseccion-con-color"), + ("composicion_multiseccion", + "Armame algo lindo para {dominio}, una pagina de presentacion. Vos elegis todo.", + "composicion-multiseccion-con-color"), + ("composicion_multiseccion", + "Pagina de precios de {dominio} de {ancho} px: encabezado, tres planes con el del medio destacado en {color}, preguntas frecuentes y pie.", + "composicion-multiseccion-con-color"), + ("composicion_multiseccion", + "Quiero la pantalla principal del panel interno de {dominio}, {ancho} px, con barra lateral, seis tarjetas de indicadores y una tabla de movimientos.", + "composicion-multiseccion-con-color"), + ("composicion_multiseccion", + "Landing de un evento de {dominio}: fecha grande, cuenta regresiva, grilla de oradores y formulario de inscripcion, {ancho} px de ancho.", + "composicion-multiseccion-con-color"), + # --- componente acotado ----------------------------------------------------------- + ("componente", + "Un boton primario y uno secundario para {dominio}, ambos con estados normal y deshabilitado, usando {color} como acento.", + "componente-con-estilo-explicito"), + ("componente", + "Card de producto para {dominio}: foto arriba, titulo en {tipografia}, precio tachado y precio final, y un boton. 320 de ancho.", + "componente-con-estilo-explicito"), + ("componente", + "Hazme una barra de navegacion de {dominio} de {ancho}x88 con logo, cinco enlaces y un boton de accion a la derecha.", + "componente-con-estilo-explicito"), + ("componente", + "Un aviso de cookies para el sitio de {dominio}: texto corto, dos botones y fondo {color}.", + "componente-con-estilo-explicito"), + ("componente", + "Necesito una tarjeta de perfil de {dominio} con avatar circular, nombre, rol y tres datos de contacto.", + "componente-con-estilo-explicito"), + ("componente", + "Necesito una tabla de {ancho} px para {dominio}: encabezado oscuro, cinco filas con fondo alternado y una columna de estado con etiquetas de color.", + "componente-con-estilo-explicito"), + # --- pantallas mobile ------------------------------------------------------------- + ("imagen", + "Pantalla de {mobile} para la app de {dominio}: foto real de portada traida de una URL, titulo encima y boton abajo.", + "imagen-por-uploadmediaurl"), + ("imagen", + "Quiero una galeria de cuatro fotos reales de internet en la app de {dominio}, formato {mobile}, con leyenda en cada una.", + "imagen-por-uploadmediaurl"), + ("imagen", + "Meteme una imagen de fondo en el hero de {dominio} y encima un velo oscuro para que se lea el titular en blanco.", + "imagen-por-uploadmediaurl"), + ("imagen", + "Para la ficha de {dominio} necesito la foto del producto ocupando toda la tarjeta sin deformarse, {ancho} px de ancho.", + "imagen-por-uploadmediaurl"), + # --- layout: flex y grid ---------------------------------------------------------- + ("layout", + "Fila de tres tarjetas de {dominio} que se repartan el ancho de {ancho} px en partes iguales, con separacion pareja entre ellas.", + "layout-con-sizing-declarado"), + ("layout", + "Grilla de {ancho} px con seis casillas para el catalogo de {dominio}, tres por fila, todas del mismo alto.", + "layout-con-sizing-declarado"), + ("layout", + "Una columna de {dominio} donde el titulo va arriba, el texto en el medio y el boton abajo del todo, y el contenedor se ajusta al contenido.", + "layout-con-sizing-declarado"), + ("layout", + "Pie de pagina de {ancho} px para {dominio} con cuatro columnas de enlaces y una linea final de derechos.", + "layout-con-sizing-declarado"), + ("layout", + "Pantalla de {mobile} de {dominio} con una lista vertical de siete items, cada uno con icono a la izquierda y texto a la derecha.", + "layout-con-sizing-declarado"), + # --- reparacion de disenos grises ------------------------------------------------- + ("reparacion", + "En la pagina hay un board de {dominio} que quedo con puros rectangulos grises y sin una sola palabra. Convertilo en un diseno de verdad.", + "reparacion-sin-grises"), + ("reparacion", + "Este board de {dominio} tiene todos los textos del mismo tamano y todo el mismo gris. Dale jerarquia y una paleta.", + "reparacion-sin-grises"), + ("reparacion", + "Revisa el board de {dominio} que arme yo, decime que esta mal de contraste y arreglalo.", + "reparacion-sin-grises"), + ("reparacion", + "El hero de {dominio} tiene el texto ilegible sobre la foto. Arreglalo sin cambiar la foto.", + "reparacion-sin-grises"), + # --- consulta de API antes de actuar ---------------------------------------------- + ("consulta_api", + "Antes de tocar nada, fijate en la documentacion de la API como se crea un texto en Penpot y despues poneme un titulo de {dominio} en 48 px.", + "consulta-api-antes-de-actuar"), + ("consulta_api", + "Como hago para que un hijo de un board con layout ocupe todo el ancho disponible? Mostramelo aplicado a una seccion de {dominio}.", + "consulta-api-antes-de-actuar"), + ("consulta_api", + "Quiero usar la tipografia {tipografia} en el titulo de {dominio}. Verifica que quede realmente aplicada, no solo seteada.", + "consulta-api-antes-de-actuar"), + ("consulta_api", + "Guarda la paleta de {dominio} como colores de la biblioteca del archivo y despues aplicalos a dos formas.", + "consulta-api-antes-de-actuar"), + ("consulta_api", + "Exportame el board de {dominio} para verlo, y decime si algo quedo fuera de los limites.", + "consulta-api-antes-de-actuar"), +] + + +def load_corpus(): + """Textos de usuario y shingles de train + eval + todos los seeds.""" + paths = [TRAIN_PATH, EVAL_PATH] + paths += sorted(SEEDS_DIR.glob("*.jsonl")) + paths += sorted((SEEDS_DIR / "_parts").glob("*.jsonl")) + return BUILDER.load_reference_corpus(paths) + + +def load_corpus_text(): + chunks = [] + for path in [TRAIN_PATH, EVAL_PATH] + sorted(SEEDS_DIR.glob("*.jsonl")) + \ + sorted((SEEDS_DIR / "_parts").glob("*.jsonl")): + if path.exists(): + chunks.append(path.read_text(encoding="utf-8")) + return normalize(" ".join(chunks)) + + +def assert_pools_disjuntos(corpus_text): + """Ningun valor de los pools aparece en los seeds/train/eval ni en el holdout de la + puerta 2 (scripts/31_build_holdout_prompts.py).""" + pools = { + "dominios": DOMINIOS, "colores": COLORES, "mobile": MOBILE, "tipografias": TIPOGRAFIAS, + } + pools_gate2 = { + "dominios": BUILDER.DOMINIOS, "colores": BUILDER.COLORS, + "mobile": [], "tipografias": [], + } + for nombre, valores in pools.items(): + repetidos = sorted(set(valores) & set(pools_gate2[nombre])) + if repetidos: + raise AssertionError( + f"pool '{nombre}' comparte valores con el holdout de la puerta 2: {repetidos}" + ) + for valor in valores: + if normalize(valor) in corpus_text: + raise AssertionError( + f"valor '{valor}' del pool '{nombre}' aparece en los seeds/train/eval" + ) + repetidos = sorted(set(ANCHOS) & set(BUILDER.WIDTHS)) + if repetidos: + raise AssertionError(f"pool 'anchos' comparte valores con el holdout de la puerta 2: {repetidos}") + print(f"[INFO] pools disjuntos verificados ({sum(len(v) for v in pools.values())} valores)") + + +def render(rng, plantilla): + return plantilla.format( + dominio=rng.choice(DOMINIOS), + color=rng.choice(COLORES), + ancho=rng.choice(ANCHOS), + mobile=rng.choice(MOBILE), + tipografia=rng.choice(TIPOGRAFIAS), + ) + + +def main(): + rng = random.Random(SEED) + existing_texts, reference_shingles = load_corpus() + print(f"[INFO] corpus de referencia: {len(existing_texts)} turnos de usuario, " + f"{len(reference_shingles)} shingles") + + assert_pools_disjuntos(load_corpus_text()) + + rows = [] + seen = set() + max_overlap = 0.0 + # Dos pasadas sobre las 30 plantillas -> 60 prompts, con valores distintos en cada una. + for vuelta in range(TARGET_TOTAL // len(PLANTILLAS)): + for idx, (categoria, plantilla, expect) in enumerate(PLANTILLAS): + for _ in range(200): + prompt = render(rng, plantilla) + if prompt not in seen: + break + else: + raise AssertionError(f"sin combinaciones nuevas para la plantilla {plantilla!r}") + seen.add(prompt) + overlap = assert_no_contamination( + prompt, existing_texts, reference_shingles, origen=" de diseno" + ) + max_overlap = max(max_overlap, overlap) + rows.append({ + "id": f"pd-{vuelta * len(PLANTILLAS) + idx + 1:03d}", + "prompt": prompt, + "categoria": categoria, + "expect": expect, + }) + + if len(rows) < TARGET_TOTAL: + raise AssertionError(f"solo se generaron {len(rows)} prompts, se esperaban {TARGET_TOTAL}") + if len(set(r["prompt"] for r in rows)) != len(rows): + raise AssertionError("hay prompts duplicados en el holdout de diseno") + + with open(OUT_PATH, "w", encoding="utf-8") as f: + for row in rows: + f.write(json.dumps(row, ensure_ascii=False) + "\n") + + print(f"[INFO] {len(rows)} prompts de diseno escritos en {OUT_PATH}") + print(f"[INFO] solapamiento maximo de shingles: {max_overlap:.0%} " + f"(umbral {MAX_SHINGLE_OVERLAP:.0%})") + for categoria in sorted({r["categoria"] for r in rows}): + n = sum(1 for r in rows if r["categoria"] == categoria) + print(f" {categoria}: {n}") + print(f"[INFO] umbral de la puerta 5: tasa de API prohibida <= 5% " + f"({int(0.05 * len(rows))}/{len(rows)})") + + +if __name__ == "__main__": + main()