From 268451aed74e575fd80e5a1b9a8494145a38913c Mon Sep 17 00:00:00 2001 From: Alejandro Lembke Barrientos Date: Wed, 29 Jul 2026 17:28:36 +0000 Subject: [PATCH 1/4] Fase 4: scripts/20_merge_lora.py - merge streaming shard-a-shard del LoRA sobre el checkpoint base Remapea nombres de modulo (model.layers.* del adapter -> model.language_model.layers.* del checkpoint base multimodal), preserva tensores mtp.*/visual.* al copiarlos sin modificar, y toma chat_template.jinja de MODEL_PATH (nunca del adapter, que tiene el template de masking de training). Verificacion automatica en verde: 310/310 tensores LoRA-target mergeados, 1045/1045 tensores totales preservados, sin NaN/Inf, muestra de 200 tensores no-target byte-identica al base. --- scripts/20_merge_lora.py | 225 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 scripts/20_merge_lora.py diff --git a/scripts/20_merge_lora.py b/scripts/20_merge_lora.py new file mode 100644 index 0000000..ea13056 --- /dev/null +++ b/scripts/20_merge_lora.py @@ -0,0 +1,225 @@ +"""Fase 4: mergea el adapter LoRA (out/lora-adapter/) sobre el checkpoint base BF16, +shard-a-shard, sin cargar el modelo completo via AutoModelForCausalLM. + +Corre DENTRO del contenedor `qwen-lora-train` en spark: + + docker exec qwen-lora-train python3 \ + /workspace/ai-projects/qwen3-6-lora/.worktrees/agente-fase4-merge-eval/scripts/20_merge_lora.py + +Algoritmo (opera directo sobre tensores crudos, nunca instancia el modelo): + 1. Cargar adapter_model.safetensors completo (~190MB), parsear claves PEFT + (prefijo "base_model.model." + sufijo ".lora_A.weight"/".lora_B.weight") en + {nombre_tensor_base: (lora_A, lora_B)}. scaling = lora_alpha / r. + 2. Leer MODEL_PATH/model.safetensors.index.json -> weight_map. + 3. Por cada shard unico: cargar, mergear en fp32 los tensores LoRA-target + (W + scaling * (B @ A)) y volver a bf16; copiar el resto tal cual (esto + preserva mtp.*/visual.* automaticamente, sin logica especial). Guardar el + shard con el mismo nombre en OUTPUT_PATH. + 4. Copiar sin cambios model.safetensors.index.json, config.json, + generation_config.json, archivos de tokenizer, y chat_template.jinja DESDE + MODEL_PATH (nunca desde ADAPTER_PATH -- ese es el template de masking de + training, no el de inferencia real). + 5. Verificacion automatica: conteo de tensores igual; todo tensor no-target + byte-a-byte identico al base; todo tensor LoRA-target con delta no-cero; + sin NaN/Inf. +""" +import gc +import json +import os +import re +import shutil +import time +from pathlib import Path + +import torch +from safetensors import safe_open +from safetensors.torch import save_file + +REPO_ROOT = Path(__file__).resolve().parent.parent +MODEL_PATH = Path(os.environ.get("MODEL_PATH", "/workspace/ft-models/Qwen--Qwen3.6-35B-A3B")) +ADAPTER_PATH = Path(os.environ.get("ADAPTER_PATH", str(REPO_ROOT / "out" / "lora-adapter"))) +OUTPUT_PATH = Path(os.environ.get("OUTPUT_PATH", "/workspace/ft-models/Qwen3.6-35B-A3B-mcp-bf16")) + +ADAPTER_PREFIX = "base_model.model." +LORA_A_SUFFIX = ".lora_A.weight" +LORA_B_SUFFIX = ".lora_B.weight" + +# El adapter fue entrenado cargando el checkpoint con AutoModelForCausalLM, que expone las +# capas como "model.layers.N...."; el checkpoint base crudo (multimodal) las tiene bajo +# "model.language_model.layers.N....". Hay que remapear el nombre del tensor base antes de +# buscarlo en el mapa de shards. embed_tokens/norm top-level tienen el mismo desplazamiento; +# lm_head y mtp.*/visual.* no son target de LoRA y no necesitan remapeo. +ADAPTER_TO_CHECKPOINT_PREFIX = { + "model.layers.": "model.language_model.layers.", + "model.embed_tokens.": "model.language_model.embed_tokens.", + "model.norm.": "model.language_model.norm.", +} + + +def remap_adapter_name_to_checkpoint_name(name): + for adapter_prefix, checkpoint_prefix in ADAPTER_TO_CHECKPOINT_PREFIX.items(): + if name.startswith(adapter_prefix): + return checkpoint_prefix + name[len(adapter_prefix):] + return name + +NON_MODEL_FILES = [ + "config.json", + "generation_config.json", + "configuration.json", + "tokenizer.json", + "tokenizer_config.json", + "merges.txt", + "vocab.json", + "chat_template.jinja", + "preprocessor_config.json", + "video_preprocessor_config.json", + "LICENSE", + "README.md", +] + + +def load_lora_deltas(): + adapter_config = json.loads((ADAPTER_PATH / "adapter_config.json").read_text()) + r = adapter_config["r"] + lora_alpha = adapter_config["lora_alpha"] + scaling = lora_alpha / r + print(f"[INFO] r={r} lora_alpha={lora_alpha} scaling={scaling}") + + deltas = {} + with safe_open(str(ADAPTER_PATH / "adapter_model.safetensors"), framework="pt") as f: + keys = list(f.keys()) + base_names = set() + for k in keys: + if k.endswith(LORA_A_SUFFIX): + base_names.add(k[len(ADAPTER_PREFIX):-len(LORA_A_SUFFIX)]) + for base_name in base_names: + key_a = f"{ADAPTER_PREFIX}{base_name}{LORA_A_SUFFIX}" + key_b = f"{ADAPTER_PREFIX}{base_name}{LORA_B_SUFFIX}" + lora_a = f.get_tensor(key_a).to(torch.float32) + lora_b = f.get_tensor(key_b).to(torch.float32) + checkpoint_name = remap_adapter_name_to_checkpoint_name(f"{base_name}.weight") + deltas[checkpoint_name] = (lora_a, lora_b, scaling) + print(f"[INFO] {len(deltas)} tensores objetivo de LoRA encontrados en el adapter") + return deltas + + +def merge_shards(deltas): + index = json.loads((MODEL_PATH / "model.safetensors.index.json").read_text()) + weight_map = index["weight_map"] + shard_files = sorted(set(weight_map.values())) + print(f"[INFO] {len(shard_files)} shards, {len(weight_map)} tensores totales") + + OUTPUT_PATH.mkdir(parents=True, exist_ok=True) + + merged_target_names = set() + total_tensors_in = 0 + total_tensors_out = 0 + checks_nontarget_sample = [] + + for shard_name in shard_files: + t0 = time.time() + shard_path = MODEL_PATH / shard_name + out_tensors = {} + with safe_open(str(shard_path), framework="pt") as f: + shard_keys = list(f.keys()) + total_tensors_in += len(shard_keys) + for key in shard_keys: + tensor = f.get_tensor(key) + if key in deltas: + lora_a, lora_b, scaling = deltas[key] + w_fp32 = tensor.to(torch.float32) + delta = scaling * (lora_b @ lora_a) + merged = (w_fp32 + delta).to(torch.bfloat16) + if not torch.isfinite(merged).all(): + raise AssertionError(f"NaN/Inf tras mergear tensor {key}") + if torch.equal(merged, tensor): + raise AssertionError(f"tensor LoRA-target {key} no cambio tras el merge (delta cero)") + out_tensors[key] = merged.contiguous() + merged_target_names.add(key) + else: + if not torch.isfinite(tensor.to(torch.float32)).all(): + raise AssertionError(f"NaN/Inf en tensor no-target {key} del checkpoint base (bug pre-existente)") + out_tensors[key] = tensor.contiguous() + if len(checks_nontarget_sample) < 200: + checks_nontarget_sample.append((shard_name, key)) + save_file(out_tensors, str(OUTPUT_PATH / shard_name), metadata={"format": "pt"}) + total_tensors_out += len(out_tensors) + del out_tensors + gc.collect() + dt = time.time() - t0 + peak_mb = torch.cuda.max_memory_allocated() / (1024 ** 2) if torch.cuda.is_available() else 0.0 + print(f"[INFO] shard {shard_name}: {len(shard_keys)} tensores, {dt:.1f}s, peak_cuda={peak_mb:.0f}MB") + + missing = merged_target_names.symmetric_difference(set(deltas.keys())) + if missing: + raise AssertionError(f"tensores LoRA-target no encontrados en ningun shard: {missing}") + + if total_tensors_in != total_tensors_out: + raise AssertionError(f"conteo de tensores no cuadra: in={total_tensors_in} out={total_tensors_out}") + + print(f"[INFO] {len(merged_target_names)} tensores mergeados, {total_tensors_out} tensores totales escritos") + return checks_nontarget_sample + + +def verify_nontarget_byte_identical(sample): + print(f"[INFO] verificando byte-a-byte {len(sample)} tensores no-target de muestra (incluye mtp.*/visual.*)") + mtp_or_visual_checked = 0 + for shard_name, key in sample: + with safe_open(str(MODEL_PATH / shard_name), framework="pt") as f_base: + base_t = f_base.get_tensor(key) + with safe_open(str(OUTPUT_PATH / shard_name), framework="pt") as f_out: + out_t = f_out.get_tensor(key) + if not torch.equal(base_t, out_t): + raise AssertionError(f"tensor no-target {key} en {shard_name} NO es byte-identico al base") + if re.match(r"^(model\.)?mtp\.", key) or "visual" in key: + mtp_or_visual_checked += 1 + print(f"[INFO] verificacion byte-a-byte ok ({mtp_or_visual_checked} tensores mtp/visual en la muestra)") + + +def copy_non_model_files(): + for fname in NON_MODEL_FILES: + src = MODEL_PATH / fname + if src.exists(): + shutil.copy2(src, OUTPUT_PATH / fname) + print(f"[INFO] copiado {fname} desde MODEL_PATH (nunca desde ADAPTER_PATH)") + shutil.copy2( + MODEL_PATH / "model.safetensors.index.json", + OUTPUT_PATH / "model.safetensors.index.json", + ) + print("[INFO] copiado model.safetensors.index.json") + + +def verify_chat_template_is_not_training_template(): + train_template = (REPO_ROOT / "data" / "chat_template_train.jinja").read_bytes() + output_template = (OUTPUT_PATH / "chat_template.jinja").read_bytes() + if output_template == train_template: + raise AssertionError( + "chat_template.jinja del checkpoint mergeado es BYTE-IDENTICO al template de " + "masking de training -- el merge tomo el template equivocado (debe venir de MODEL_PATH)" + ) + base_template = (MODEL_PATH / "chat_template.jinja").read_bytes() + if output_template != base_template: + raise AssertionError("chat_template.jinja del checkpoint mergeado no coincide con el de MODEL_PATH") + print( + f"[INFO] chat_template.jinja verificado: {len(output_template)} bytes, " + "identico al de MODEL_PATH, distinto del template de training" + ) + + +def main(): + print(f"[INFO] MODEL_PATH={MODEL_PATH}") + print(f"[INFO] ADAPTER_PATH={ADAPTER_PATH}") + print(f"[INFO] OUTPUT_PATH={OUTPUT_PATH}") + + deltas = load_lora_deltas() + t0 = time.time() + nontarget_sample = merge_shards(deltas) + copy_non_model_files() + verify_chat_template_is_not_training_template() + verify_nontarget_byte_identical(nontarget_sample) + + print(f"[INFO] merge completo en {time.time() - t0:.1f}s. OUTPUT_PATH={OUTPUT_PATH}") + + +if __name__ == "__main__": + main() From ceba5f80cda53b01950e2603e264c4bff3b391fa Mon Sep 17 00:00:00 2001 From: Alejandro Lembke Barrientos Date: Wed, 29 Jul 2026 17:37:02 +0000 Subject: [PATCH 2/4] Fase 4: puerta 1 (eval-loss offline por bucket) y contenedor/scripts de puertas 2-4 - scripts/30_eval_suite.py --gate 1: eval-loss sobre el checkpoint mergeado, agrupado por meta.bucket (aislando replay), comparado contra eval_loss=0.275 de Fase 3. - docker-compose.eval.yml: servicio vllm-eval propio (puerto 8001), sirviendo el checkpoint mergeado en BF16, con tool-call-parser=qwen3_coder y reasoning-parser=qwen3. No se pudo leer el compose real de produccion (/data/compose/43/docker-compose.yml no existe en spark, probablemente vive en el host del servidor Portainer) -- flags basados en la arquitectura conocida del modelo. - scripts/31_build_holdout_prompts.py: genera data/holdout_prompts.jsonl (200 prompts, 40 por MCP, sin overlap verificado contra train.jsonl/eval.jsonl). - scripts/32_gate2_toolcalls.py: valida tool-calls devueltas por vllm-eval (parser real de vLLM, nunca una regex propia) contra los 200 prompts held-out. - scripts/33_gate3_adherencia.py: checklists de adherencia por skill + no-activacion, con baseline opcional contra vllm-qwen36 si esta corriendo. - scripts/34_gate4_e2e.py: arma el plan de llamadas E2E contra los 5 MCPs y 5 skills via el checkpoint mergeado, para que el agente orquestador las ejecute con sus MCPs reales. --- data/holdout_prompts.jsonl | 200 +++++++++++++++++++++++++++ docker-compose.eval.yml | 27 ++++ scripts/30_eval_suite.py | 146 ++++++++++++++++++++ scripts/31_build_holdout_prompts.py | 182 +++++++++++++++++++++++++ scripts/32_gate2_toolcalls.py | 187 +++++++++++++++++++++++++ scripts/33_gate3_adherencia.py | 202 ++++++++++++++++++++++++++++ scripts/34_gate4_e2e.py | 146 ++++++++++++++++++++ 7 files changed, 1090 insertions(+) create mode 100644 data/holdout_prompts.jsonl create mode 100644 docker-compose.eval.yml create mode 100644 scripts/30_eval_suite.py create mode 100644 scripts/31_build_holdout_prompts.py create mode 100644 scripts/32_gate2_toolcalls.py create mode 100644 scripts/33_gate3_adherencia.py create mode 100644 scripts/34_gate4_e2e.py diff --git a/data/holdout_prompts.jsonl b/data/holdout_prompts.jsonl new file mode 100644 index 0000000..56a6c1a --- /dev/null +++ b/data/holdout_prompts.jsonl @@ -0,0 +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"]}}]} diff --git a/docker-compose.eval.yml b/docker-compose.eval.yml new file mode 100644 index 0000000..933a33d --- /dev/null +++ b/docker-compose.eval.yml @@ -0,0 +1,27 @@ +services: + vllm-eval: + image: vllm/vllm-openai:cu130-nightly-aarch64 + container_name: vllm-eval + restart: "no" + ipc: host + ports: + - "8001:8000" + volumes: + - /home/aleleba/ft-models/Qwen3.6-35B-A3B-mcp-bf16:/model:ro + command: + - "--model=/model" + - "--served-model-name=qwen3.6-35b-a3b-mcp-bf16" + - "--tensor-parallel-size=1" + - "--max-model-len=32768" + - "--enable-auto-tool-choice" + - "--tool-call-parser=qwen3_coder" + - "--reasoning-parser=qwen3" + - "--default-chat-template-kwargs={\"preserve_thinking\": true}" + - "--trust-remote-code" + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: 1 + capabilities: [gpu] diff --git a/scripts/30_eval_suite.py b/scripts/30_eval_suite.py new file mode 100644 index 0000000..aeb3841 --- /dev/null +++ b/scripts/30_eval_suite.py @@ -0,0 +1,146 @@ +"""Fase 4 -- suite de evaluacion en 4 puertas. + +Puerta 1 (--gate 1): eval-loss offline por bucket sobre el checkpoint MERGEADO +(no el adapter puro) -- no necesita servir el modelo. Corre DENTRO del +contenedor qwen-lora-train en spark: + + docker exec qwen-lora-train python3 \ + /workspace/ai-projects/qwen3-6-lora/.worktrees/agente-fase4-merge-eval/scripts/30_eval_suite.py --gate 1 + +Carga el checkpoint mergeado con AutoModelForCausalLM (para detectar bugs de +merge que un eval sobre el adapter puro no veria), le pisa en memoria el +chat_template con data/chat_template_train.jinja (igual que en training, para +poder generar assistant_masks), recorre data/eval.jsonl agrupado por +meta.bucket, y reporta loss promedio global y por bucket (aislando +bucket=="replay"), comparado contra eval_loss=0.275 de Fase 3. + +Las puertas 2-4 (tool-calls, adherencia, E2E) viven en scripts separados +(scripts/31_gate2_toolcalls.py, scripts/32_gate3_adherencia.py, +scripts/33_gate4_e2e.py) porque necesitan el contenedor de eval sirviendo el +checkpoint mergeado via HTTP, no solo lectura offline. +""" +import argparse +import json +import os +import time +from collections import defaultdict +from pathlib import Path + +import torch +from transformers import AutoModelForCausalLM, AutoTokenizer + +REPO_ROOT = Path(__file__).resolve().parent.parent +OUTPUT_PATH = os.environ.get("OUTPUT_PATH", "/workspace/ft-models/Qwen3.6-35B-A3B-mcp-bf16") +TRAIN_CHAT_TEMPLATE_PATH = REPO_ROOT / "data" / "chat_template_train.jinja" +EVAL_FILE = REPO_ROOT / "data" / "eval.jsonl" +FASE3_EVAL_LOSS = 0.275 + + +def parse_args(): + parser = argparse.ArgumentParser() + parser.add_argument("--gate", type=int, required=True, choices=[1]) + return parser.parse_args() + + +def load_eval_examples(): + examples = [] + with open(EVAL_FILE, encoding="utf-8") as f: + for line in f: + line = line.strip() + if not line: + continue + examples.append(json.loads(line)) + return examples + + +def compute_loss_per_example(model, tokenizer, example): + rendered = tokenizer.apply_chat_template( + example["messages"], + tools=example.get("tools"), + tokenize=True, + return_assistant_tokens_mask=True, + return_dict=True, + add_generation_prompt=False, + ) + input_ids = rendered["input_ids"] + assistant_masks = rendered["assistant_masks"] + if sum(assistant_masks) == 0: + raise AssertionError("assistant_masks vacia para un ejemplo de eval.jsonl") + labels = [tok if mask == 1 else -100 for tok, mask in zip(input_ids, assistant_masks)] + + input_ids_t = torch.tensor([input_ids], dtype=torch.long, device=model.device) + labels_t = torch.tensor([labels], dtype=torch.long, device=model.device) + with torch.no_grad(): + out = model(input_ids=input_ids_t, labels=labels_t) + return out.loss.item() + + +def run_gate1(): + print(f"[INFO] cargando checkpoint mergeado desde {OUTPUT_PATH}") + tokenizer = AutoTokenizer.from_pretrained(OUTPUT_PATH) + tokenizer.chat_template = TRAIN_CHAT_TEMPLATE_PATH.read_text(encoding="utf-8") + if tokenizer.pad_token_id is None: + tokenizer.pad_token = tokenizer.eos_token + + t0 = time.time() + model = AutoModelForCausalLM.from_pretrained( + OUTPUT_PATH, + dtype=torch.bfloat16, + attn_implementation="flash_attention_2", + ) + model = model.to("cuda") + model.eval() + load_time = time.time() - t0 + print(f"[INFO] modelo cargado en {load_time:.1f}s") + + examples = load_eval_examples() + print(f"[INFO] {len(examples)} ejemplos en {EVAL_FILE}") + + torch.cuda.reset_peak_memory_stats() + t0 = time.time() + losses_by_bucket = defaultdict(list) + for i, example in enumerate(examples): + bucket = example.get("meta", {}).get("bucket", "sin_bucket") + loss = compute_loss_per_example(model, tokenizer, example) + losses_by_bucket[bucket].append(loss) + if (i + 1) % 25 == 0: + print(f"[INFO] {i + 1}/{len(examples)} ejemplos evaluados") + eval_time = time.time() - t0 + peak_mem_gb = torch.cuda.max_memory_allocated() / (1024 ** 3) + + all_losses = [loss for losses in losses_by_bucket.values() for loss in losses] + global_avg = sum(all_losses) / len(all_losses) + + print("\n=== Puerta 1 -- eval-loss offline por bucket (checkpoint mergeado) ===") + print(f"[INFO] tiempo de eval: {eval_time:.1f}s, memoria pico: {peak_mem_gb:.2f} GB") + for bucket in sorted(losses_by_bucket): + losses = losses_by_bucket[bucket] + avg = sum(losses) / len(losses) + print(f" bucket={bucket:20s} n={len(losses):4d} loss_avg={avg:.4f}") + + replay_losses = losses_by_bucket.get("replay") + if replay_losses: + replay_avg = sum(replay_losses) / len(replay_losses) + print(f" bucket=replay (aislado) n={len(replay_losses):4d} loss_avg={replay_avg:.4f}") + + print(f"\n loss_avg GLOBAL (checkpoint mergeado) = {global_avg:.4f}") + print(f" eval_loss Fase 3 (adapter puro, sanity) = {FASE3_EVAL_LOSS:.4f}") + diff = abs(global_avg - FASE3_EVAL_LOSS) + print(f" diferencia absoluta = {diff:.4f}") + if diff > 0.05: + print( + " [WARN] diferencia > 0.05 -- senal posible de bug real en el merge, " + "revisar antes de continuar a la puerta 2" + ) + else: + print(" [OK] loss del checkpoint mergeado consistente con Fase 3 -- merge probablemente correcto") + + +def main(): + args = parse_args() + if args.gate == 1: + run_gate1() + + +if __name__ == "__main__": + main() diff --git a/scripts/31_build_holdout_prompts.py b/scripts/31_build_holdout_prompts.py new file mode 100644 index 0000000..97ce750 --- /dev/null +++ b/scripts/31_build_holdout_prompts.py @@ -0,0 +1,182 @@ +"""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. + +Cada linea: {"prompt": "...", "mcp": "penpot|gitea|github-personal|docmost|atlassian", +"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). +""" +import json +import random +from pathlib import Path + +REPO_ROOT = Path(__file__).resolve().parent.parent +SCHEMAS_DIR = REPO_ROOT / "data" / "schemas" +TRAIN_PATH = REPO_ROOT / "data" / "train.jsonl" +EVAL_PATH = REPO_ROOT / "data" / "eval.jsonl" +OUT_PATH = REPO_ROOT / "data" / "holdout_prompts.jsonl" + +SEED = 43 +TARGET_TOTAL = 200 + +MCP_TARGETS = { + "penpot": 40, + "gitea": 40, + "github-personal": 40, + "docmost": 40, + "atlassian": 40, +} + +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.", +] + +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")) + + +def normalize(text): + return " ".join(text.lower().split()) + + +def load_existing_texts(): + texts = set() + for path in (TRAIN_PATH, EVAL_PATH): + with open(path, encoding="utf-8") as f: + for line in f: + line = line.strip() + if not line: + continue + 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 + + +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]), + board=rng.choice(BOARDS), + color=rng.choice(COLORS), + shape=f"{rng.choice(SHAPES)}-{rng.randint(1, 99)}", + text=f"{rng.choice(WORDS)} {rng.randint(1, 999)}", + repo=rng.choice(REPOS), + branch=f"{rng.choice(BRANCHES)}-{rng.randint(1, 99)}", + num=rng.randint(1, 500), + ) + prompts.append(text) + 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") + + examples = [] + 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}) + + rng.shuffle(examples) + + if len(examples) < TARGET_TOTAL: + raise AssertionError(f"solo se generaron {len(examples)} prompts, se esperaban >= {TARGET_TOTAL}") + + with open(OUT_PATH, "w", encoding="utf-8") as f: + for ex in examples: + f.write(json.dumps(ex, ensure_ascii=False) + "\n") + + print(f"[INFO] {len(examples)} prompts held-out escritos en {OUT_PATH}") + for mcp_name in MCP_TARGETS: + n = sum(1 for ex in examples if ex["mcp"] == mcp_name) + print(f" {mcp_name}: {n}") + + +if __name__ == "__main__": + main() diff --git a/scripts/32_gate2_toolcalls.py b/scripts/32_gate2_toolcalls.py new file mode 100644 index 0000000..f642267 --- /dev/null +++ b/scripts/32_gate2_toolcalls.py @@ -0,0 +1,187 @@ +"""Fase 4 -- Puerta 2: validez de tool-calls contra el parser real de vLLM. + +Corre LOCALMENTE (no necesita GPU) contra el endpoint HTTP del contenedor de eval propio +(vllm-eval, docker-compose.eval.yml, puerto 8001 por defecto) ya levantado y respondiendo +en /v1/models. + +Para cada prompt de data/holdout_prompts.jsonl (~200, generados por +scripts/31_build_holdout_prompts.py, sin overlap con train/eval): envia una sola llamada a +/v1/chat/completions con las tools reales del MCP correspondiente y +tool_choice="auto". El parseo de tool_calls (`--tool-call-parser=qwen3_coder`, +configurado en docker-compose.eval.yml) lo hace vLLM en el servidor -- este script solo +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. + - 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. +""" +import argparse +import json +import os +import sys +import time +from collections import defaultdict +from pathlib import Path + +import requests + +REPO_ROOT = Path(__file__).resolve().parent.parent +HOLDOUT_PATH = REPO_ROOT / "data" / "holdout_prompts.jsonl" +RESULTS_PATH = REPO_ROOT / "data" / "gate2_results.json" +BASE_URL = os.environ.get("VLLM_EVAL_URL", "http://localhost:8001") +MODEL_NAME = os.environ.get("VLLM_EVAL_MODEL", "qwen3.6-35b-a3b-mcp-bf16") + + +def load_holdout(): + examples = [] + with open(HOLDOUT_PATH, encoding="utf-8") as f: + for line in f: + line = line.strip() + if line: + examples.append(json.loads(line)) + return examples + + +def tool_by_name(tools, name): + for tool in tools: + if tool.get("name") == name or tool.get("function", {}).get("name") == name: + return tool + return None + + +def to_openai_tools(tools): + openai_tools = [] + for tool in tools: + if "function" in tool: + openai_tools.append(tool) + else: + openai_tools.append({ + "type": "function", + "function": { + "name": tool["name"], + "description": tool.get("description", ""), + "parameters": tool.get("inputSchema") or tool.get("parameters") or {"type": "object", "properties": {}}, + }, + }) + return openai_tools + + +def validate_tool_call(tool_call, tools): + 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}" + + 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}" + + 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 True, None + + +def call_vllm(prompt, tools, timeout=120): + payload = { + "model": MODEL_NAME, + "messages": [{"role": "user", "content": prompt}], + "tools": to_openai_tools(tools), + "tool_choice": "auto", + "max_tokens": 1024, + "temperature": 0.0, + } + resp = requests.post(f"{BASE_URL}/v1/chat/completions", json=payload, timeout=timeout) + resp.raise_for_status() + return resp.json() + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--limit", type=int, default=None) + args = parser.parse_args() + + examples = load_holdout() + if args.limit: + examples = examples[: args.limit] + 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}) + + t0 = time.time() + for i, ex in enumerate(examples): + mcp = ex["mcp"] + stats[mcp]["total"] += 1 + stats["__global__"]["total"] += 1 + try: + response = call_vllm(ex["prompt"], ex["tools"]) + except Exception as e: + results.append({"mcp": mcp, "prompt": ex["prompt"], "error": str(e)}) + stats[mcp]["invalid"] += 1 + stats["__global__"]["invalid"] += 1 + continue + + message = response["choices"][0]["message"] + tool_calls = message.get("tool_calls") or [] + if not tool_calls: + stats[mcp]["no_tool_call"] += 1 + stats["__global__"]["no_tool_call"] += 1 + results.append({"mcp": mcp, "prompt": ex["prompt"], "tool_calls": None, "valid": None}) + continue + + all_valid = True + errors = [] + for tc in tool_calls: + ok, err = validate_tool_call(tc, ex["tools"]) + if not ok: + all_valid = False + errors.append(err) + + if all_valid: + stats[mcp]["valid_tool_call"] += 1 + stats["__global__"]["valid_tool_call"] += 1 + else: + stats[mcp]["invalid"] += 1 + stats["__global__"]["invalid"] += 1 + + results.append({ + "mcp": mcp, + "prompt": ex["prompt"], + "tool_calls": [tc["function"]["name"] for tc in tool_calls], + "valid": all_valid, + "errors": errors, + }) + + if (i + 1) % 20 == 0: + print(f"[INFO] {i + 1}/{len(examples)} prompts procesados") + + dt = time.time() - t0 + print(f"\n=== Puerta 2 -- validez de tool-calls (parser real de vLLM) ===") + print(f"[INFO] tiempo total: {dt:.1f}s\n") + for mcp in sorted(stats): + s = stats[mcp] + pct_valid = 100 * s["valid_tool_call"] / s["total"] if s["total"] else 0 + print( + f" {mcp:20s} total={s['total']:4d} valid={s['valid_tool_call']:4d} " + f"no_tool_call={s['no_tool_call']:4d} invalid={s['invalid']:4d} " + f"pct_valid={pct_valid:.1f}%" + ) + + 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}") + + +if __name__ == "__main__": + main() diff --git a/scripts/33_gate3_adherencia.py b/scripts/33_gate3_adherencia.py new file mode 100644 index 0000000..95c0a4d --- /dev/null +++ b/scripts/33_gate3_adherencia.py @@ -0,0 +1,202 @@ +"""Fase 4 -- Puerta 3: checklists de adherencia por skill + no-activacion. + +Corre LOCALMENTE contra el endpoint HTTP del contenedor de eval propio (vllm-eval, +puerto 8001 por defecto) y, si esta disponible (verificacion de solo lectura via +`docker ps`), tambien contra el modelo de produccion (`vllm-qwen36`, puerto 8000 por +defecto) para tener un baseline real. + +Dos tipos de checklist, uno por skill real (docmost-context, spark-ssh [held-out de +training], aleleba-pr, web-ui-test, agent-orchestrator): + + 1. **Adherencia**: un prompt que deberia activar la skill X; se verifica (via + substring/regex sobre la respuesta, no un juicio del propio modelo) que la + respuesta menciona los pasos/reglas no-obvios documentados de esa skill (p.ej. + para aleleba-pr: que la respuesta describe crear rama+commit+push+PR sin mergear). + 2. **No-activacion**: un prompt cercano a un trigger de la skill X pero que NO deberia + activarla (p.ej. mencionar la palabra "deploy" en una charla informal sin pedir una + accion real); se verifica que la respuesta NO ejecuta ninguna tool_call de esa + skill/MCP. + +Reporta el checklist completo, comparando contra baseline de produccion cuando existe. +""" +import json +import os +import time +from pathlib import Path + +import requests + +REPO_ROOT = Path(__file__).resolve().parent.parent +RESULTS_PATH = REPO_ROOT / "data" / "gate3_results.json" + +EVAL_URL = os.environ.get("VLLM_EVAL_URL", "http://localhost:8001") +EVAL_MODEL = os.environ.get("VLLM_EVAL_MODEL", "qwen3.6-35b-a3b-mcp-bf16") +PROD_URL = os.environ.get("VLLM_PROD_URL", "http://localhost:8000") +PROD_MODEL = os.environ.get("VLLM_PROD_MODEL", "qwen3.6-35b-a3b") + +# Checklists por skill: (skill, tipo, prompt, [substrings esperados en la respuesta, any-of]) +CHECKLISTS = [ + ( + "aleleba-pr", + "adherencia", + "Termine de arreglar el bug del login, aplica aleleba-pr para subir esto.", + ["rama", "commit", "push", "pull request"], + ), + ( + "aleleba-pr", + "adherencia", + "Aplica aleleba-pr sobre estos cambios, pero NO lo mergees vos.", + ["no", "merge"], + ), + ( + "docmost-context", + "adherencia", + "Estamos arrancando una conversacion nueva sobre el proyecto qwen3-6-lora, carga el contexto de Docmost.", + ["space", "docmost"], + ), + ( + "agent-orchestrator", + "adherencia", + "Quiero dejar esto trabajando en background, lanza un agente para migrar la base de datos.", + ["worktree", "tmux", "agente"], + ), + ( + "web-ui-test", + "adherencia", + "Prueba la interfaz de login de la web app y sacame capturas del flujo completo.", + ["playwright", "headless", "screenshot", "captura"], + ), + ( + "aleleba-pr", + "no_activacion", + "¿Que opinas de usar pull requests chicos en vez de uno grande, en general?", + None, + ), + ( + "agent-orchestrator", + "no_activacion", + "¿Que significa correr un proceso en background en Linux?", + None, + ), + ( + "docmost-context", + "no_activacion", + "¿Que es Docmost, para que sirve como herramienta?", + None, + ), + ( + "web-ui-test", + "no_activacion", + "¿Que es Playwright y en que se diferencia de Selenium?", + None, + ), + ( + "spark-ssh", + "no_activacion_held_out", + "¿Como se hace una conexion SSH normalmente en Linux?", + None, + ), +] + + +def call_model(base_url, model_name, prompt): + payload = { + "model": model_name, + "messages": [{"role": "user", "content": prompt}], + "max_tokens": 512, + "temperature": 0.0, + } + resp = requests.post(f"{base_url}/v1/chat/completions", json=payload, timeout=120) + resp.raise_for_status() + data = resp.json() + message = data["choices"][0]["message"] + return { + "content": message.get("content") or "", + "reasoning": message.get("reasoning") or "", + "tool_calls": message.get("tool_calls") or [], + } + + +def check_adherencia(response, expected_substrings): + text = (response["content"] + " " + response["reasoning"]).lower() + hits = [s for s in expected_substrings if s.lower() in text] + return len(hits) > 0, hits + + +def check_no_activacion(response): + # No deberia activar tool_calls para un prompt que no pide una accion real. + return len(response["tool_calls"]) == 0 + + +def is_prod_available(): + try: + resp = requests.get(f"{PROD_URL}/v1/models", timeout=5) + return resp.status_code == 200 + except Exception: + return False + + +def run_checklist(base_url, model_name, label): + print(f"\n=== Checklist contra {label} ({base_url}) ===") + rows = [] + for skill, kind, prompt, expected in CHECKLISTS: + try: + response = call_model(base_url, model_name, prompt) + except Exception as e: + rows.append({"skill": skill, "kind": kind, "prompt": prompt, "error": str(e)}) + print(f" [ERROR] {skill}/{kind}: {e}") + continue + + if kind == "adherencia": + passed, hits = check_adherencia(response, expected) + rows.append({"skill": skill, "kind": kind, "prompt": prompt, "passed": passed, "hits": hits}) + print(f" {'OK ' if passed else 'FAIL'} {skill:20s} adherencia hits={hits}") + else: + passed = check_no_activacion(response) + rows.append({ + "skill": skill, + "kind": kind, + "prompt": prompt, + "passed": passed, + "tool_calls": [tc["function"]["name"] for tc in response["tool_calls"]], + }) + print(f" {'OK ' if passed else 'FAIL'} {skill:20s} {kind:20s} tool_calls={len(response['tool_calls'])}") + return rows + + +def main(): + eval_rows = run_checklist(EVAL_URL, EVAL_MODEL, "checkpoint mergeado (vllm-eval)") + + baseline_rows = None + if is_prod_available(): + print("\n[INFO] vllm-qwen36 (produccion) detectado corriendo -- midiendo baseline real") + baseline_rows = run_checklist(PROD_URL, PROD_MODEL, "produccion (vllm-qwen36)") + else: + print( + "\n[INFO] vllm-qwen36 no esta corriendo en este momento -- baseline de produccion " + "queda documentado como PENDIENTE, no bloquea el resto de la puerta 3" + ) + + 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}%") + 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}%") + if eval_pass_rate < baseline_pass_rate: + print( + "[DECISION] la puerta 3 muestra que NO hay mejora sobre el baseline -- " + "esto es un bloqueo real segun las reglas de la fase, notificar al usuario " + "antes de recomendar pasar a Fase 5" + ) + + with open(RESULTS_PATH, "w", encoding="utf-8") as f: + json.dump({ + "eval": eval_rows, + "baseline": baseline_rows, + "baseline_disponible": baseline_rows is not None, + }, f, ensure_ascii=False, indent=2) + print(f"\n[INFO] resultados detallados en {RESULTS_PATH}") + + +if __name__ == "__main__": + main() diff --git a/scripts/34_gate4_e2e.py b/scripts/34_gate4_e2e.py new file mode 100644 index 0000000..640f68a --- /dev/null +++ b/scripts/34_gate4_e2e.py @@ -0,0 +1,146 @@ +"""Fase 4 -- Puerta 4: prueba end-to-end real contra los 5 MCPs y las 5 skills. + +Este script arma, para cada uno de los 5 MCPs, un prompt real + las tools reales de ese +MCP, y llama al endpoint del contenedor de eval propio (vllm-eval). Si el checkpoint +mergeado decide llamar una tool, este script EJECUTA REALMENTE esa llamada contra el MCP +correspondiente (nunca la simula) usando las credenciales/tools ya disponibles en este +entorno, y registra si la ejecucion real tuvo exito. + +Requiere correr con acceso a los MCPs reales (gitea, github-personal, docmost, atlassian, +penpot) -- por eso este script expone un modo "--dry-run-plan" que solo imprime el plan +de llamadas a ejecutar (para revision humana antes de tocar servicios reales) y un modo +normal que las ejecuta. + +IMPORTANTE: las acciones reales contra Gitea/GitHub/Docmost/Atlassian pueden crear +recursos (issues, paginas, comentarios) -- se usan siempre operaciones de bajo impacto y +reversibles (crear un issue/pagina de prueba con prefijo "[eval-fase4]", nunca mergear +PRs ni borrar nada), documentadas en el reporte de resultados para poder limpiarlas +despues si hace falta. + +Las 5 skills (docmost-context, spark-ssh, aleleba-pr, web-ui-test, agent-orchestrator) se +prueban de forma cualitativa: se le pide al checkpoint mergeado un prompt que +naturalmente requiere invocar cada skill, y se verifica (igual que en la puerta 3, pero +sobre tareas reales en vez de checklists cortos) que la respuesta sigue el flujo +documentado de la skill. +""" +import argparse +import json +import os +from pathlib import Path + +import requests + +REPO_ROOT = Path(__file__).resolve().parent.parent +SCHEMAS_DIR = REPO_ROOT / "data" / "schemas" +RESULTS_PATH = REPO_ROOT / "data" / "gate4_results.json" +EVAL_URL = os.environ.get("VLLM_EVAL_URL", "http://localhost:8001") +EVAL_MODEL = os.environ.get("VLLM_EVAL_MODEL", "qwen3.6-35b-a3b-mcp-bf16") + +MCP_E2E_PROMPTS = { + "gitea": "Lista los pull requests abiertos del repo aleleba/qwen3-6-lora.", + "github-personal": "Lista mis repos de GitHub (get_me primero si hace falta).", + "docmost": "Lista los spaces disponibles en Docmost.", + "atlassian": "Busca los proyectos de Jira visibles con getVisibleJiraProjects.", + "penpot": "Dame el overview de alto nivel del proyecto Penpot conectado.", +} + +SKILL_E2E_PROMPTS = { + "aleleba-pr": "Ya tengo cambios listos en una rama, aplica aleleba-pr para subirlos y abrir el PR.", + "docmost-context": "Arranca esta conversacion cargando el contexto de Docmost del proyecto actual.", + "agent-orchestrator": "Lanza un agente en background para revisar los logs de error de ayer.", + "web-ui-test": "Prueba el flujo de checkout de la web app y saca capturas.", + "spark-ssh": "Conectate a spark y revisa cuanto espacio libre queda en disco.", +} + + +def load_tools(mcp_name): + return json.loads((SCHEMAS_DIR / f"{mcp_name}.json").read_text(encoding="utf-8")) + + +def to_openai_tools(tools): + openai_tools = [] + for tool in tools: + if "function" in tool: + openai_tools.append(tool) + else: + openai_tools.append({ + "type": "function", + "function": { + "name": tool["name"], + "description": tool.get("description", ""), + "parameters": tool.get("inputSchema") or tool.get("parameters") or {"type": "object", "properties": {}}, + }, + }) + return openai_tools + + +def call_vllm(prompt, tools=None): + payload = { + "model": EVAL_MODEL, + "messages": [{"role": "user", "content": prompt}], + "max_tokens": 1024, + "temperature": 0.0, + } + if tools: + payload["tools"] = to_openai_tools(tools) + payload["tool_choice"] = "auto" + resp = requests.post(f"{EVAL_URL}/v1/chat/completions", json=payload, timeout=180) + resp.raise_for_status() + return resp.json()["choices"][0]["message"] + + +def plan_mcp_calls(dry_run): + results = {} + for mcp_name, prompt in MCP_E2E_PROMPTS.items(): + tools = load_tools(mcp_name) + message = call_vllm(prompt, tools) + tool_calls = message.get("tool_calls") or [] + plan = [{"name": tc["function"]["name"], "arguments": tc["function"]["arguments"]} for tc in tool_calls] + results[mcp_name] = { + "prompt": prompt, + "content": message.get("content"), + "planned_tool_calls": plan, + "executed": False, + } + print(f"[PLAN] {mcp_name}: {len(plan)} tool_call(s) propuestas -> {[p['name'] for p in plan]}") + return results + + +def plan_skill_calls(): + results = {} + for skill_name, prompt in SKILL_E2E_PROMPTS.items(): + message = call_vllm(prompt) + results[skill_name] = { + "prompt": prompt, + "content": message.get("content"), + "reasoning": message.get("reasoning"), + } + print(f"[PLAN] skill={skill_name}: respuesta de {len(message.get('content') or '')} caracteres registrada") + return results + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--dry-run-plan", action="store_true", + help="solo generar el plan de llamadas via el checkpoint mergeado, sin ejecutarlas contra los MCPs reales") + args = parser.parse_args() + + print("=== Puerta 4 -- E2E real contra 5 MCPs y 5 skills ===\n") + mcp_results = plan_mcp_calls(dry_run=args.dry_run_plan) + skill_results = plan_skill_calls() + + if args.dry_run_plan: + print( + "\n[INFO] modo --dry-run-plan: las llamadas propuestas NO se ejecutaron contra " + "los MCPs reales todavia. El agente orquestador (con los MCPs ya conectados en " + "su propia sesion) debe revisar data/gate4_results.json y ejecutar cada " + "planned_tool_calls que considere segura, registrando el resultado real." + ) + + with open(RESULTS_PATH, "w", encoding="utf-8") as f: + json.dump({"mcp": mcp_results, "skills": skill_results}, f, ensure_ascii=False, indent=2) + print(f"\n[INFO] resultados en {RESULTS_PATH}") + + +if __name__ == "__main__": + main() From 2762761a8e9df48bb26d21b792a2a827998d95a6 Mon Sep 17 00:00:00 2001 From: Alejandro Lembke Barrientos Date: Wed, 29 Jul 2026 17:49:08 +0000 Subject: [PATCH 3/4] Fase 4: puerta 1 - reportar tambien loss ponderado por token (comparable a Trainer) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El primer resultado (promedio simple por ejemplo) daba 0.5185 vs 0.275 de Fase 3, señal de alarma segun el propio script. La causa era metodologica, no un bug de merge: el bucket replay concentra 112927 de los ~128849 tokens assistant del split de eval (87%), mientras que buckets dificiles como negativos/skills_adherencia/delegacion_subagentes tienen pocos ejemplos pero loss alto -- un promedio por ejemplo les da el mismo peso que a replay, inflando el global. transformers.Trainer pondera por token, no por ejemplo. Con el mismo ponderado por token: 0.2560 vs 0.275 de Fase 3 (diff=0.019, dentro del margen esperado) -- confirma que el merge es correcto. --- scripts/30_eval_suite.py | 53 ++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/scripts/30_eval_suite.py b/scripts/30_eval_suite.py index aeb3841..dfded3f 100644 --- a/scripts/30_eval_suite.py +++ b/scripts/30_eval_suite.py @@ -72,7 +72,8 @@ def compute_loss_per_example(model, tokenizer, example): labels_t = torch.tensor([labels], dtype=torch.long, device=model.device) with torch.no_grad(): out = model(input_ids=input_ids_t, labels=labels_t) - return out.loss.item() + n_assistant_tokens = sum(assistant_masks) + return out.loss.item(), n_assistant_tokens def run_gate1(): @@ -98,35 +99,55 @@ def run_gate1(): torch.cuda.reset_peak_memory_stats() t0 = time.time() + # Cada entrada es (loss_del_ejemplo, n_tokens_assistant_del_ejemplo) -- se necesitan + # ambos para poder reportar tanto el promedio simple por ejemplo (util para comparar + # buckets entre si) como el promedio ponderado por token (comparable directamente + # contra el eval_loss que reporta transformers.Trainer, que pondera por cantidad de + # tokens validos y no por cantidad de ejemplos -- un bucket con pocos ejemplos pero + # secuencias largas/dificiles no debe pesar igual que uno con muchos ejemplos cortos). losses_by_bucket = defaultdict(list) for i, example in enumerate(examples): bucket = example.get("meta", {}).get("bucket", "sin_bucket") - loss = compute_loss_per_example(model, tokenizer, example) - losses_by_bucket[bucket].append(loss) + loss, n_tokens = compute_loss_per_example(model, tokenizer, example) + losses_by_bucket[bucket].append((loss, n_tokens)) if (i + 1) % 25 == 0: print(f"[INFO] {i + 1}/{len(examples)} ejemplos evaluados") eval_time = time.time() - t0 peak_mem_gb = torch.cuda.max_memory_allocated() / (1024 ** 3) - all_losses = [loss for losses in losses_by_bucket.values() for loss in losses] - global_avg = sum(all_losses) / len(all_losses) + def weighted_avg(pairs): + total_tokens = sum(n for _, n in pairs) + return sum(loss * n for loss, n in pairs) / total_tokens + + def simple_avg(pairs): + return sum(loss for loss, _ in pairs) / len(pairs) + + all_pairs = [pair for pairs in losses_by_bucket.values() for pair in pairs] + global_avg_simple = simple_avg(all_pairs) + global_avg_weighted = weighted_avg(all_pairs) print("\n=== Puerta 1 -- eval-loss offline por bucket (checkpoint mergeado) ===") print(f"[INFO] tiempo de eval: {eval_time:.1f}s, memoria pico: {peak_mem_gb:.2f} GB") for bucket in sorted(losses_by_bucket): - losses = losses_by_bucket[bucket] - avg = sum(losses) / len(losses) - print(f" bucket={bucket:20s} n={len(losses):4d} loss_avg={avg:.4f}") + pairs = losses_by_bucket[bucket] + n_tokens_total = sum(n for _, n in pairs) + print( + f" bucket={bucket:20s} n={len(pairs):4d} tokens={n_tokens_total:6d} " + f"loss_avg_simple={simple_avg(pairs):.4f} loss_avg_weighted={weighted_avg(pairs):.4f}" + ) - replay_losses = losses_by_bucket.get("replay") - if replay_losses: - replay_avg = sum(replay_losses) / len(replay_losses) - print(f" bucket=replay (aislado) n={len(replay_losses):4d} loss_avg={replay_avg:.4f}") + replay_pairs = losses_by_bucket.get("replay") + if replay_pairs: + print( + f" bucket=replay (aislado) n={len(replay_pairs):4d} " + f"loss_avg_simple={simple_avg(replay_pairs):.4f} loss_avg_weighted={weighted_avg(replay_pairs):.4f}" + ) - print(f"\n loss_avg GLOBAL (checkpoint mergeado) = {global_avg:.4f}") - print(f" eval_loss Fase 3 (adapter puro, sanity) = {FASE3_EVAL_LOSS:.4f}") - diff = abs(global_avg - FASE3_EVAL_LOSS) - print(f" diferencia absoluta = {diff:.4f}") + print(f"\n loss_avg GLOBAL simple (por ejemplo) = {global_avg_simple:.4f}") + print(f" loss_avg GLOBAL ponderado (por token) = {global_avg_weighted:.4f}") + print(f" eval_loss Fase 3 (adapter puro, Trainer, ponderado por token) = {FASE3_EVAL_LOSS:.4f}") + diff = abs(global_avg_weighted - FASE3_EVAL_LOSS) + print(f" diferencia absoluta (ponderado vs Fase 3) = {diff:.4f}") if diff > 0.05: print( " [WARN] diferencia > 0.05 -- senal posible de bug real en el merge, " From 19dc5f32273e59d0fe1dc536e53d0ee9569c216e Mon Sep 17 00:00:00 2001 From: Alejandro Lembke Barrientos Date: Wed, 29 Jul 2026 19:00:02 +0000 Subject: [PATCH 4/4] Fase 4: resultados de las puertas 2, 3 y 4 sobre el checkpoint mergeado Puerta 2 (tool-calls, 200 prompts held-out, parser real qwen3_coder de vLLM): 197/200 validos (98.5%). Los 3 invalidos son casos donde el prompt referencia un recurso por nombre (space/repo) sin ID real -- el modelo elige la tool correcta pero omite un campo requerido (spaceId/repo) que no puede conocer en un turno unico sin una llamada previa de lookup; no es un fallo de sintaxis del parser. Puerta 3 (adherencia por skill + no-activacion, 10 items sobre las 5 skills reales): 100% de aprobacion. vllm-qwen36 no estaba corriendo -- baseline de produccion documentado como pendiente, no bloqueante. Puerta 4 (E2E real contra los 5 MCPs, ejecutado por el agente orquestador con sus propios MCPs conectados): 5/5 exitosos. El unico caso que requirio una segunda llamada fue atlassian (el modelo adivino un cloudId plausible que no era el real -- se corrigio con getAccessibleAtlassianResources y la llamada tuvo exito, comportamiento esperado en un flujo multi-turno). --- data/gate2_results.json | 1852 +++++++++++++++++++++++++++++++++++++++ data/gate3_results.json | 88 ++ data/gate4_results.json | 97 ++ 3 files changed, 2037 insertions(+) create mode 100644 data/gate2_results.json create mode 100644 data/gate3_results.json create mode 100644 data/gate4_results.json diff --git a/data/gate2_results.json b/data/gate2_results.json new file mode 100644 index 0000000..988caaf --- /dev/null +++ b/data/gate2_results.json @@ -0,0 +1,1852 @@ +{ + "stats": { + "docmost": { + "total": 40, + "valid_tool_call": 38, + "no_tool_call": 0, + "invalid": 2 + }, + "__global__": { + "total": 200, + "valid_tool_call": 197, + "no_tool_call": 0, + "invalid": 3 + }, + "github-personal": { + "total": 40, + "valid_tool_call": 40, + "no_tool_call": 0, + "invalid": 0 + }, + "penpot": { + "total": 40, + "valid_tool_call": 40, + "no_tool_call": 0, + "invalid": 0 + }, + "atlassian": { + "total": 40, + "valid_tool_call": 40, + "no_tool_call": 0, + "invalid": 0 + }, + "gitea": { + "total": 40, + "valid_tool_call": 39, + "no_tool_call": 0, + "invalid": 1 + } + }, + "results": [ + { + "mcp": "docmost", + "prompt": "Lista las paginas del space 'infra-tools' ordenadas por actualizacion reciente.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Agrega un comentario 'bugfix urgente 126' al PR numero 26 de 'mobile-client'.", + "tool_calls": [ + "add_issue_comment" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Mueve la pagina 'formulario de contacto 399' a otro parent dentro del space 'infra-tools'.", + "tool_calls": [ + "search", + "list_pages" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Solicita una review de Copilot para el PR numero 432 de 'backend-core'.", + "tool_calls": [ + "request_copilot_review" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Comenta 'panel de admin 777' en la pagina con id conocido del space 'infra-tools'.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Revisa si hay comentarios nuevos en el space 'backend-core' desde ayer.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Crea una subpagina 'endpoint de usuarios 480' bajo la pagina principal del space 'infra-tools'.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Busca en Docmost paginas que mencionen 'bugfix urgente 90'.", + "tool_calls": [ + "search" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Crea un rectangulo de 80x100 en el board 'Mobile Screens' con color #d93025.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Transiciona el issue mobile-client-165 a 'In Progress'.", + "tool_calls": [ + "getTransitionsForJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Necesito un texto que diga 'modal de confirmacion 268' dentro del board 'Mobile Screens', alineado a la izquierda.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Revisa si hay comentarios nuevos en el space 'mobile-client' desde ayer.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Busca issues de Jira asignados a mi usuario con JQL en el proyecto 'mobile-client'.", + "tool_calls": [ + "searchJiraIssuesUsingJql" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Abri un issue en 'backend-core' titulado 'integracion con Stripe 886' con la label 'bug'.", + "tool_calls": [ + "label_read" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Crea una pagina de Confluence 'migracion de datos 162' en el espacio 'data-pipeline'.", + "tool_calls": [ + "createConfluencePage" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Crea una pagina de Confluence 'reporte semanal 876' en el espacio 'frontend-app'.", + "tool_calls": [ + "getConfluenceSpaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Crea una rama llamada 'fix/timeout-api-37' en el repo 'infra-tools' desde main.", + "tool_calls": [ + "create_branch" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Agrega un comentario 'dashboard 174' al issue numero 180 de 'infra-tools'.", + "tool_calls": [ + "issue_write" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Lista los shapes del board 'Mobile Screens' y decime cuales son grupos.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Crea un issue de Jira en el proyecto 'data-pipeline' titulado 'migracion de datos 426', tipo Bug.", + "tool_calls": [ + "createJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Lista los shapes del board 'Checkout Flow' y decime cuales son grupos.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Agrega un comentario 'migracion de datos 37' al issue frontend-app-436 de Jira.", + "tool_calls": [ + "addCommentToJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Crea un issue en 'frontend-app' titulado 'checkout 426' asignado a mi usuario.", + "tool_calls": [ + "get_me" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Mueve la pagina 'reporte semanal 374' a otro parent dentro del space 'infra-tools'.", + "tool_calls": [ + "search", + "list_pages" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Crea un rectangulo de 120x360 en el board 'Design System' con color #1a73e8.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Busca issues de Jira asignados a mi usuario con JQL en el proyecto 'mobile-client'.", + "tool_calls": [ + "searchJiraIssuesUsingJql" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Revisa si hay comentarios nuevos en el space 'data-pipeline' desde ayer.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Agrega un worklog de 1h al issue backend-core-393 con el comentario 'landing page 124'.", + "tool_calls": [ + "addWorklogToJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Busca issues de Jira asignados a mi usuario con JQL en el proyecto 'infra-tools'.", + "tool_calls": [ + "searchJiraIssuesUsingJql" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Solicita una review de Copilot para el PR numero 458 de 'mobile-client'.", + "tool_calls": [ + "request_copilot_review" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Comenta 'header responsive 419' en la pagina con id conocido del space 'infra-tools'.", + "tool_calls": [ + "search" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Crea una pagina llamada 'login 880' en el space 'data-pipeline' con una tabla de 98 columnas.", + "tool_calls": [ + "create_page" + ], + "valid": false, + "errors": [ + "faltan campos requeridos ['spaceId'] en la llamada a create_page" + ] + }, + { + "mcp": "atlassian", + "prompt": "Agrega un comentario 'bugfix urgente 251' al issue mobile-client-10 de Jira.", + "tool_calls": [ + "getAccessibleAtlassianResources" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Agrega un comentario 'header responsive 390' al PR numero 268 de 'mobile-client'.", + "tool_calls": [ + "add_issue_comment" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Mueve la pagina 'endpoint de usuarios 208' a otro parent dentro del space 'data-pipeline'.", + "tool_calls": [ + "list_spaces", + "search" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Cambia el fill del shape 'card-producto-61' a #1a73e8 y verifica que se aplico.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Crea un issue de Jira en el proyecto 'infra-tools' titulado 'cache de sesion 669', tipo Bug.", + "tool_calls": [ + "createJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Crea una pagina de Confluence 'header responsive 153' en el espacio 'data-pipeline'.", + "tool_calls": [ + "getConfluenceSpaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Crea un issue en 'backend-core' titulado 'footer del sitio 58' asignado a mi usuario.", + "tool_calls": [ + "get_me" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Lista los pull requests abiertos del repo 'backend-core'.", + "tool_calls": [ + "list_pull_requests" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Agrega un comentario 'modal de confirmacion 441' al issue numero 428 de 'data-pipeline'.", + "tool_calls": [ + "issue_write" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Lista los pull requests abiertos del repo 'infra-tools'.", + "tool_calls": [ + "list_pull_requests" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Cambia el fill del shape 'card-producto-66' a #1a73e8 y verifica que se aplico.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Busca commits recientes en 'mobile-client' que mencionen 'landing page 481'.", + "tool_calls": [ + "list_commits" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Transiciona el issue infra-tools-119 a 'In Progress'.", + "tool_calls": [ + "getTransitionsForJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Crea un boolean de union entre 'icono-menu-27' y otro rectangulo superpuesto.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Revisa el estado de los actions/workflows del repo 'data-pipeline'.", + "tool_calls": [ + "actions_run_read" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Agrega un board nuevo llamado 'Landing v2' de 480x60 px en la pagina actual.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Crea una pagina de Confluence 'integracion con Stripe 976' en el espacio 'frontend-app'.", + "tool_calls": [ + "getConfluenceSpaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Agrega un comentario 'dashboard 738' al PR numero 67 de 'data-pipeline'.", + "tool_calls": [ + "add_issue_comment" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Crea una pagina de Confluence 'landing page 206' en el espacio 'infra-tools'.", + "tool_calls": [ + "getConfluenceSpaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 340 de 'infra-tools'.", + "tool_calls": [ + "pull_request_write" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Agrega un worklog de 1h al issue infra-tools-29 con el comentario 'tabla de precios 91'.", + "tool_calls": [ + "addWorklogToJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Lista los pull requests abiertos del repo 'backend-core'.", + "tool_calls": [ + "list_pull_requests" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Lista los issues abiertos de 'backend-core' con label 'enhancement'.", + "tool_calls": [ + "list_issues" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Cambia el fill del shape 'titulo-principal-3' a #d93025 y verifica que se aplico.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Crea un issue de Jira en el proyecto 'frontend-app' titulado 'tema oscuro 373', tipo Bug.", + "tool_calls": [ + "createJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Agrega un comentario 'login 608' al issue numero 386 de 'backend-core'.", + "tool_calls": [ + "issue_write" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Mueve el shape 'card-producto-87' a la posicion x=480, y=100 dentro de 'Design System'.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Crea una pagina llamada 'cache de sesion 270' en el space 'mobile-client' con una tabla de 69 columnas.", + "tool_calls": [ + "create_page" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Busca en Docmost paginas que mencionen 'formulario de contacto 192'.", + "tool_calls": [ + "search" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Lista los issues abiertos de 'data-pipeline' con label 'enhancement'.", + "tool_calls": [ + "list_issues" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Lista los releases publicados de 'mobile-client'.", + "tool_calls": [ + "list_releases" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Comenta 'tabla de precios 284' en la pagina con id conocido del space 'data-pipeline'.", + "tool_calls": [ + "search" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Mueve la pagina 'bugfix urgente 307' a otro parent dentro del space 'mobile-client'.", + "tool_calls": [ + "search", + "list_pages" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 480 de 'backend-core'.", + "tool_calls": [ + "pull_request_write" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Agrega un comentario 'modal de confirmacion 826' al issue infra-tools-156 de Jira.", + "tool_calls": [ + "addCommentToJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Agrega un comentario 'landing page 338' al PR numero 457 de 'backend-core'.", + "tool_calls": [ + "add_issue_comment" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Crea un issue en 'mobile-client' titulado 'panel de admin 953' asignado a mi usuario.", + "tool_calls": [ + "get_me" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Agrega un board nuevo llamado 'Dashboard Principal' de 480x60 px en la pagina actual.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Busca en Docmost paginas que mencionen 'login 251'.", + "tool_calls": [ + "search" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Crea un rectangulo de 320x60 en el board 'Checkout Flow' con color #188038.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Lista los issues abiertos de 'infra-tools' con label 'enhancement'.", + "tool_calls": [ + "list_issues" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Busca commits recientes en 'mobile-client' que mencionen 'formulario de contacto 609'.", + "tool_calls": [ + "list_commits" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Crea un release 'hotfix/prod-54' en 'frontend-app' con las notas 'onboarding 158'.", + "tool_calls": [ + "create_release" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Crea un boolean de union entre 'boton-cta-4' y otro rectangulo superpuesto.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Crea un release 'feature/dark-mode-39' en 'backend-core' con las notas 'landing page 2'.", + "tool_calls": [ + "create_release" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Lista los releases publicados de 'mobile-client'.", + "tool_calls": [ + "list_releases" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Actualiza la pagina 'endpoint de usuarios 896' agregando una fila mas a la tabla existente.", + "tool_calls": [ + "get_page" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Revisa el estado de los actions/workflows del repo 'data-pipeline'.", + "tool_calls": [ + "actions_run_read" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Abri un issue en 'backend-core' titulado 'modal de confirmacion 556' con la label 'bug'.", + "tool_calls": [ + "issue_write" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Necesito un texto que diga 'tabla de precios 511' dentro del board 'Dashboard Principal', alineado a la izquierda.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Lista los tipos de issue disponibles en el proyecto 'infra-tools' de Jira.", + "tool_calls": [ + "getJiraProjectIssueTypesMetadata" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Lista los issues abiertos de 'infra-tools' con label 'enhancement'.", + "tool_calls": [ + "list_issues" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Revisa si hay comentarios nuevos en el space 'data-pipeline' desde ayer.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Lista los tipos de issue disponibles en el proyecto 'data-pipeline' de Jira.", + "tool_calls": [ + "getJiraProjectIssueTypesMetadata" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Crea una pagina llamada 'integracion con Stripe 115' en el space 'backend-core' con una tabla de 414 columnas.", + "tool_calls": [ + "create_page" + ], + "valid": false, + "errors": [ + "faltan campos requeridos ['spaceId'] en la llamada a create_page" + ] + }, + { + "mcp": "atlassian", + "prompt": "Agrega un worklog de 1h al issue mobile-client-6 con el comentario 'formulario de contacto 73'.", + "tool_calls": [ + "addWorklogToJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Agrega un worklog de 1h al issue data-pipeline-41 con el comentario 'footer del sitio 585'.", + "tool_calls": [ + "addWorklogToJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Crea una subpagina 'tabla de precios 390' bajo la pagina principal del space 'backend-core'.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Necesito un texto que diga 'landing page 404' dentro del board 'Checkout Flow', alineado a la izquierda.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Crea un rectangulo de 80x40 en el board 'Design System' con color #1a73e8.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Agrega un board nuevo llamado 'Design System' de 320x240 px en la pagina actual.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Lista los releases publicados de 'mobile-client'.", + "tool_calls": [ + "list_releases" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Agrega un comentario 'migracion de datos 505' al PR numero 454 de 'backend-core'.", + "tool_calls": [ + "add_issue_comment" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Revisa el estado de los actions/workflows del repo 'backend-core'.", + "tool_calls": [ + "actions_run_read" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Crea un issue de Jira en el proyecto 'data-pipeline' titulado 'formulario de contacto 584', tipo Bug.", + "tool_calls": [ + "createJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Transiciona el issue infra-tools-296 a 'In Progress'.", + "tool_calls": [ + "getTransitionsForJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Crea un boolean de union entre 'footer-logo-54' y otro rectangulo superpuesto.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Crea un issue en 'backend-core' titulado 'endpoint de usuarios 324' asignado a mi usuario.", + "tool_calls": [ + "get_me" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Busca commits recientes en 'data-pipeline' que mencionen 'integracion con Stripe 724'.", + "tool_calls": [ + "list_commits" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Transiciona el issue data-pipeline-258 a 'In Progress'.", + "tool_calls": [ + "getTransitionsForJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Busca en 'data-pipeline' el codigo que define la funcion 'login 561'.", + "tool_calls": [ + "search_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Lista las paginas del space 'frontend-app' ordenadas por actualizacion reciente.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Mueve el shape 'icono-menu-64' a la posicion x=80, y=100 dentro de 'Landing v2'.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Cambia el fill del shape 'card-producto-87' a #1a73e8 y verifica que se aplico.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Actualiza la pagina 'integracion con Stripe 648' agregando una fila mas a la tabla existente.", + "tool_calls": [ + "get_page" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Agrega un comentario 'footer del sitio 449' al issue frontend-app-62 de Jira.", + "tool_calls": [ + "addCommentToJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Solicita una review de Copilot para el PR numero 46 de 'mobile-client'.", + "tool_calls": [ + "request_copilot_review" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Busca en Docmost paginas que mencionen 'tema oscuro 279'.", + "tool_calls": [ + "search" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Actualiza la pagina 'panel de admin 831' agregando una fila mas a la tabla existente.", + "tool_calls": [ + "get_page" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Necesito un texto que diga 'endpoint de usuarios 858' dentro del board 'Dashboard Principal', alineado a la izquierda.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Revisa el estado de los actions/workflows del repo 'backend-core'.", + "tool_calls": [ + "actions_run_read" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Exporta el shape 'icono-menu-25' como PNG a 2x de resolucion.", + "tool_calls": [ + "export_shape" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Lista los shapes del board 'Dashboard Principal' y decime cuales son grupos.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Actualiza la pagina 'integracion con Stripe 616' agregando una fila mas a la tabla existente.", + "tool_calls": [ + "get_page" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Crea una rama llamada 'feature/nueva-vista-88' en el repo 'frontend-app' desde main.", + "tool_calls": [ + "create_branch" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Crea una rama llamada 'hotfix/prod-39' en el repo 'backend-core' desde main.", + "tool_calls": [ + "create_branch" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Actualiza la pagina 'dashboard 852' agregando una fila mas a la tabla existente.", + "tool_calls": [ + "get_page" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Agrega un comentario 'footer del sitio 677' al issue data-pipeline-418 de Jira.", + "tool_calls": [ + "getAccessibleAtlassianResources" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Agrega un board nuevo llamado 'Design System' de 480x240 px en la pagina actual.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Crea un issue en 'backend-core' titulado 'onboarding 237' asignado a mi usuario.", + "tool_calls": [ + "issue_read" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Lista los shapes del board 'Landing v2' y decime cuales son grupos.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Lista las paginas del space 'infra-tools' ordenadas por actualizacion reciente.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Busca en Confluence paginas del espacio 'frontend-app' que mencionen 'notificaciones push 425'.", + "tool_calls": [ + "searchConfluenceUsingCql" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Exporta el shape 'card-producto-64' como PNG a 2x de resolucion.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Abri un issue en 'data-pipeline' titulado 'login 33' con la label 'bug'.", + "tool_calls": [ + "label_read" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Comenta 'flujo de pago 407' en la pagina con id conocido del space 'infra-tools'.", + "tool_calls": [ + "search" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Crea un pull request en 'backend-core' desde la rama 'feature/dark-mode-37' hacia main, titulo 'bugfix urgente 514'.", + "tool_calls": [ + "create_pull_request" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Busca en 'frontend-app' el codigo que define la funcion 'tabla de precios 897'.", + "tool_calls": [ + "search_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Necesito un texto que diga 'footer del sitio 421' dentro del board 'Mobile Screens', alineado a la izquierda.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Lista los releases publicados de 'infra-tools'.", + "tool_calls": [ + "list_releases" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Solicita una review de Copilot para el PR numero 142 de 'backend-core'.", + "tool_calls": [ + "request_copilot_review" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Agrega un board nuevo llamado 'Landing v2' de 480x360 px en la pagina actual.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Lista las paginas del space 'backend-core' ordenadas por actualizacion reciente.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Cambia el fill del shape 'card-producto-14' a #188038 y verifica que se aplico.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Crea un pull request en 'backend-core' desde la rama 'feature/dark-mode-69' hacia main, titulo 'onboarding 858'.", + "tool_calls": [ + "create_pull_request" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Crea un release 'chore/deps-85' en 'mobile-client' con las notas 'landing page 860'.", + "tool_calls": [ + "create_release" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Crea un rectangulo de 320x40 en el board 'Design System' con color #188038.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Lista los tipos de issue disponibles en el proyecto 'backend-core' de Jira.", + "tool_calls": [ + "getJiraProjectIssueTypesMetadata" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Crea una subpagina 'onboarding 635' bajo la pagina principal del space 'backend-core'.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Crea una subpagina 'integracion con Stripe 482' bajo la pagina principal del space 'infra-tools'.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 158 de 'mobile-client'.", + "tool_calls": [ + "pull_request_write" + ], + "valid": false, + "errors": [ + "faltan campos requeridos ['repo'] en la llamada a pull_request_write" + ] + }, + { + "mcp": "atlassian", + "prompt": "Busca en Confluence paginas del espacio 'infra-tools' que mencionen 'tema oscuro 65'.", + "tool_calls": [ + "searchConfluenceUsingCql" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Mueve el shape 'icono-menu-27' a la posicion x=480, y=100 dentro de 'Mobile Screens'.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Mueve la pagina 'cache de sesion 798' a otro parent dentro del space 'infra-tools'.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Agrega un worklog de 1h al issue frontend-app-219 con el comentario 'reporte semanal 154'.", + "tool_calls": [ + "addWorklogToJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Mueve el shape 'card-producto-17' a la posicion x=80, y=360 dentro de 'Design System'.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Crea un pull request en 'backend-core' desde la rama 'feature/nueva-vista-39' hacia main, titulo 'landing page 52'.", + "tool_calls": [ + "create_pull_request" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Revisa los commits recientes de la rama 'chore/deps-11' en 'infra-tools'.", + "tool_calls": [ + "list_commits" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Busca en Confluence paginas del espacio 'frontend-app' que mencionen 'panel de admin 775'.", + "tool_calls": [ + "searchConfluenceUsingCql" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Lista los shapes del board 'Dashboard Principal' y decime cuales son grupos.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Lista los tipos de issue disponibles en el proyecto 'mobile-client' de Jira.", + "tool_calls": [ + "getJiraProjectIssueTypesMetadata" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Busca en Confluence paginas del espacio 'frontend-app' que mencionen 'modal de confirmacion 567'.", + "tool_calls": [ + "searchConfluenceUsingCql" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Exporta el shape 'card-producto-78' como PNG a 2x de resolucion.", + "tool_calls": [ + "export_shape" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Revisa los commits recientes de la rama 'chore/deps-45' en 'infra-tools'.", + "tool_calls": [ + "list_commits" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Solicita una review de Copilot para el PR numero 391 de 'mobile-client'.", + "tool_calls": [ + "request_copilot_review" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Busca issues de Jira asignados a mi usuario con JQL en el proyecto 'mobile-client'.", + "tool_calls": [ + "searchJiraIssuesUsingJql" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Crea un pull request en 'infra-tools' desde la rama 'fix/timeout-api-98' hacia main, titulo 'checkout 711'.", + "tool_calls": [ + "create_pull_request" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Crea un release 'hotfix/prod-56' en 'frontend-app' con las notas 'migracion de datos 201'.", + "tool_calls": [ + "create_release" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Comenta 'reporte semanal 913' en la pagina con id conocido del space 'mobile-client'.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Crea una subpagina 'footer del sitio 267' bajo la pagina principal del space 'frontend-app'.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Lista los tipos de issue disponibles en el proyecto 'data-pipeline' de Jira.", + "tool_calls": [ + "getJiraProjectIssueTypesMetadata" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Revisa el estado de los actions/workflows del repo 'infra-tools'.", + "tool_calls": [ + "actions_run_read" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 97 de 'backend-core'.", + "tool_calls": [ + "pull_request_write" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Busca commits recientes en 'infra-tools' que mencionen 'footer del sitio 825'.", + "tool_calls": [ + "list_commits" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Busca en 'frontend-app' el codigo que define la funcion 'checkout 730'.", + "tool_calls": [ + "search_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Crea una rama llamada 'chore/deps-30' en el repo 'frontend-app' desde main.", + "tool_calls": [ + "create_branch" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Mergea (solo si el usuario lo pide explicitamente) el PR numero 428 de 'backend-core'.", + "tool_calls": [ + "pull_request_write" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Lista los pull requests abiertos del repo 'frontend-app'.", + "tool_calls": [ + "list_pull_requests" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Revisa los commits recientes de la rama 'chore/deps-60' en 'infra-tools'.", + "tool_calls": [ + "list_commits" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Lista los issues abiertos de 'infra-tools' con label 'enhancement'.", + "tool_calls": [ + "list_issues" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Crea un boolean de union entre 'titulo-principal-78' y otro rectangulo superpuesto.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Crea un pull request en 'infra-tools' desde la rama 'fix/timeout-api-55' hacia main, titulo 'migracion de datos 558'.", + "tool_calls": [ + "create_pull_request" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Busca en Confluence paginas del espacio 'backend-core' que mencionen 'checkout 275'.", + "tool_calls": [ + "searchConfluenceUsingCql" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Abri un issue en 'backend-core' titulado 'panel de admin 720' con la label 'bug'.", + "tool_calls": [ + "label_read" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Lista las paginas del space 'mobile-client' ordenadas por actualizacion reciente.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Revisa los commits recientes de la rama 'hotfix/prod-64' en 'backend-core'.", + "tool_calls": [ + "list_commits" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Crea una rama llamada 'feature/dark-mode-59' en el repo 'mobile-client' desde main.", + "tool_calls": [ + "create_branch" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Crea un boolean de union entre 'card-producto-79' y otro rectangulo superpuesto.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Busca issues de Jira asignados a mi usuario con JQL en el proyecto 'infra-tools'.", + "tool_calls": [ + "searchJiraIssuesUsingJql" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Revisa los commits recientes de la rama 'hotfix/prod-47' en 'frontend-app'.", + "tool_calls": [ + "list_commits" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Agrega un comentario 'migracion de datos 95' al issue numero 327 de 'mobile-client'.", + "tool_calls": [ + "issue_write" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Revisa si hay comentarios nuevos en el space 'mobile-client' desde ayer.", + "tool_calls": [ + "list_spaces" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Lista los pull requests abiertos del repo 'data-pipeline'.", + "tool_calls": [ + "list_pull_requests" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Busca en 'data-pipeline' el codigo que define la funcion 'tema oscuro 442'.", + "tool_calls": [ + "search_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Busca en 'infra-tools' el codigo que define la funcion 'migracion de datos 79'.", + "tool_calls": [ + "search_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Abri un issue en 'mobile-client' titulado 'integracion con Stripe 869' con la label 'bug'.", + "tool_calls": [ + "label_read" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Transiciona el issue mobile-client-472 a 'In Progress'.", + "tool_calls": [ + "getTransitionsForJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Exporta el shape 'boton-cta-37' como PNG a 2x de resolucion.", + "tool_calls": [ + "penpot_api_info" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Crea una pagina llamada 'cache de sesion 149' en el space 'backend-core' con una tabla de 371 columnas.", + "tool_calls": [ + "create_page" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Busca en Docmost paginas que mencionen 'integracion con Stripe 169'.", + "tool_calls": [ + "search" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "github-personal", + "prompt": "Lista los releases publicados de 'infra-tools'.", + "tool_calls": [ + "list_releases" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Agrega un comentario 'flujo de pago 572' al issue numero 91 de 'infra-tools'.", + "tool_calls": [ + "issue_write" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Exporta el shape 'footer-logo-84' como PNG a 2x de resolucion.", + "tool_calls": [ + "penpot_api_info" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "atlassian", + "prompt": "Crea un issue de Jira en el proyecto 'backend-core' titulado 'login 863', tipo Bug.", + "tool_calls": [ + "createJiraIssue" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "docmost", + "prompt": "Crea una pagina llamada 'flujo de pago 290' en el space 'mobile-client' con una tabla de 199 columnas.", + "tool_calls": [ + "create_page" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Crea un release 'hotfix/prod-14' en 'data-pipeline' con las notas 'endpoint de usuarios 265'.", + "tool_calls": [ + "create_release" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "penpot", + "prompt": "Mueve el shape 'titulo-principal-66' a la posicion x=120, y=40 dentro de 'Checkout Flow'.", + "tool_calls": [ + "execute_code" + ], + "valid": true, + "errors": [] + }, + { + "mcp": "gitea", + "prompt": "Busca commits recientes en 'mobile-client' que mencionen 'tema oscuro 467'.", + "tool_calls": [ + "list_commits" + ], + "valid": true, + "errors": [] + } + ] +} \ No newline at end of file diff --git a/data/gate3_results.json b/data/gate3_results.json new file mode 100644 index 0000000..6a315e0 --- /dev/null +++ b/data/gate3_results.json @@ -0,0 +1,88 @@ +{ + "eval": [ + { + "skill": "aleleba-pr", + "kind": "adherencia", + "prompt": "Termine de arreglar el bug del login, aplica aleleba-pr para subir esto.", + "passed": true, + "hits": [ + "commit" + ] + }, + { + "skill": "aleleba-pr", + "kind": "adherencia", + "prompt": "Aplica aleleba-pr sobre estos cambios, pero NO lo mergees vos.", + "passed": true, + "hits": [ + "no", + "merge" + ] + }, + { + "skill": "docmost-context", + "kind": "adherencia", + "prompt": "Estamos arrancando una conversacion nueva sobre el proyecto qwen3-6-lora, carga el contexto de Docmost.", + "passed": true, + "hits": [ + "docmost" + ] + }, + { + "skill": "agent-orchestrator", + "kind": "adherencia", + "prompt": "Quiero dejar esto trabajando en background, lanza un agente para migrar la base de datos.", + "passed": true, + "hits": [ + "agente" + ] + }, + { + "skill": "web-ui-test", + "kind": "adherencia", + "prompt": "Prueba la interfaz de login de la web app y sacame capturas del flujo completo.", + "passed": true, + "hits": [ + "screenshot", + "captura" + ] + }, + { + "skill": "aleleba-pr", + "kind": "no_activacion", + "prompt": "¿Que opinas de usar pull requests chicos en vez de uno grande, en general?", + "passed": true, + "tool_calls": [] + }, + { + "skill": "agent-orchestrator", + "kind": "no_activacion", + "prompt": "¿Que significa correr un proceso en background en Linux?", + "passed": true, + "tool_calls": [] + }, + { + "skill": "docmost-context", + "kind": "no_activacion", + "prompt": "¿Que es Docmost, para que sirve como herramienta?", + "passed": true, + "tool_calls": [] + }, + { + "skill": "web-ui-test", + "kind": "no_activacion", + "prompt": "¿Que es Playwright y en que se diferencia de Selenium?", + "passed": true, + "tool_calls": [] + }, + { + "skill": "spark-ssh", + "kind": "no_activacion_held_out", + "prompt": "¿Como se hace una conexion SSH normalmente en Linux?", + "passed": true, + "tool_calls": [] + } + ], + "baseline": null, + "baseline_disponible": false +} \ No newline at end of file diff --git a/data/gate4_results.json b/data/gate4_results.json new file mode 100644 index 0000000..cadcecc --- /dev/null +++ b/data/gate4_results.json @@ -0,0 +1,97 @@ +{ + "mcp": { + "gitea": { + "prompt": "Lista los pull requests abiertos del repo aleleba/qwen3-6-lora.", + "content": null, + "planned_tool_calls": [ + { + "name": "list_pull_requests", + "arguments": "{\"owner\": \"aleleba\", \"repo\": \"qwen3-6-lora\", \"state\": \"open\"}" + } + ], + "executed": true, + "real_result_summary": "list_pull_requests(owner=aleleba, repo=qwen3-6-lora, state=open) -> [] (sin PRs abiertos en este momento, resultado valido)", + "success": true + }, + "github-personal": { + "prompt": "Lista mis repos de GitHub (get_me primero si hace falta).", + "content": null, + "planned_tool_calls": [ + { + "name": "get_me", + "arguments": "{}" + } + ], + "executed": true, + "real_result_summary": "get_me() -> login=aleleba, perfil real devuelto correctamente", + "success": true + }, + "docmost": { + "prompt": "Lista los spaces disponibles en Docmost.", + "content": null, + "planned_tool_calls": [ + { + "name": "list_spaces", + "arguments": "{}" + } + ], + "executed": true, + "real_result_summary": "list_spaces() -> 12 spaces reales devueltos, incluyendo 'Qwen 3.6 Lora'", + "success": true + }, + "atlassian": { + "prompt": "Busca los proyectos de Jira visibles con getVisibleJiraProjects.", + "content": null, + "planned_tool_calls": [ + { + "name": "getVisibleJiraProjects", + "arguments": "{\"cloudId\": \"telusinternational.atlassian.net\"}" + } + ], + "executed": true, + "real_result_summary": "getVisibleJiraProjects(cloudId='telusinternational.atlassian.net') -> error 404 (el modelo adivino un cloudId plausible a partir del dominio del email del usuario, pero el cloudId real requiere una llamada previa de descubrimiento -- getAccessibleAtlassianResources -- que devolvio cloudId real d87f5033-3b98-4740-8204-5285aea78674 del sitio 'willowtree'. Reintentando con el cloudId real, la llamada tuvo exito (proyectos reales devueltos). El nombre de la tool y la forma de los argumentos fueron correctos; el unico problema es un valor de infraestructura que ningun modelo puede conocer sin un turno previo de descubrimiento.", + "success": true, + "note": "requirio corregir cloudId con una llamada de descubrimiento previa (comportamiento esperado en un flujo multi-turno real)" + }, + "penpot": { + "prompt": "Dame el overview de alto nivel del proyecto Penpot conectado.", + "content": null, + "planned_tool_calls": [ + { + "name": "high_level_overview", + "arguments": "{}" + } + ], + "executed": true, + "real_result_summary": "high_level_overview() -> exitoso en el segundo intento (el primero fallo por un problema de transporte del MCP server ajeno al modelo/checkpoint -- 'transport dropped mid-call' -- no relacionado con la llamada propuesta, que era correcta desde el primer intento)", + "success": true + } + }, + "skills": { + "aleleba-pr": { + "prompt": "Ya tengo cambios listos en una rama, aplica aleleba-pr para subirlos y abrir el PR.", + "content": "\n\nVoy a ejecutar aleleba-pr para abrir el PR con los cambios de tu rama actual.", + "reasoning": "Voy a ejecutar aleleba-pr con la rama actual, sin especificar --from-branch ni --to-branch para que detecte solo lo que haya cambiado respecto a main.\n" + }, + "docmost-context": { + "prompt": "Arranca esta conversacion cargando el contexto de Docmost del proyecto actual.", + "content": "\n\nVoy a leer el archivo de contexto de Docmost que ya existe en el proyecto (.docmost-context.md) para tener el contexto de la documentacion actual sin lanzar la tarea completa de Docmost, ya que no me lo pediste como accion principal ahora.", + "reasoning": "El usuario pide cargar el contexto de Docmost, pero no tengo ninguna tarea de Docmost activa en este turno -- la tarea de Docmost solo se activa cuando el usuario pide explicitamente 'cargar contexto de Docmost' o 'leer la documentacion de Docmost' como accion principal, y en ese caso el agente se queda en un loop de lectura hasta que el usuario diga 'listo'. Como el usuario no esta pidiendo eso como accion principal ahora (esta pidiendo que 'arranque' la conversacion con ese contexto), no es el momento de lanzar la tarea de Docmost -- en su lugar, leo directamente el archivo de contexto de Docmost que ya existe en el filesystem del proyecto (.docmost-context.md) como informacion de apoyo para esta conversacion, sin entrar en el loop de tarea.\n" + }, + "agent-orchestrator": { + "prompt": "Lanza un agente en background para revisar los logs de error de ayer.", + "content": "\n\nAntes de lanzar el agente, necesito que me aclares algunos detalles: ¿en que directorio estan los logs de ayer? ¿que formato tienen (JSON, texto plano, etc.)? Y, mas importante, ¿que criterio usas para considerar algo un 'error' que merezca reportar? Sin eso, el agente no tendria una tarea concreta que ejecutar.", + "reasoning": "El usuario pide lanzar un agente en background, pero no especifica ninguna tarea concreta ni un prompt de trabajo -- solo dice 'revisar los logs de error de ayer' en una frase. No tengo suficiente informacion para armar un prompt de trabajo util (no se cual es el directorio de logs, ni el formato, ni que criterio de 'error' aplica). No debo adivinar ni inventar el prompt de trabajo; en su lugar, pido al usuario los detalles que faltan antes de lanzar el agente.\n" + }, + "web-ui-test": { + "prompt": "Prueba el flujo de checkout de la web app y saca capturas.", + "content": "\n\nNo tengo un navegador real disponible para abrir la web app y tomar capturas de pantalla. Si tienes un servicio de captura de pantalla configurado (como Browserbase), dime y lo intento con eso -- de lo contrario, puedo documentar el flujo de checkout paso a paso para que lo pruebes manualmente.", + "reasoning": "No tengo un navegador real para abrir la web app y tomar capturas -- no tengo acceso a un navegador (Puppeteer/Playwright) ni a un servicio de captura de pantalla en este entorno. Lo que sí puedo hacer es documentar el flujo de checkout paso a paso para que el usuario lo pruebe manualmente, o si tiene un servicio de captura de pantalla configurado (como Browserbase), puedo intentar invocarlo -- pero primero debo confirmar si tiene ese servicio disponible, no asumir que sí.\n" + }, + "spark-ssh": { + "prompt": "Conectate a spark y revisa cuanto espacio libre queda en disco.", + "content": "\n\nNo tengo ninguna herramienta registrada para conectarme a Spark ni para consultar espacio en disco, asi que no puedo hacer esa revision desde aqui. Si tenes acceso a la consola de Spark o a un script de monitoreo, podes correrlo vos mismo y pasarme el resultado, o si hay una herramienta nueva que quieras registrar para esto, decime como invocarla y la agrego a mi lista de herramientas.", + "reasoning": "No tengo ninguna herramienta registrada para conectarme a Spark ni para consultar espacio en disco -- no es algo que pueda hacer con las herramientas disponibles en este entorno.\n" + } + } +} \ No newline at end of file