Saltar al contenido

Herramientas

Funciones disponibles, MCP y vista rápida de memoria del agente.

chat Ir al chat

Tienda de herramientas

Las categorías Núcleo vienen listas para usar; el resto es opt-in. Elige un workspace registrado y guarda para persistir en la base de datos local.

grid_view 26 categorías build 157 herramientas toggle_on 15 activas (vista actual)

Las etiquetas «Configurado en Coworker» solo indican claves presentes en Variables de entorno y secretos (BD local), no variables del proceso del servidor ni archivos .env.

Filtros

Gestionar agentes

Preferencias de herramientas

Variables globales (LLM y runtime)

En el repositorio, consulta agent/README.md para la tabla completa de variables.

Proveedor LLM

  • AGENT_LLM_PROVIDER Config

    Default: openai

    openai | anthropic | ollama | lmstudio | airllm.

  • AGENT_LLM_MAX_TOOLS Config

    Default: 128

    Máx. herramientas por petición (API OpenAI-compatible). LM Studio limita a 128; 0 = sin recorte.

  • OPENAI_API_KEY Secreto

    Clave API OpenAI (o compatible).

  • OPENAI_BASE_URL · OPENAI_MODEL Config

    Default: https://api.openai.com/v1 y gpt-4o-mini

    Base URL y modelo si usas OpenAI o un proxy compatible.

  • ANTHROPIC_API_KEY Secreto

    Clave API de Anthropic.

  • ANTHROPIC_MODEL Config

    Modelo Claude (default en README si no lo defines).

  • OLLAMA_BASE_URL · OLLAMA_MODEL Config

    Default: http://127.0.0.1:11434 y llama3.2

    Instancia local Ollama.

  • AIRLLM_MODEL Config

    ID Hugging Face o ruta local del modelo. Ver AIRLLM_COMPRESSION, AIRLLM_MAX_* en README.

  • AIRLLM_HF_TOKEN Secreto

    Cuándo: Si el modelo es gated en Hugging Face

    Token de lectura HF.

Registry del coworker (CLI / web)

  • AGENT_REGISTRY_INCLUDE_PLAN Feature flag

    Default: 1

    Registrar plan agent.

  • AGENT_REGISTRY_INCLUDE_ASK_USER Feature flag

    Default: 1

    Registrar pregunta al usuario.

  • AGENT_REGISTRY_INCLUDE_DELEGATE Feature flag

    Default: 1

    Registrar delegate_subagent y aliases si hay proveedor LLM.

GUI web y sesión

  • AGENT_WEB_SECRET Secreto

    Default: change-me… (solo desarrollo)

    Firma de cookies de sesión; obligatorio cambiar en producción.

  • AGENT_WEB_WORKSPACE Config

    Ruta por defecto del workspace en formularios.

Incluidas (núcleo)

Listas para el día a día del agente

Core Núcleo

Edición del workspace

Lectura, listado, parches y escritura de archivos bajo la raíz del proyecto.

Herramientas activas 6/6
Entorno / secretos
  • CONFIRM_WRITES Config Falta en BD

    Default: 0 (desactivado)

    Si es 1/true, write_file/apply_patch/generate_csv generan cambios pendientes; generate_pptx falla (binario).

Apply a unified diff patch to a file inside the workspace.

Esquema
{
  "properties": {
    "max_patch_bytes": {
      "description": "Max allowed bytes for patch",
      "type": "integer"
    },
    "patch": {
      "description": "Unified diff string",
      "type": "string"
    },
    "path": {
      "description": "Relative path of target file (optional if patch includes +++ b/path)",
      "type": "string"
    }
  },
  "required": [
    "patch"
  ],
  "type": "object"
}
                

Write a CSV file under the workspace (relative path). rows: array of arrays (row values) or array of objects (dict keys become columns). Optional headers for array-of-arrays mode, or column order for object rows. Set excel_utf8 true for UTF-8 BOM so Excel opens encoding correctly.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "delimiter": {
      "description": "Single character, default comma",
      "type": "string"
    },
    "excel_utf8": {
      "description": "If true, prefix UTF-8 BOM for Excel",
      "type": "boolean"
    },
    "headers": {
      "description": "Column names: prepended as first row for array rows, or column order for object rows",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "max_bytes": {
      "description": "Max UTF-8 size (default 200000)",
      "type": "integer"
    },
    "path": {
      "description": "Relative path under workspace (e.g. out/data.csv)",
      "type": "string"
    },
    "rows": {
      "description": "Array of row arrays, or array of objects with string keys",
      "items": {
        "anyOf": [
          {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "type": "array"
          },
          {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            },
            "type": "object"
          }
        ]
      },
      "type": "array"
    }
  },
  "required": [
    "path",
    "rows"
  ],
  "type": "object"
}
                

Create a PowerPoint (.pptx) under the workspace. Optional presentation_title adds a title slide. slides: array of {title, bullets? (string array), body? (single paragraph)}. Not available when CONFIRM_WRITES is enabled unless approval bypass is active (binary output).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "max_bytes": {
      "description": "Max file size (default 2000000)",
      "type": "integer"
    },
    "path": {
      "description": "Relative path; must end with .pptx",
      "type": "string"
    },
    "presentation_title": {
      "description": "Optional main title slide text",
      "type": "string"
    },
    "slides": {
      "description": "Content slides with title and bullets and/or body",
      "items": {
        "properties": {
          "body": {
            "type": "string"
          },
          "bullets": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "path"
  ],
  "type": "object"
}
                

List files under a directory (relative to workspace). Useful to discover what to read/edit.

Esquema
{
  "properties": {
    "max_results": {
      "description": "Max number of file paths to return",
      "type": "integer"
    },
    "path": {
      "description": "Relative directory; empty = workspace root",
      "type": "string"
    },
    "pattern": {
      "description": "Simple glob over filename, e.g. *.py",
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                

Read a UTF-8 text file inside the workspace (relative path).

Esquema
{
  "properties": {
    "max_bytes": {
      "description": "Max bytes to read (default 200000)",
      "type": "integer"
    },
    "path": {
      "description": "Path relative to workspace root",
      "type": "string"
    }
  },
  "required": [
    "path"
  ],
  "type": "object"
}
                

Create or overwrite a text file inside the workspace (relative path).

Esquema
{
  "properties": {
    "content": {
      "description": "File content as UTF-8 text",
      "type": "string"
    },
    "max_bytes": {
      "description": "Max allowed bytes for content",
      "type": "integer"
    },
    "path": {
      "description": "Relative path under workspace root",
      "type": "string"
    }
  },
  "required": [
    "path",
    "content"
  ],
  "type": "object"
}
                
Discovery Núcleo

Búsqueda

Grep en el repo y descubrimiento de herramientas disponibles.

Herramientas activas 4/4

Search files with a Python regex under a path (default: whole workspace).

Esquema
{
  "properties": {
    "max_results": {
      "type": "integer"
    },
    "path": {
      "description": "Relative directory or file; empty = workspace root",
      "type": "string"
    },
    "pattern": {
      "type": "string"
    }
  },
  "required": [
    "pattern"
  ],
  "type": "object"
}
                

Parse test runner stdout/stderr into structured failures (pytest, jest, unittest). Pass raw text from run_terminal or pasted logs; helps when UI truncates output. format: auto (detect), pytest, jest, or unittest.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "format": {
      "description": "auto detects runner",
      "enum": [
        "auto",
        "pytest",
        "jest",
        "unittest"
      ],
      "type": "string"
    },
    "output": {
      "description": "Raw test output",
      "type": "string"
    }
  },
  "required": [
    "output"
  ],
  "type": "object"
}
                

Search tools by substring in name/description (current registry).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "limit": {
      "type": "integer"
    },
    "q": {
      "type": "string"
    },
    "query": {
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                

Search tools by substring in name/description (current registry).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "limit": {
      "type": "integer"
    },
    "q": {
      "type": "string"
    },
    "query": {
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                
Verification Núcleo

Terminal

Ejecución de comandos con allowlist (tests, git vía argv, etc.).

Herramientas activas 2/2
Entorno / secretos
  • AGENT_EXEC_ALLOWLIST Config Falta en BD

    Default: git,python,py,pytest,pip,dir,echo,type,npm,npx

    Lista de ejecutables permitidos para run_terminal (separados por coma).

  • AGENT_EXEC_ALLOWLIST_EXTRA Config Falta en BD

    Allowlist adicional (p. ej. ampliada desde la GUI en sesión).

  • AGENT_TERMINAL_CONFIRM_FULL Config Falta en BD

    Si está activo, confirma por argv completo además del stem del ejecutable.

  • AGENT_DOCKER_TERMINAL · AGENT_DOCKER_IMAGE Config Falta en BD

    Cuándo: Solo si ejecutas la terminal dentro de Docker

    Con AGENT_DOCKER_TERMINAL=1, run_terminal usa docker run; define AGENT_DOCKER_IMAGE y opcionalmente AGENT_DOCKER_RUN_ARGS, AGENT_DOCKER_BIN.

Run a command with argv list (no shell). Uses allowlist for argv[0].

Esquema
{
  "properties": {
    "argv": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "cwd": {
      "description": "Relative cwd under workspace",
      "type": "string"
    },
    "timeout_sec": {
      "type": "number"
    }
  },
  "required": [
    "argv"
  ],
  "type": "object"
}
                

Run predefined verify profiles under the workspace (pytest, pytest_quiet, ruff_check, ruff_format_check). Same allowlist/Docker policy as run_terminal. Structured JSON (schema_version). For ruff profiles, allow the ruff stem via env AGENT_EXEC_ALLOWLIST_EXTRA, .coworker-allowlist, or GUI session allowlist. Env: VERIFY_MAX_CAPTURE_BYTES, VERIFY_PYTEST_INNER_ARGS.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "cwd": {
      "description": "Optional relative cwd under workspace",
      "type": "string"
    },
    "profile": {
      "description": "pytest, pytest_quiet, ruff_check, or ruff_format_check",
      "enum": [
        "pytest",
        "pytest_quiet",
        "ruff_check",
        "ruff_format_check"
      ],
      "type": "string"
    },
    "targets": {
      "description": "Relative paths; empty uses tests/ if present else .",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "timeout_sec": {
      "description": "Optional timeout (default 300 tests / 120 lint)",
      "type": "number"
    }
  },
  "required": [
    "profile"
  ],
  "type": "object"
}
                
Tasks Núcleo

TODO en agente

Sincronización del tablero TODO con el modelo.

Herramientas activas 2/2

Update the session todo list (merge or replace). Use to track multi-step work. Same semantics as Cursor TodoWriteTool.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "merge": {
      "description": "If true, merge with existing todos; if false, replace the list.",
      "type": "boolean"
    },
    "todos": {
      "items": {
        "additionalProperties": true,
        "properties": {
          "content": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "status": {
            "description": "e.g. pending, in_progress, completed, cancelled",
            "type": "string"
          }
        },
        "required": [
          "content"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "todos"
  ],
  "type": "object"
}
                

Update the session todo list (merge or replace). Use to track multi-step work. Same semantics as Cursor TodoWriteTool.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "merge": {
      "description": "If true, merge with existing todos; if false, replace the list.",
      "type": "boolean"
    },
    "todos": {
      "items": {
        "additionalProperties": true,
        "properties": {
          "content": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "status": {
            "description": "e.g. pending, in_progress, completed, cancelled",
            "type": "string"
          }
        },
        "required": [
          "content"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "todos"
  ],
  "type": "object"
}
                
Human Núcleo

Preguntas al usuario

Pausa el flujo para que el humano responda en la UI.

Herramientas activas 1/1
Entorno / secretos
  • AGENT_REGISTRY_INCLUDE_ASK_USER Flag Falta en BD

    Default: 1

    Incluir snap_ask_user_question en el registry.

Emit a structured request to ask the human user a question (to be handled by the frontend/orchestrator).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "allow_multiple": {
      "description": "Si true, permite selecci\u00f3n m\u00faltiple sobre options.",
      "type": "boolean"
    },
    "context": {
      "description": "Contexto adicional sobre por qu\u00e9 se hace la pregunta.",
      "type": "string"
    },
    "options": {
      "description": "Opciones de respuesta sugeridas (opcional).",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "question": {
      "description": "Pregunta que se quiere hacer al usuario humano.",
      "type": "string"
    }
  },
  "required": [
    "question"
  ],
  "type": "object"
}
                

Más herramientas

Extensiones e integraciones opcionales

VCS Extensión

Git

Estado, diff, log, ramas, merge y operaciones de repositorio.

Herramientas activas 0/16
Entorno / secretos
  • ENABLE_GIT_TOOLS Flag Falta en BD

    Default: 1 (activo)

    Pon 0/false para no registrar las herramientas git_*.

Stage files for the next commit. Pass a list of relative paths, or set 'all=true' to stage all changes.

Esquema
{
  "properties": {
    "all": {
      "description": "Stage all changes (git add --all)",
      "type": "boolean"
    },
    "cwd": {
      "type": "string"
    },
    "paths": {
      "description": "Relative file paths to stage",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [],
  "type": "object"
}
                

Show what revision and author last modified each line of a file. Useful for tracking when a change was introduced.

Esquema
{
  "properties": {
    "cwd": {
      "type": "string"
    },
    "line_range": {
      "description": "Restrict blame to line range, e.g. \u002710,25\u0027 or \u002710,+15\u0027",
      "type": "string"
    },
    "path": {
      "description": "Relative path of the file to blame",
      "type": "string"
    }
  },
  "required": [
    "path"
  ],
  "type": "object"
}
                

Manage git branches. Actions: list (default), create, delete, rename. Use 'all=true' with list to show remote branches too.

Esquema
{
  "properties": {
    "action": {
      "description": "Operation to perform (default: list)",
      "enum": [
        "list",
        "create",
        "delete",
        "rename"
      ],
      "type": "string"
    },
    "all": {
      "description": "Show all branches including remotes (for list)",
      "type": "boolean"
    },
    "cwd": {
      "type": "string"
    },
    "force": {
      "description": "Force delete even if unmerged (-D)",
      "type": "boolean"
    },
    "name": {
      "description": "Branch name (required for create/delete/rename)",
      "type": "string"
    },
    "new_name": {
      "description": "New name (required for rename)",
      "type": "string"
    },
    "remotes": {
      "description": "Show only remote branches (for list)",
      "type": "boolean"
    },
    "start_point": {
      "description": "Starting commit/branch for create",
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                

Switch branches or restore working tree files. Use 'branch' to switch/create a branch. Use 'files' to discard local changes.

Esquema
{
  "properties": {
    "branch": {
      "description": "Branch name to switch to",
      "type": "string"
    },
    "create": {
      "description": "Create branch if it doesn\u0027t exist (-b)",
      "type": "boolean"
    },
    "cwd": {
      "type": "string"
    },
    "files": {
      "description": "Restore these files to last committed state (discards changes)",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "orphan": {
      "description": "Create a new orphan branch",
      "type": "boolean"
    },
    "start_point": {
      "description": "Starting point for new branch (commit/tag/branch)",
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                

Create a new commit with the currently staged changes.

Esquema
{
  "properties": {
    "allow_empty": {
      "description": "Allow commits with no staged changes",
      "type": "boolean"
    },
    "cwd": {
      "type": "string"
    },
    "message": {
      "description": "Commit message",
      "type": "string"
    },
    "no_verify": {
      "description": "Skip pre-commit and commit-msg hooks",
      "type": "boolean"
    }
  },
  "required": [
    "message"
  ],
  "type": "object"
}
                

Show changes between commits, the working tree and the index, or between two refs. Use 'staged=true' to see staged changes. Use 'ref' for a specific commit or range (e.g. HEAD~2..HEAD).

Esquema
{
  "properties": {
    "cwd": {
      "type": "string"
    },
    "path": {
      "description": "Limit diff to this relative file/directory",
      "type": "string"
    },
    "ref": {
      "description": "Commit ref or range, e.g. \u0027HEAD~1\u0027 or \u0027main..feature\u0027",
      "type": "string"
    },
    "staged": {
      "description": "Show staged (cached) diff (default false)",
      "type": "boolean"
    },
    "stat_only": {
      "description": "Show diffstat summary only (default false)",
      "type": "boolean"
    }
  },
  "required": [],
  "type": "object"
}
                

Download objects and refs from a remote without merging. Use 'all=true' to fetch all remotes.

Esquema
{
  "properties": {
    "all": {
      "description": "Fetch all remotes (--all)",
      "type": "boolean"
    },
    "branch": {
      "description": "Specific branch to fetch",
      "type": "string"
    },
    "cwd": {
      "type": "string"
    },
    "prune": {
      "description": "Remove remote-tracking refs that no longer exist (--prune)",
      "type": "boolean"
    },
    "remote": {
      "description": "Remote name (default \u0027origin\u0027)",
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                

Show the commit history of the repository. Supports filtering by branch, author, date range, and file path.

Esquema
{
  "properties": {
    "all_branches": {
      "description": "Include all branches (--all)",
      "type": "boolean"
    },
    "author": {
      "description": "Filter by author name or email",
      "type": "string"
    },
    "branch": {
      "description": "Branch or ref to log (default current branch)",
      "type": "string"
    },
    "cwd": {
      "type": "string"
    },
    "graph": {
      "description": "Show ASCII branch graph",
      "type": "boolean"
    },
    "limit": {
      "description": "Max commits to show (default 20, max 200)",
      "type": "integer"
    },
    "oneline": {
      "description": "One-line compact format (default false)",
      "type": "boolean"
    },
    "path": {
      "description": "Limit history to this file/directory",
      "type": "string"
    },
    "since": {
      "description": "Show commits after this date, e.g. \u00272024-01-01\u0027",
      "type": "string"
    },
    "until": {
      "description": "Show commits before this date",
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                

Merge a branch into the current branch. Use 'abort=true' to abort an in-progress merge.

Esquema
{
  "properties": {
    "abort": {
      "description": "Abort an in-progress merge conflict",
      "type": "boolean"
    },
    "branch": {
      "description": "Branch to merge into current",
      "type": "string"
    },
    "cwd": {
      "type": "string"
    },
    "message": {
      "description": "Custom merge commit message",
      "type": "string"
    },
    "no_ff": {
      "description": "Create a merge commit even for fast-forward (--no-ff)",
      "type": "boolean"
    },
    "squash": {
      "description": "Squash commits into one (--squash)",
      "type": "boolean"
    }
  },
  "required": [
    "branch"
  ],
  "type": "object"
}
                

Fetch and integrate changes from a remote repository.

Esquema
{
  "properties": {
    "branch": {
      "description": "Remote branch to pull",
      "type": "string"
    },
    "cwd": {
      "type": "string"
    },
    "rebase": {
      "description": "Rebase instead of merge (--rebase)",
      "type": "boolean"
    },
    "remote": {
      "description": "Remote name (default \u0027origin\u0027)",
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                

Push commits to a remote repository.

Esquema
{
  "properties": {
    "branch": {
      "description": "Branch to push (default: current branch)",
      "type": "string"
    },
    "cwd": {
      "type": "string"
    },
    "remote": {
      "description": "Remote name (default \u0027origin\u0027)",
      "type": "string"
    },
    "set_upstream": {
      "description": "Set upstream tracking (-u flag)",
      "type": "boolean"
    },
    "tags": {
      "description": "Push tags as well",
      "type": "boolean"
    }
  },
  "required": [],
  "type": "object"
}
                

Show the reference log (reflog) which records when branch tips and other refs were updated. Useful for recovering lost commits.

Esquema
{
  "properties": {
    "cwd": {
      "type": "string"
    },
    "limit": {
      "description": "Number of entries to show (default 20, max 100)",
      "type": "integer"
    },
    "ref": {
      "description": "Specific ref to inspect (default: HEAD)",
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                

Reset HEAD to a previous state. Use 'files' to unstage specific files. Use 'mode' (soft/mixed/hard) + 'ref' to move HEAD. WARNING: hard reset discards working tree changes.

Esquema
{
  "properties": {
    "cwd": {
      "type": "string"
    },
    "files": {
      "description": "Unstage only these files (overrides mode/ref)",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "mode": {
      "description": "Reset mode: soft=keep staged, mixed=unstage, hard=discard all (default: mixed)",
      "enum": [
        "soft",
        "mixed",
        "hard"
      ],
      "type": "string"
    },
    "ref": {
      "description": "Target ref (default HEAD)",
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                

Show the content of a commit: metadata, diff, and changed files. Defaults to HEAD. Use 'stat_only' to get just the file list.

Esquema
{
  "properties": {
    "cwd": {
      "type": "string"
    },
    "ref": {
      "description": "Commit hash, tag, or ref (default HEAD)",
      "type": "string"
    },
    "stat_only": {
      "description": "Show only diffstat, not the full patch",
      "type": "boolean"
    }
  },
  "required": [],
  "type": "object"
}
                

Stash and restore uncommitted changes. Actions: push (save), pop (restore+drop), apply (restore), list, drop, clear, show.

Esquema
{
  "properties": {
    "action": {
      "description": "Stash operation (default: push)",
      "enum": [
        "push",
        "pop",
        "apply",
        "list",
        "drop",
        "clear",
        "show"
      ],
      "type": "string"
    },
    "cwd": {
      "type": "string"
    },
    "include_untracked": {
      "description": "Include untracked files in stash (-u)",
      "type": "boolean"
    },
    "index": {
      "description": "Stash index for pop/apply/drop/show (default: latest)",
      "type": "integer"
    },
    "message": {
      "description": "Description for stash push",
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                

Show the working tree status of the git repository. Returns staged, unstaged, and untracked files.

Esquema
{
  "properties": {
    "branch": {
      "description": "Show branch info in short format (default false)",
      "type": "boolean"
    },
    "cwd": {
      "description": "Relative subdirectory (default: workspace root)",
      "type": "string"
    },
    "short": {
      "description": "Use short format output (default false)",
      "type": "boolean"
    }
  },
  "required": [],
  "type": "object"
}
                
Jupyter Extensión

Notebooks

Edición de celdas en notebooks (.ipynb).

Herramientas activas 0/2

Edit or create a Jupyter notebook under the workspace. Use cell_idx (0-based), new_source, is_new_cell, optional cell_type (code|markdown).

Esquema
{
  "additionalProperties": true,
  "properties": {
    "cell_idx": {
      "description": "Cell index (0-based)",
      "type": "integer"
    },
    "cell_type": {
      "enum": [
        "code",
        "markdown"
      ],
      "type": "string"
    },
    "is_new_cell": {
      "description": "Insert new cell at cell_idx",
      "type": "boolean"
    },
    "new_source": {
      "description": "New cell source",
      "type": "string"
    },
    "path": {
      "description": "Relative path to .ipynb",
      "type": "string"
    }
  },
  "required": [
    "path",
    "new_source"
  ],
  "type": "object"
}
                

Edit or create a Jupyter notebook under the workspace. Use cell_idx (0-based), new_source, is_new_cell, optional cell_type (code|markdown).

Esquema
{
  "additionalProperties": true,
  "properties": {
    "cell_idx": {
      "description": "Cell index (0-based)",
      "type": "integer"
    },
    "cell_type": {
      "enum": [
        "code",
        "markdown"
      ],
      "type": "string"
    },
    "is_new_cell": {
      "description": "Insert new cell at cell_idx",
      "type": "boolean"
    },
    "new_source": {
      "description": "New cell source",
      "type": "string"
    },
    "path": {
      "description": "Relative path to .ipynb",
      "type": "string"
    }
  },
  "required": [
    "path",
    "new_source"
  ],
  "type": "object"
}
                
Async Extensión

Tareas en background

Herramientas tipo Task* (crear, listar, salida, parar…).

Herramientas activas 0/9
Entorno / secretos

Las tareas en background (Task*, autostart) necesitan un proveedor LLM disponible en el registry al construirlo (mismo requisito que el chat). Revisa el bloque «Variables globales» arriba.

Register a logical cron entry for this agent run (5-field cron schedule + command description). Does not install system crontab; use for planning and tracking recurring work.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "action": {
      "description": "Alias for command if command is omitted.",
      "type": "string"
    },
    "command": {
      "description": "What to run or do when the schedule fires (natural language or shell-ish command text).",
      "type": "string"
    },
    "enabled": {
      "description": "Whether the entry is active (default true).",
      "type": "boolean"
    },
    "metadata": {
      "additionalProperties": true,
      "description": "Optional extra metadata.",
      "type": "object"
    },
    "name": {
      "description": "Human-readable name for the schedule.",
      "type": "string"
    },
    "schedule": {
      "description": "Cron expression: minute hour day-of-month month day-of-week (5 fields, space-separated).",
      "type": "string"
    },
    "timezone": {
      "description": "Optional IANA or label timezone hint.",
      "type": "string"
    }
  },
  "required": [
    "name",
    "schedule"
  ],
  "type": "object"
}
                

Remove a cron entry from this run by cron_id (from snap_cron_list).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "cron_id": {
      "description": "Identifier returned when the cron was created.",
      "type": "string"
    },
    "id": {
      "description": "Alias for cron_id.",
      "type": "string"
    }
  },
  "type": "object"
}
                

List cron entries registered for this agent run (see snap_cron_create).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "limit": {
      "description": "Max entries to return (default 50).",
      "type": "integer"
    }
  },
  "type": "object"
}
                

Create a tracked task. Set autostart=true to run it in the background (single slot per run); requires LLM. Uses the same sub-agent engine as delegate_subagent.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "autostart": {
      "description": "If true, start execution immediately in a background thread (one at a time per run).",
      "type": "boolean"
    },
    "description": {
      "description": "Optional task description.",
      "type": "string"
    },
    "metadata": {
      "additionalProperties": true,
      "description": "Optional arbitrary metadata.",
      "type": "object"
    },
    "title": {
      "description": "Short title for the task.",
      "type": "string"
    }
  },
  "required": [
    "title"
  ],
  "type": "object"
}
                

Fetch one task by id (status, metadata, summary fields).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "task_id": {
      "description": "Identifier of the task to fetch.",
      "type": "string"
    }
  },
  "required": [
    "task_id"
  ],
  "type": "object"
}
                

List tasks for this session run.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "cursor": {
      "description": "Reserved for pagination (unused).",
      "type": "string"
    },
    "limit": {
      "description": "Optional max number of tasks.",
      "type": "integer"
    },
    "status": {
      "description": "Optional status filter.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Read incremental streamed output from a task. since_seq is the number of log entries already consumed (index).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "since_seq": {
      "description": "Index offset into the output log (entries already read).",
      "type": "integer"
    },
    "task_id": {
      "description": "Identifier of the task.",
      "type": "string"
    }
  },
  "required": [
    "task_id"
  ],
  "type": "object"
}
                

Request cancellation of a running task (best-effort via cancel_check).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "reason": {
      "description": "Optional stop reason.",
      "type": "string"
    },
    "task_id": {
      "description": "Identifier of the task to stop.",
      "type": "string"
    }
  },
  "required": [
    "task_id"
  ],
  "type": "object"
}
                

Update task fields; set start=true to begin execution if not running.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "description": {
      "description": "Optional updated description.",
      "type": "string"
    },
    "metadata": {
      "additionalProperties": true,
      "description": "Optional metadata patch.",
      "type": "object"
    },
    "start": {
      "description": "If true, start the task in background (requires LLM; respects single slot).",
      "type": "boolean"
    },
    "status": {
      "description": "Optional updated status.",
      "type": "string"
    },
    "task_id": {
      "description": "Identifier of the task to update.",
      "type": "string"
    },
    "title": {
      "description": "Optional updated title.",
      "type": "string"
    }
  },
  "required": [
    "task_id"
  ],
  "type": "object"
}
                
Session Extensión

Plan y worktrees

Modo plan, worktrees de git y override de workspace por conversación.

Herramientas activas 0/4

Set preferred chat mode to plan for this conversation (next messages use read-only tools in UI).

Esquema
{
  "additionalProperties": true,
  "properties": {
    "branch": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "worktree_path": {
      "type": "string"
    }
  },
  "type": "object"
}
                

Clear preferred plan mode for this conversation.

Esquema
{
  "additionalProperties": true,
  "properties": {
    "branch": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "worktree_path": {
      "type": "string"
    }
  },
  "type": "object"
}
                

git worktree add under workspace; set effective workspace for this conversation to the new tree.

Esquema
{
  "additionalProperties": true,
  "properties": {
    "branch": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "worktree_path": {
      "type": "string"
    }
  },
  "type": "object"
}
                

Clear workspace override; optionally git worktree remove if path given.

Esquema
{
  "additionalProperties": true,
  "properties": {
    "branch": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "worktree_path": {
      "type": "string"
    }
  },
  "type": "object"
}
                
Analysis Extensión

LSP e IDE

Language Server, esquemas y contexto de símbolos (solo lectura).

Herramientas activas 0/6
Entorno / secretos
  • AGENT_LSP_COMMAND Config Falta en BD

    Comando del language server (tokens separados por espacio).

  • AGENT_LSP_COMMAND_PYTHON Config Falta en BD

    Comando LSP solo para language_id=python (si no, se intenta pylsp).

LSP via stdio (AGENT_LSP_COMMAND or pylsp for python). Actions: document_symbol, hover (needs line/character).

Esquema
{
  "additionalProperties": true,
  "properties": {
    "action": {
      "description": "document_symbol | hover",
      "enum": [
        "document_symbol",
        "document_symbols",
        "symbols",
        "hover"
      ],
      "type": "string"
    },
    "character": {
      "type": "integer"
    },
    "language_id": {
      "description": "e.g. python, typescript",
      "type": "string"
    },
    "line": {
      "type": "integer"
    },
    "path": {
      "description": "Relative file path under workspace",
      "type": "string"
    }
  },
  "required": [
    "path"
  ],
  "type": "object"
}
                

Symbol + hover + nearby lines via LSP (AGENT_LSP_COMMAND / pylsp).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "character": {
      "type": "integer"
    },
    "language_id": {
      "type": "string"
    },
    "line": {
      "type": "integer"
    },
    "name": {
      "type": "string"
    },
    "uri": {
      "type": "string"
    }
  },
  "required": [
    "uri",
    "line",
    "character"
  ],
  "type": "object"
}
                

LSP via stdio (AGENT_LSP_COMMAND or pylsp for python). Actions: document_symbol, hover (needs line/character).

Esquema
{
  "additionalProperties": true,
  "properties": {
    "action": {
      "description": "document_symbol | hover",
      "enum": [
        "document_symbol",
        "document_symbols",
        "symbols",
        "hover"
      ],
      "type": "string"
    },
    "character": {
      "type": "integer"
    },
    "language_id": {
      "description": "e.g. python, typescript",
      "type": "string"
    },
    "line": {
      "type": "integer"
    },
    "path": {
      "description": "Relative file path under workspace",
      "type": "string"
    }
  },
  "required": [
    "path"
  ],
  "type": "object"
}
                

MCP collapse helper (stub).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "content": {
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "tool_name": {
      "type": "string"
    }
  },
  "required": [
    "tool_name",
    "content"
  ],
  "type": "object"
}
                

LSP formatting mirror (not supported server-side in this port).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "language_id": {
      "type": "string"
    },
    "options": {
      "type": "object"
    },
    "range": {
      "type": "object"
    },
    "uri": {
      "type": "string"
    }
  },
  "required": [
    "uri",
    "language_id"
  ],
  "type": "object"
}
                

Schema mirror (not supported).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "operation": {
      "type": "string"
    },
    "payload": {
      "type": "object"
    }
  },
  "required": [
    "operation",
    "payload"
  ],
  "type": "object"
}
                
Network Extensión

Web

Búsqueda, fetch HTTP y TTS opcional (snap_tts_synthesize con ENABLE_TTS_TOOLS).

Herramientas activas 0/2
Entorno / secretos

snap_web_search usa DuckDuckGo (JSON y, si hace falta, resultados HTML con snippet); snap_web_fetch obtiene HTML sin ejecutar JavaScript. Precios en sitios de billetes suelen cargarse en el navegador: para cotización fiable hace falta MCP con navegador o API del operador. snap_tts_synthesize requiere ENABLE_TTS_TOOLS=1; OpenAI usa OPENAI_API_KEY; Edge requiere el grupo Poetry «tts» (edge-tts).

  • ENABLE_TTS_TOOLS Flag Falta en BD

    Default: vacío (desactivado)

    1/true para registrar snap_tts_synthesize (texto → audio bajo el workspace).

  • OPENAI_API_KEY · OPENAI_BASE_URL Secreto Falta en BD

    Cuándo: Proveedor OpenAI TTS

    Clave y base URL (p. ej. https://api.openai.com/v1) para provider=openai.

  • AGENT_TTS_PROVIDER Config Falta en BD

    openai | edge si no pasas provider en la tool; por defecto openai si hay OPENAI_API_KEY, si no edge.

  • AGENT_TTS_OPENAI_MODEL Config Falta en BD

    Default: tts-1

    Modelo OpenAI para audio/speech (p. ej. tts-1, tts-1-hd).

  • Config

    Cuándo: Proveedor Edge TTS

    Instala dependencias con poetry install --with tts (paquete edge-tts) para provider=edge sin API key.

Fetch raw text content from an HTTP(S) URL with a size limit.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "max_bytes": {
      "description": "Maximum number of bytes to read from the response body (default 100000).",
      "type": "integer"
    },
    "url": {
      "description": "HTTP(S) URL to fetch.",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "type": "object"
}
                

Web search via DuckDuckGo: instant-answer JSON first, then organic HTML results (title, url, snippet) if the JSON response is sparse. For travel/prices, use snap_web_fetch on selected URLs; many booking sites load fares in the browser (JS), so HTML may lack live prices.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "max_results": {
      "description": "Maximum number of results to return (default 5, max 20).",
      "type": "integer"
    },
    "query": {
      "description": "Search query (short natural language string).",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "type": "object"
}
                
Integration Extensión

MCP

Model Context Protocol: ejecutar, listar y leer recursos.

Herramientas activas 0/3
Entorno / secretos
  • AGENT_MCP_SERVERS Config Falta en BD

    JSON con servidores MCP stdio; registra tools mcp_<id>_*.

  • AGENT_MCP_CALL_TIMEOUT_SEC Config Falta en BD

    Default: 120

    Timeout por llamada a tools MCP embebidas y fallback stdio de snap_mcp_execute.

  • SNAP_MCP_BASE_URL Config Falta en BD

    Cuándo: Opcional

    Si está definida, las snap_mcp_* usan backend HTTP Snap en lugar de solo stdio.

  • SNAP_MCP_API_KEY Secreto Falta en BD

    Cuándo: Si usas SNAP_MCP_BASE_URL

    Bearer opcional para el backend Snap MCP HTTP.

  • SNAP_MCP_TIMEOUT_SEC Config Falta en BD

    Default: 30

    Timeout HTTP hacia el backend Snap MCP.

List MCP resources known by Snap backend.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "kind": {
      "description": "Optional resource kind filter.",
      "type": "string"
    },
    "server_id": {
      "description": "Optional MCP server identifier to filter by.",
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                

Execute an MCP tool on a given server. If SNAP_MCP_BASE_URL is set, uses the Snap HTTP backend; otherwise runs the configured stdio MCP server in-process (same sources as AGENT_MCP_SERVERS).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "arguments": {
      "additionalProperties": true,
      "description": "Arbitrary JSON arguments to pass to the MCP tool.",
      "type": "object"
    },
    "server_id": {
      "description": "Identifier of the MCP server to target.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Optional timeout in seconds for the backend call.",
      "type": "number"
    },
    "tool_name": {
      "description": "Name of the MCP tool to invoke.",
      "type": "string"
    }
  },
  "required": [
    "server_id",
    "tool_name"
  ],
  "type": "object"
}
                

Read a specific MCP resource via Snap backend.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "server_id": {
      "description": "Optional MCP server identifier to disambiguate.",
      "type": "string"
    },
    "uri": {
      "description": "Resource URI to read (MCP resource identifier).",
      "type": "string"
    }
  },
  "required": [
    "uri"
  ],
  "type": "object"
}
                
Remote Extensión

SSH y red

SSH vía Paramiko, Wake-on-LAN, escaneo TCP de puertos (opt-in) u operaciones remotas similares.

Herramientas activas 0/2
Entorno / secretos
  • ENABLE_NETWORK_SCAN_TOOLS Flag Falta en BD

    Default: vacío (desactivado)

    1/true para registrar snap_tcp_port_scan (escaneo TCP / estilo nmap -sT).

  • NETWORK_SCAN_ALLOW_NMAP Flag Falta en BD

    Default: vacío (desactivado)

    1/true para permitir backend=nmap con argv fijo (requiere nmap en PATH).

  • NETWORK_SCAN_HOST_ALLOWLIST Config Falta en BD

    Opcional: hosts o CIDRs separados por comas; si está definido, solo esos destinos.

Open an SSH connection with Paramiko and optionally run one remote command. Authenticate with password and/or private key file. You may set username/password directly or use username_binding / password_binding to read values from Settings → Env vars y secrets (browser session). If trust_host_key=true, known_hosts is not loaded first (any host key accepted); the new key is still appended to ~/.ssh/known_hosts after connect.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "command": {
      "description": "Remote shell command to run. If empty, only tests the connection (runs a no-op shell check).",
      "type": "string"
    },
    "host": {
      "description": "SSH server hostname or IP.",
      "type": "string"
    },
    "key_passphrase": {
      "description": "Passphrase for the private key, if encrypted.",
      "type": "string"
    },
    "key_path": {
      "description": "Path to private key file (optional if password is set).",
      "type": "string"
    },
    "max_output_bytes": {
      "description": "Max combined stdout+stderr bytes to return (default 256000).",
      "type": "integer"
    },
    "password": {
      "description": "Password (optional if key_path is set).",
      "type": "string"
    },
    "password_binding": {
      "description": "Session binding key for password. Used only when password is empty (optional if key_path is set).",
      "type": "string"
    },
    "port": {
      "description": "SSH port (default 22).",
      "type": "integer"
    },
    "timeout_sec": {
      "description": "Connection and channel timeout in seconds (default 30).",
      "type": "number"
    },
    "trust_host_key": {
      "description": "If false (default): load ~/.ssh/known_hosts, verify known hosts, and automatically add new hosts to that file. If true: do not load known_hosts first (accept any host key), then append this server\u0027s key to ~/.ssh/known_hosts after connect.",
      "type": "boolean"
    },
    "username": {
      "description": "SSH username (optional if username_binding is set).",
      "type": "string"
    },
    "username_binding": {
      "description": "Session binding key for username (secrets override env). Used only when username is empty.",
      "type": "string"
    }
  },
  "required": [
    "host"
  ],
  "type": "object"
}
                

Send a Wake-on-LAN magic packet over UDP. Target must have WoL enabled. Use the subnet broadcast address (e.g. 192.168.1.255) if 255.255.255.255 does not reach the host. Port 9 (discard) is typical; port 7 (echo) is also used.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "broadcast_address": {
      "description": "UDP destination IP (default 255.255.255.255).",
      "type": "string"
    },
    "count": {
      "description": "How many times to send the same packet (default 3, max 5).",
      "type": "integer"
    },
    "mac": {
      "description": "MAC address, e.g. aa:bb:cc:dd:ee:ff or aa-bb-cc-dd-ee-ff.",
      "type": "string"
    },
    "port": {
      "description": "UDP port (default 9).",
      "type": "integer"
    }
  },
  "required": [
    "mac"
  ],
  "type": "object"
}
                
Protocols Extensión

Protocolos de red

FTP/FTPS, SFTP, SMB/CIFS y LDAP/LDAPS. Transferencia de archivos e integración con directorios empresariales.

Herramientas activas 0/15
Entorno / secretos
  • ENABLE_SMB_TOOLS Flag Falta en BD

    Default: vacío (desactivado)

    Debe ser 1/true para registrar smb_* (requiere impacket instalado).

Elimina un archivo de un servidor FTP/FTPS.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "host": {
      "description": "Hostname o IP del servidor FTP.",
      "type": "string"
    },
    "passive": {
      "description": "Modo pasivo (default true).",
      "type": "boolean"
    },
    "password": {
      "description": "Contrase\u00f1a FTP.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings \u2192 Env vars y secrets.",
      "type": "string"
    },
    "port": {
      "description": "Puerto FTP (default 21).",
      "type": "integer"
    },
    "remote_path": {
      "description": "Ruta del archivo remoto a eliminar.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "tls": {
      "description": "Usar FTPS impl\u00edcito/TLS (default false).",
      "type": "boolean"
    },
    "username": {
      "description": "Usuario FTP (default \u0027anonymous\u0027).",
      "type": "string"
    }
  },
  "required": [
    "host",
    "remote_path"
  ],
  "type": "object"
}
                

Descarga un archivo de un servidor FTP/FTPS al sistema local.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "host": {
      "description": "Hostname o IP del servidor FTP.",
      "type": "string"
    },
    "local_path": {
      "description": "Ruta local donde guardar el archivo descargado.",
      "type": "string"
    },
    "passive": {
      "description": "Modo pasivo (default true).",
      "type": "boolean"
    },
    "password": {
      "description": "Contrase\u00f1a FTP.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings \u2192 Env vars y secrets.",
      "type": "string"
    },
    "port": {
      "description": "Puerto FTP (default 21).",
      "type": "integer"
    },
    "remote_path": {
      "description": "Ruta del archivo en el servidor FTP.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "tls": {
      "description": "Usar FTPS impl\u00edcito/TLS (default false).",
      "type": "boolean"
    },
    "username": {
      "description": "Usuario FTP (default \u0027anonymous\u0027).",
      "type": "string"
    }
  },
  "required": [
    "host",
    "remote_path",
    "local_path"
  ],
  "type": "object"
}
                

Lista el contenido de un directorio en un servidor FTP/FTPS.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "host": {
      "description": "Hostname o IP del servidor FTP.",
      "type": "string"
    },
    "passive": {
      "description": "Modo pasivo (default true).",
      "type": "boolean"
    },
    "password": {
      "description": "Contrase\u00f1a FTP.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings \u2192 Env vars y secrets.",
      "type": "string"
    },
    "path": {
      "description": "Ruta remota a listar (default \u0027/\u0027).",
      "type": "string"
    },
    "port": {
      "description": "Puerto FTP (default 21).",
      "type": "integer"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "tls": {
      "description": "Usar FTPS impl\u00edcito/TLS (default false).",
      "type": "boolean"
    },
    "username": {
      "description": "Usuario FTP (default \u0027anonymous\u0027).",
      "type": "string"
    }
  },
  "required": [
    "host"
  ],
  "type": "object"
}
                

Crea un directorio en un servidor FTP/FTPS.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "host": {
      "description": "Hostname o IP del servidor FTP.",
      "type": "string"
    },
    "passive": {
      "description": "Modo pasivo (default true).",
      "type": "boolean"
    },
    "password": {
      "description": "Contrase\u00f1a FTP.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings \u2192 Env vars y secrets.",
      "type": "string"
    },
    "port": {
      "description": "Puerto FTP (default 21).",
      "type": "integer"
    },
    "remote_path": {
      "description": "Ruta del directorio remoto a crear.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "tls": {
      "description": "Usar FTPS impl\u00edcito/TLS (default false).",
      "type": "boolean"
    },
    "username": {
      "description": "Usuario FTP (default \u0027anonymous\u0027).",
      "type": "string"
    }
  },
  "required": [
    "host",
    "remote_path"
  ],
  "type": "object"
}
                

Sube un archivo local a un servidor FTP/FTPS.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "host": {
      "description": "Hostname o IP del servidor FTP.",
      "type": "string"
    },
    "local_path": {
      "description": "Ruta del archivo local a subir.",
      "type": "string"
    },
    "passive": {
      "description": "Modo pasivo (default true).",
      "type": "boolean"
    },
    "password": {
      "description": "Contrase\u00f1a FTP.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings \u2192 Env vars y secrets.",
      "type": "string"
    },
    "port": {
      "description": "Puerto FTP (default 21).",
      "type": "integer"
    },
    "remote_path": {
      "description": "Ruta de destino en el servidor FTP.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "tls": {
      "description": "Usar FTPS impl\u00edcito/TLS (default false).",
      "type": "boolean"
    },
    "username": {
      "description": "Usuario FTP (default \u0027anonymous\u0027).",
      "type": "string"
    }
  },
  "required": [
    "host",
    "local_path",
    "remote_path"
  ],
  "type": "object"
}
                

Agrega una nueva entrada al directorio LDAP.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "attributes": {
      "additionalProperties": true,
      "description": "Atributos adicionales como objeto JSON (ej. {\u0027cn\u0027: \u0027Juan Doe\u0027, \u0027mail\u0027: \u0027jdoe@empresa.com\u0027}).",
      "type": "object"
    },
    "dn": {
      "description": "DN de la nueva entrada.",
      "type": "string"
    },
    "host": {
      "description": "Hostname o IP del servidor LDAP.",
      "type": "string"
    },
    "object_class": {
      "description": "Lista de objectClass de la entrada (ej. [\u0027inetOrgPerson\u0027, \u0027person\u0027]).",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "password": {
      "description": "Contrase\u00f1a del bind DN.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings.",
      "type": "string"
    },
    "port": {
      "description": "Puerto LDAP (default 389 / 636 con TLS).",
      "type": "integer"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "tls": {
      "description": "Usar LDAPS/TLS (default false).",
      "type": "boolean"
    },
    "tls_verify": {
      "description": "Verificar certificado TLS (default true).",
      "type": "boolean"
    },
    "username": {
      "description": "DN de enlace (bind DN). Vac\u00edo = acceso an\u00f3nimo.",
      "type": "string"
    }
  },
  "required": [
    "host",
    "dn",
    "object_class"
  ],
  "type": "object"
}
                

Elimina una entrada del directorio LDAP por su DN.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "dn": {
      "description": "DN de la entrada a eliminar.",
      "type": "string"
    },
    "host": {
      "description": "Hostname o IP del servidor LDAP.",
      "type": "string"
    },
    "password": {
      "description": "Contrase\u00f1a del bind DN.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings.",
      "type": "string"
    },
    "port": {
      "description": "Puerto LDAP (default 389 / 636 con TLS).",
      "type": "integer"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "tls": {
      "description": "Usar LDAPS/TLS (default false).",
      "type": "boolean"
    },
    "tls_verify": {
      "description": "Verificar certificado TLS (default true).",
      "type": "boolean"
    },
    "username": {
      "description": "DN de enlace (bind DN). Vac\u00edo = acceso an\u00f3nimo.",
      "type": "string"
    }
  },
  "required": [
    "host",
    "dn"
  ],
  "type": "object"
}
                

Obtiene los atributos de una entrada LDAP por su DN exacto.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "attributes": {
      "description": "Lista de atributos a retornar. Vac\u00edo = todos.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "dn": {
      "description": "DN exacto de la entrada (ej. \u0027uid=jdoe,ou=users,dc=empresa,dc=com\u0027).",
      "type": "string"
    },
    "host": {
      "description": "Hostname o IP del servidor LDAP.",
      "type": "string"
    },
    "password": {
      "description": "Contrase\u00f1a del bind DN.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings.",
      "type": "string"
    },
    "port": {
      "description": "Puerto LDAP (default 389 / 636 con TLS).",
      "type": "integer"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "tls": {
      "description": "Usar LDAPS/TLS (default false).",
      "type": "boolean"
    },
    "tls_verify": {
      "description": "Verificar certificado TLS (default true).",
      "type": "boolean"
    },
    "username": {
      "description": "DN de enlace (bind DN). Vac\u00edo = acceso an\u00f3nimo.",
      "type": "string"
    }
  },
  "required": [
    "host",
    "dn"
  ],
  "type": "object"
}
                

Modifica atributos de una entrada LDAP existente. El parámetro changes es un objeto {attr: {action, values}} donde action es REPLACE, ADD o DELETE.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "changes": {
      "additionalProperties": true,
      "description": "Cambios a aplicar. Formato: {\"mail\": {\"action\": \"REPLACE\", \"values\": [\"nuevo@mail.com\"]}}. Acciones: REPLACE (reemplazar), ADD (agregar valor), DELETE (borrar valor o atributo).",
      "type": "object"
    },
    "dn": {
      "description": "DN de la entrada a modificar.",
      "type": "string"
    },
    "host": {
      "description": "Hostname o IP del servidor LDAP.",
      "type": "string"
    },
    "password": {
      "description": "Contrase\u00f1a del bind DN.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings.",
      "type": "string"
    },
    "port": {
      "description": "Puerto LDAP (default 389 / 636 con TLS).",
      "type": "integer"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "tls": {
      "description": "Usar LDAPS/TLS (default false).",
      "type": "boolean"
    },
    "tls_verify": {
      "description": "Verificar certificado TLS (default true).",
      "type": "boolean"
    },
    "username": {
      "description": "DN de enlace (bind DN). Vac\u00edo = acceso an\u00f3nimo.",
      "type": "string"
    }
  },
  "required": [
    "host",
    "dn",
    "changes"
  ],
  "type": "object"
}
                

Busca entradas en un directorio LDAP/LDAPS con filtro y atributos configurables.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "attributes": {
      "description": "Lista de atributos a retornar. Vac\u00edo = todos.",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "base_dn": {
      "description": "DN base de la b\u00fasqueda (ej. \u0027dc=empresa,dc=com\u0027).",
      "type": "string"
    },
    "host": {
      "description": "Hostname o IP del servidor LDAP.",
      "type": "string"
    },
    "password": {
      "description": "Contrase\u00f1a del bind DN.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings.",
      "type": "string"
    },
    "port": {
      "description": "Puerto LDAP (default 389 / 636 con TLS).",
      "type": "integer"
    },
    "scope": {
      "description": "Alcance de b\u00fasqueda: base, one (un nivel) o sub (\u00e1rbol completo, default).",
      "enum": [
        "base",
        "one",
        "sub"
      ],
      "type": "string"
    },
    "search_filter": {
      "description": "Filtro LDAP (default \u0027(objectClass=*)\u0027).",
      "type": "string"
    },
    "size_limit": {
      "description": "M\u00e1ximo de entradas a retornar (default 100).",
      "type": "integer"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "tls": {
      "description": "Usar LDAPS/TLS (default false).",
      "type": "boolean"
    },
    "tls_verify": {
      "description": "Verificar certificado TLS (default true).",
      "type": "boolean"
    },
    "username": {
      "description": "DN de enlace (bind DN). Vac\u00edo = acceso an\u00f3nimo.",
      "type": "string"
    }
  },
  "required": [
    "host",
    "base_dn"
  ],
  "type": "object"
}
                

Elimina un archivo en un servidor remoto vía SFTP.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "host": {
      "description": "Hostname o IP del servidor SSH/SFTP.",
      "type": "string"
    },
    "key_passphrase": {
      "description": "Passphrase de la clave privada (si est\u00e1 cifrada).",
      "type": "string"
    },
    "key_path": {
      "description": "Ruta a la clave privada SSH.",
      "type": "string"
    },
    "password": {
      "description": "Contrase\u00f1a SSH.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings.",
      "type": "string"
    },
    "port": {
      "description": "Puerto SSH (default 22).",
      "type": "integer"
    },
    "remote_path": {
      "description": "Ruta del archivo remoto a eliminar.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "trust_host_key": {
      "description": "Si true, acepta cualquier clave de host y la persiste en known_hosts.",
      "type": "boolean"
    },
    "username": {
      "description": "Usuario SSH.",
      "type": "string"
    },
    "username_binding": {
      "description": "Clave de sesi\u00f3n para leer el usuario de Settings.",
      "type": "string"
    }
  },
  "required": [
    "host",
    "remote_path"
  ],
  "type": "object"
}
                

Descarga un archivo de un servidor remoto vía SFTP.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "host": {
      "description": "Hostname o IP del servidor SSH/SFTP.",
      "type": "string"
    },
    "key_passphrase": {
      "description": "Passphrase de la clave privada (si est\u00e1 cifrada).",
      "type": "string"
    },
    "key_path": {
      "description": "Ruta a la clave privada SSH.",
      "type": "string"
    },
    "local_path": {
      "description": "Ruta local donde guardar el archivo.",
      "type": "string"
    },
    "password": {
      "description": "Contrase\u00f1a SSH.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings.",
      "type": "string"
    },
    "port": {
      "description": "Puerto SSH (default 22).",
      "type": "integer"
    },
    "remote_path": {
      "description": "Ruta del archivo en el servidor SFTP.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "trust_host_key": {
      "description": "Si true, acepta cualquier clave de host y la persiste en known_hosts.",
      "type": "boolean"
    },
    "username": {
      "description": "Usuario SSH.",
      "type": "string"
    },
    "username_binding": {
      "description": "Clave de sesi\u00f3n para leer el usuario de Settings.",
      "type": "string"
    }
  },
  "required": [
    "host",
    "remote_path",
    "local_path"
  ],
  "type": "object"
}
                

Lista el contenido de un directorio remoto vía SFTP.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "host": {
      "description": "Hostname o IP del servidor SSH/SFTP.",
      "type": "string"
    },
    "key_passphrase": {
      "description": "Passphrase de la clave privada (si est\u00e1 cifrada).",
      "type": "string"
    },
    "key_path": {
      "description": "Ruta a la clave privada SSH.",
      "type": "string"
    },
    "password": {
      "description": "Contrase\u00f1a SSH.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings.",
      "type": "string"
    },
    "path": {
      "description": "Ruta remota a listar (default \u0027.\u0027).",
      "type": "string"
    },
    "port": {
      "description": "Puerto SSH (default 22).",
      "type": "integer"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "trust_host_key": {
      "description": "Si true, acepta cualquier clave de host y la persiste en known_hosts.",
      "type": "boolean"
    },
    "username": {
      "description": "Usuario SSH.",
      "type": "string"
    },
    "username_binding": {
      "description": "Clave de sesi\u00f3n para leer el usuario de Settings.",
      "type": "string"
    }
  },
  "required": [
    "host"
  ],
  "type": "object"
}
                

Crea un directorio en un servidor remoto vía SFTP.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "host": {
      "description": "Hostname o IP del servidor SSH/SFTP.",
      "type": "string"
    },
    "key_passphrase": {
      "description": "Passphrase de la clave privada (si est\u00e1 cifrada).",
      "type": "string"
    },
    "key_path": {
      "description": "Ruta a la clave privada SSH.",
      "type": "string"
    },
    "mode": {
      "description": "Permisos del directorio en octal (default 0o755 = 493).",
      "type": "integer"
    },
    "password": {
      "description": "Contrase\u00f1a SSH.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings.",
      "type": "string"
    },
    "port": {
      "description": "Puerto SSH (default 22).",
      "type": "integer"
    },
    "remote_path": {
      "description": "Ruta del directorio remoto a crear.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "trust_host_key": {
      "description": "Si true, acepta cualquier clave de host y la persiste en known_hosts.",
      "type": "boolean"
    },
    "username": {
      "description": "Usuario SSH.",
      "type": "string"
    },
    "username_binding": {
      "description": "Clave de sesi\u00f3n para leer el usuario de Settings.",
      "type": "string"
    }
  },
  "required": [
    "host",
    "remote_path"
  ],
  "type": "object"
}
                

Sube un archivo local a un servidor remoto vía SFTP.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "host": {
      "description": "Hostname o IP del servidor SSH/SFTP.",
      "type": "string"
    },
    "key_passphrase": {
      "description": "Passphrase de la clave privada (si est\u00e1 cifrada).",
      "type": "string"
    },
    "key_path": {
      "description": "Ruta a la clave privada SSH.",
      "type": "string"
    },
    "local_path": {
      "description": "Ruta del archivo local a subir.",
      "type": "string"
    },
    "password": {
      "description": "Contrase\u00f1a SSH.",
      "type": "string"
    },
    "password_binding": {
      "description": "Clave de sesi\u00f3n para leer la contrase\u00f1a de Settings.",
      "type": "string"
    },
    "port": {
      "description": "Puerto SSH (default 22).",
      "type": "integer"
    },
    "remote_path": {
      "description": "Ruta de destino en el servidor SFTP.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout de conexi\u00f3n en segundos (default 30.0).",
      "type": "number"
    },
    "trust_host_key": {
      "description": "Si true, acepta cualquier clave de host y la persiste en known_hosts.",
      "type": "boolean"
    },
    "username": {
      "description": "Usuario SSH.",
      "type": "string"
    },
    "username_binding": {
      "description": "Clave de sesi\u00f3n para leer el usuario de Settings.",
      "type": "string"
    }
  },
  "required": [
    "host",
    "local_path",
    "remote_path"
  ],
  "type": "object"
}
                
Dorking Extensión

Google Hacking

Dorks personalizados, enumeración de índice (site:), archivos expuestos (filetype:) y presets. Activado por defecto; desactivar con ENABLE_GHACK_TOOLS=0.

Herramientas activas 0/4
Entorno / secretos
  • ENABLE_GHACK_TOOLS Flag Falta en BD

    Default: 1 (activo)

    0/false desactiva ghack_*; por defecto registradas (dorks vía DuckDuckGo HTML o SerpAPI).

  • SERPAPI_KEY Secreto Falta en BD

    Cuándo: engine=serpapi

    Clave API de SerpAPI para usar el motor Google (mayor cobertura que DuckDuckGo).

Ejecuta una query de Google dork / búsqueda avanzada. Motor 'duckduckgo' (sin clave) o 'serpapi' (requiere SERPAPI_KEY). Soporta operadores: site:, filetype:, inurl:, intitle:, intext:, etc.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "engine": {
      "description": "Motor de b\u00fasqueda: \u0027duckduckgo\u0027 (default, sin clave) o \u0027serpapi\u0027 (Google, requiere clave).",
      "enum": [
        "duckduckgo",
        "serpapi"
      ],
      "type": "string"
    },
    "max_results": {
      "description": "N\u00famero m\u00e1ximo de resultados (default 10, max 50).",
      "type": "integer"
    },
    "query": {
      "description": "Dork completo a ejecutar (e.g. \u0027site:example.com filetype:pdf\u0027).",
      "type": "string"
    },
    "serpapi_key": {
      "description": "Clave SerpAPI directa (alternativa a serpapi_key_binding).",
      "type": "string"
    },
    "serpapi_key_binding": {
      "description": "Nombre del binding de sesi\u00f3n que contiene la clave SerpAPI.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout en segundos (default 15).",
      "type": "number"
    }
  },
  "required": [
    "query"
  ],
  "type": "object"
}
                

Busca archivos de un tipo específico expuestos públicamente en un dominio usando site:+filetype:. Útil para detectar documentos, configs o backups indexados.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "domain": {
      "description": "Dominio objetivo (e.g. \u0027example.com\u0027).",
      "type": "string"
    },
    "engine": {
      "description": "Motor de b\u00fasqueda (default \u0027duckduckgo\u0027).",
      "enum": [
        "duckduckgo",
        "serpapi"
      ],
      "type": "string"
    },
    "filetype": {
      "description": "Extensi\u00f3n de archivo a buscar.",
      "enum": [
        "bak",
        "cfg",
        "conf",
        "csv",
        "doc",
        "docx",
        "env",
        "gz",
        "ini",
        "json",
        "key",
        "log",
        "pdf",
        "pem",
        "ppk",
        "sql",
        "tar",
        "txt",
        "xls",
        "xlsx",
        "xml",
        "zip"
      ],
      "type": "string"
    },
    "max_results": {
      "description": "M\u00e1ximo de resultados (default 20).",
      "type": "integer"
    },
    "serpapi_key": {
      "description": "Clave SerpAPI directa.",
      "type": "string"
    },
    "serpapi_key_binding": {
      "description": "Binding de clave SerpAPI.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout en segundos (default 15).",
      "type": "number"
    }
  },
  "required": [
    "domain",
    "filetype"
  ],
  "type": "object"
}
                

Ejecuta dorks predefinidos para descubrimiento de exposición en un dominio. Presets: admin_panels, login_pages, exposed_configs, open_directories, backup_files, error_pages, database_files, api_keys.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "domain": {
      "description": "Dominio objetivo (e.g. \u0027example.com\u0027).",
      "type": "string"
    },
    "engine": {
      "description": "Motor de b\u00fasqueda (default \u0027duckduckgo\u0027).",
      "enum": [
        "duckduckgo",
        "serpapi"
      ],
      "type": "string"
    },
    "max_results": {
      "description": "M\u00e1ximo de resultados (default 20).",
      "type": "integer"
    },
    "preset": {
      "description": "Categor\u00eda de dork predefinida a ejecutar.",
      "enum": [
        "admin_panels",
        "api_keys",
        "backup_files",
        "database_files",
        "error_pages",
        "exposed_configs",
        "login_pages",
        "open_directories"
      ],
      "type": "string"
    },
    "serpapi_key": {
      "description": "Clave SerpAPI directa.",
      "type": "string"
    },
    "serpapi_key_binding": {
      "description": "Binding de clave SerpAPI.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout en segundos (default 15).",
      "type": "number"
    }
  },
  "required": [
    "domain",
    "preset"
  ],
  "type": "object"
}
                

Enumera páginas de un dominio indexadas en buscadores usando el operador site:. Opcionalmente filtra por ruta. Útil para mapear la superficie pública de un sitio.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "domain": {
      "description": "Dominio objetivo (e.g. \u0027example.com\u0027).",
      "type": "string"
    },
    "engine": {
      "description": "Motor de b\u00fasqueda (default \u0027duckduckgo\u0027).",
      "enum": [
        "duckduckgo",
        "serpapi"
      ],
      "type": "string"
    },
    "max_results": {
      "description": "M\u00e1ximo de resultados (default 20).",
      "type": "integer"
    },
    "path_filter": {
      "description": "Ruta opcional (e.g. \u0027/admin\u0027) para acotar la b\u00fasqueda.",
      "type": "string"
    },
    "serpapi_key": {
      "description": "Clave SerpAPI directa.",
      "type": "string"
    },
    "serpapi_key_binding": {
      "description": "Binding de clave SerpAPI.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout en segundos (default 15).",
      "type": "number"
    }
  },
  "required": [
    "domain"
  ],
  "type": "object"
}
                
Planning Extensión

Planificación

Generación de planes de alto nivel y delegación explícita.

Herramientas activas 0/1
Entorno / secretos
  • AGENT_REGISTRY_INCLUDE_PLAN Flag Falta en BD

    Default: 1

    Incluir snap_plan_agent en el registry (CLI/web).

  • AGENT_REGISTRY_INCLUDE_DELEGATE Flag Falta en BD

    Default: 1

    Incluir delegate_subagent cuando hay proveedor LLM.

  • AGENT_DELEGATE_MAX_DEPTH Config Falta en BD

    Default: 2

    Profundidad máxima de delegación anidada.

Generate a high-level plan for a given goal (Spanish); uses an LLM when available in the app.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "context": {
      "description": "Contexto adicional opcional que el modelo deber\u00eda tener en cuenta.",
      "type": "string"
    },
    "goal": {
      "description": "Objetivo o tarea a planificar (texto libre).",
      "type": "string"
    }
  },
  "required": [
    "goal"
  ],
  "type": "object"
}
                
Shell Extensión

Bash (snap)

Herramientas de estilo Bash del espejo snapshot.

Herramientas activas 0/5

Parse a Bash command into basic components (base command, args, pipes, redirections).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "command": {
      "description": "Bash command line to analyse.",
      "type": "string"
    }
  },
  "required": [
    "command"
  ],
  "type": "object"
}
                

Classify a Bash command in terms of mode (read/write) and destructiveness.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "command": {
      "description": "Bash command line to classify.",
      "type": "string"
    }
  },
  "required": [
    "command"
  ],
  "type": "object"
}
                

Build a human-friendly summary object for a previously executed Bash command result.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "command": {
      "description": "Executed Bash command.",
      "type": "string"
    },
    "cwd": {
      "description": "Working directory used for the command.",
      "type": "string"
    },
    "result": {
      "description": "Result object returned by snap_bash_tool (returncode, stdout, stderr).",
      "type": "object"
    }
  },
  "required": [
    "command",
    "result"
  ],
  "type": "object"
}
                

Provide a coarse security/risk assessment for a Bash command.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "command": {
      "description": "Bash command line to assess.",
      "type": "string"
    }
  },
  "required": [
    "command"
  ],
  "type": "object"
}
                

Execute a Bash command via run_terminal with safety classification and optional destructive confirmation.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "allow_destructive": {
      "description": "Allow execution of commands classified as destructive (default false).",
      "type": "boolean"
    },
    "command": {
      "description": "Bash command line to execute.",
      "type": "string"
    },
    "cwd": {
      "description": "Optional working directory (relative to workspace root).",
      "type": "string"
    },
    "label": {
      "description": "Optional human-friendly label or note about this command.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Optional timeout in seconds for command execution.",
      "type": "number"
    }
  },
  "required": [
    "command"
  ],
  "type": "object"
}
                
Shell Extensión

PowerShell (snap)

Ejecución y validaciones tipo PowerShell del espejo snapshot.

Herramientas activas 0/4

Analyse a PowerShell command and return a destructive-command warning object if applicable.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "command": {
      "description": "PowerShell command line to analyse.",
      "type": "string"
    }
  },
  "required": [
    "command"
  ],
  "type": "object"
}
                

Perform a coarse validation of paths used in a PowerShell command (heuristic only).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "command": {
      "description": "PowerShell command line to analyse for path risks.",
      "type": "string"
    }
  },
  "required": [
    "command"
  ],
  "type": "object"
}
                

Validate whether a PowerShell command appears to be read-only.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "command": {
      "description": "PowerShell command line to validate.",
      "type": "string"
    }
  },
  "required": [
    "command"
  ],
  "type": "object"
}
                

Execute a PowerShell command via run_terminal with safety classification and optional destructive confirmation.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "allow_destructive": {
      "description": "Allow execution of commands classified as destructive (default false).",
      "type": "boolean"
    },
    "command": {
      "description": "PowerShell command line to execute.",
      "type": "string"
    },
    "cwd": {
      "description": "Optional working directory (relative to workspace root).",
      "type": "string"
    },
    "label": {
      "description": "Optional human-friendly label or note about this command.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Optional timeout in seconds for command execution.",
      "type": "number"
    }
  },
  "required": [
    "command"
  ],
  "type": "object"
}
                
Meta Extensión

Utilidades de agente

Memoria, display y utilidades internas del agente (snap_*).

Herramientas activas 0/7

Resuelve colores deterministas para IDs de agentes.

Esquema
{
  "properties": {
    "ids": {
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "ids"
  ],
  "type": "object"
}
                

Devuelve metainformación de presentación para un agente. Si `id` se omite, usa el agente por defecto de esta ejecución Coworker.

Esquema
{
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [],
  "type": "object"
}
                

Lee o añade entradas de memoria asociadas a un agente (alcance por workspace registrado cuando aplica; filas sin workspace son globales legacy). Si `id` se omite, usa el agente por defecto de esta ejecución.

Esquema
{
  "additionalProperties": true,
  "properties": {
    "action": {
      "enum": [
        "get",
        "append"
      ],
      "type": "string"
    },
    "entry": {
      "additionalProperties": true,
      "properties": {
        "content": {
          "type": "string"
        },
        "kind": {
          "type": "string"
        },
        "workspace_id": {
          "type": "string"
        }
      },
      "required": [
        "content"
      ],
      "type": "object"
    },
    "id": {
      "type": "string"
    }
  },
  "required": [
    "action"
  ],
  "type": "object"
}
                

Devuelve una vista comprimida de la memoria visible en el alcance actual del workspace. `id` opcional si hay agente por defecto.

Esquema
{
  "properties": {
    "id": {
      "type": "string"
    },
    "max_entries": {
      "type": "integer"
    }
  },
  "required": [],
  "type": "object"
}
                

Gestiona agentes lógicos (crear, actualizar, obtener, listar).

Esquema
{
  "additionalProperties": true,
  "properties": {
    "action": {
      "enum": [
        "list",
        "get",
        "create_or_update"
      ],
      "type": "string"
    },
    "definition": {
      "additionalProperties": true,
      "properties": {
        "color": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "display_name": {
          "type": "string"
        },
        "skills": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "system_prompt": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "id": {
      "type": "string"
    }
  },
  "required": [
    "action"
  ],
  "type": "object"
}
                

Utilidades varias para trabajar con agentes.

Esquema
{
  "properties": {
    "action": {
      "enum": [
        "list_ids",
        "exists"
      ],
      "type": "string"
    },
    "id": {
      "type": "string"
    }
  },
  "required": [
    "action"
  ],
  "type": "object"
}
                

List env var and secret **names** configured for this agent run (Coworker Settings → Env vars y secrets, loaded from the database into the session). Secret **values** are never returned. Use this when the user asks for SSH or similar without naming keys: then call `snap_paramiko_ssh` with `username_binding` / `password_binding` set to the matching key names. Set `include_env_values` to true only if you need non-secret values (e.g. SSH host in env).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "include_env_values": {
      "description": "If true, include `value` for each env entry. Default false (keys only for env). Secret values are never included regardless of this flag.",
      "type": "boolean"
    }
  },
  "type": "object"
}
                
Archive Extensión

Archivo de skills

Inspección del subsistema de skills en disco (no confundir con skills del perfil de agente).

Herramientas activas 0/1

Inspect the archived skills subsystem and return summary or sample files.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "action": {
      "description": "Operation to perform: \"summary\" or \"list_samples\". Default: \"summary\".",
      "type": "string"
    },
    "limit": {
      "description": "Max number of sample files to return when action=list_samples.",
      "type": "integer"
    }
  },
  "required": [],
  "type": "object"
}
                
Stub Extensión

Snapshot (stubs)

Espejos snapshot_* sin implementación completa o metadatos.

Herramientas activas 0/44
Entorno / secretos
  • ENABLE_SNAPSHOT_TOOLS Flag Falta en BD

    Default: 1

    0/false para no registrar espejos snapshot_*.

  • SNAPSHOT_TOOLS_LIMIT Config Falta en BD

    Límite opcional de cuántos stubs snapshot se registran.

  • SNAPSHOT_TOOLS_PREFIX Config Falta en BD

    Default: snapshot_

    Prefijo de nombre de las herramientas snapshot.

  • SNAPSHOT_TOOLS_FILTER Config Falta en BD

    Filtro de texto opcional sobre nombres de snapshot.

Snapshot tool mirror for attachments: Tool module mirrored from archived TypeScript path tools/BriefTool/attachments.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for BriefTool: Tool module mirrored from archived TypeScript path tools/BriefTool/BriefTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for builtInAgents: Tool module mirrored from archived TypeScript path tools/AgentTool/builtInAgents.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for claudeCodeGuideAgent: Tool module mirrored from archived TypeScript path tools/AgentTool/built-in/claudeCodeGuideAgent.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for clmTypes: Tool module mirrored from archived TypeScript path tools/PowerShellTool/clmTypes.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for commandSemantics: Tool module mirrored from archived TypeScript path tools/BashTool/commandSemantics.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for commentLabel: Tool module mirrored from archived TypeScript path tools/BashTool/commentLabel.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for commonParameters: Tool module mirrored from archived TypeScript path tools/PowerShellTool/commonParameters.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for ConfigTool: Tool module mirrored from archived TypeScript path tools/ConfigTool/ConfigTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for constants: Tool module mirrored from archived TypeScript path tools/AgentTool/constants.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for FileEditTool: Tool module mirrored from archived TypeScript path tools/FileEditTool/FileEditTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for FileReadTool: Tool module mirrored from archived TypeScript path tools/FileReadTool/FileReadTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for FileWriteTool: Tool module mirrored from archived TypeScript path tools/FileWriteTool/FileWriteTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for gitOperationTracking: Tool module mirrored from archived TypeScript path tools/shared/gitOperationTracking.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for gitSafety: Tool module mirrored from archived TypeScript path tools/PowerShellTool/gitSafety.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for GlobTool: Tool module mirrored from archived TypeScript path tools/GlobTool/GlobTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for GrepTool: Tool module mirrored from archived TypeScript path tools/GrepTool/GrepTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for imageProcessor: Tool module mirrored from archived TypeScript path tools/FileReadTool/imageProcessor.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for limits: Tool module mirrored from archived TypeScript path tools/FileReadTool/limits.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for loadAgentsDir: Tool module mirrored from archived TypeScript path tools/AgentTool/loadAgentsDir.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for McpAuthTool: Tool module mirrored from archived TypeScript path tools/McpAuthTool/McpAuthTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for modeValidation: Tool module mirrored from archived TypeScript path tools/BashTool/modeValidation.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for powershellPermissions: Tool module mirrored from archived TypeScript path tools/PowerShellTool/powershellPermissions.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for powershellSecurity: Tool module mirrored from archived TypeScript path tools/PowerShellTool/powershellSecurity.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for preapproved: Tool module mirrored from archived TypeScript path tools/WebFetchTool/preapproved.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for primitiveTools: Tool module mirrored from archived TypeScript path tools/REPLTool/primitiveTools.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for prompt: Tool module mirrored from archived TypeScript path tools/AgentTool/prompt.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for RemoteTriggerTool: Tool module mirrored from archived TypeScript path tools/RemoteTriggerTool/RemoteTriggerTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for sedEditParser: Tool module mirrored from archived TypeScript path tools/BashTool/sedEditParser.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for sedValidation: Tool module mirrored from archived TypeScript path tools/BashTool/sedValidation.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for SendMessageTool: Tool module mirrored from archived TypeScript path tools/SendMessageTool/SendMessageTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for shouldUseSandbox: Tool module mirrored from archived TypeScript path tools/BashTool/shouldUseSandbox.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for spawnMultiAgent: Tool module mirrored from archived TypeScript path tools/shared/spawnMultiAgent.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for statuslineSetup: Tool module mirrored from archived TypeScript path tools/AgentTool/built-in/statuslineSetup.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for supportedSettings: Tool module mirrored from archived TypeScript path tools/ConfigTool/supportedSettings.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for SyntheticOutputTool: Tool module mirrored from archived TypeScript path tools/SyntheticOutputTool/SyntheticOutputTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for TeamCreateTool: Tool module mirrored from archived TypeScript path tools/TeamCreateTool/TeamCreateTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for TeamDeleteTool: Tool module mirrored from archived TypeScript path tools/TeamDeleteTool/TeamDeleteTool.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for TestingPermissionTool: Tool module mirrored from archived TypeScript path tools/testing/TestingPermissionTool.tsx

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for toolName: Tool module mirrored from archived TypeScript path tools/BashTool/toolName.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for types: Tool module mirrored from archived TypeScript path tools/FileEditTool/types.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for UI: Tool module mirrored from archived TypeScript path tools/AgentTool/UI.tsx

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for upload: Tool module mirrored from archived TypeScript path tools/BriefTool/upload.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                

Snapshot tool mirror for utils: Tool module mirrored from archived TypeScript path tools/BashTool/utils.ts

Esquema
{
  "additionalProperties": true,
  "properties": {
    "note": {
      "description": "Optional note or context for this snapshot tool.",
      "type": "string"
    }
  },
  "type": "object"
}
                
Security Extensión

Criptografía y encoding

Hash (MD5/SHA/BLAKE2), Base64, HMAC, inspección JWT y generación de tokens seguros. Sin deps externas.

Herramientas activas 0/5

Codifica o decodifica texto en Base64 o Base64-URL. Útil para payloads de APIs, certificados, tokens y datos binarios.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "encoding": {
      "description": "Charset del texto de entrada/salida (default \u0027utf-8\u0027).",
      "type": "string"
    },
    "input_text": {
      "description": "Texto a codificar/decodificar.",
      "type": "string"
    },
    "operation": {
      "description": "\u0027encode\u0027 o \u0027decode\u0027.",
      "enum": [
        "encode",
        "decode"
      ],
      "type": "string"
    },
    "url_safe": {
      "description": "Usar Base64-URL (- y _ en lugar de + y /, default false).",
      "type": "boolean"
    }
  },
  "required": [
    "operation",
    "input_text"
  ],
  "type": "object"
}
                

Calcula el hash criptográfico de un texto o archivo. Algoritmos: md5, sha1, sha256 (default), sha512, sha3_256, blake2b. Salida en hexadecimal (default) o base64.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "algorithm": {
      "description": "Algoritmo de hash (default \u0027sha256\u0027).",
      "enum": [
        "blake2b",
        "md5",
        "sha1",
        "sha256",
        "sha3_256",
        "sha512"
      ],
      "type": "string"
    },
    "encoding": {
      "description": "Formato de salida: \u0027hex\u0027 (default) o \u0027base64\u0027.",
      "enum": [
        "hex",
        "base64"
      ],
      "type": "string"
    },
    "file_path": {
      "description": "Ruta de archivo a hashear (alternativa a input_text).",
      "type": "string"
    },
    "input_text": {
      "description": "Texto a hashear (alternativa a file_path).",
      "type": "string"
    }
  },
  "type": "object"
}
                

Genera un HMAC (Hash-based Message Authentication Code) para verificar la integridad y autenticidad de un mensaje. Algoritmos: sha256 (default), sha512.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "algorithm": {
      "description": "Algoritmo HMAC (default \u0027sha256\u0027).",
      "enum": [
        "sha256",
        "sha512"
      ],
      "type": "string"
    },
    "encoding": {
      "description": "Formato de salida (default \u0027hex\u0027).",
      "enum": [
        "hex",
        "base64"
      ],
      "type": "string"
    },
    "key": {
      "description": "Clave secreta HMAC (alternativa a key_binding).",
      "type": "string"
    },
    "key_binding": {
      "description": "Nombre del binding de sesi\u00f3n con la clave.",
      "type": "string"
    },
    "message": {
      "description": "Mensaje a autenticar.",
      "type": "string"
    }
  },
  "required": [
    "message"
  ],
  "type": "object"
}
                

Decodifica el header y payload de un JWT sin verificar la firma. Útil para inspeccionar tokens en debug/auditoría. AVISO: no confirma que el token sea auténtico.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "token": {
      "description": "JWT en formato \u0027header.payload.signature\u0027.",
      "type": "string"
    }
  },
  "required": [
    "token"
  ],
  "type": "object"
}
                

Genera tokens o contraseñas aleatorias criptográficamente seguros. Charsets: hex (default), base64, alphanumeric, digits, printable, bytes_b64.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "charset": {
      "description": "Conjunto de caracteres (default \u0027hex\u0027).",
      "enum": [
        "alphanumeric",
        "base64",
        "digits",
        "hex",
        "printable",
        "bytes_b64"
      ],
      "type": "string"
    },
    "count": {
      "description": "Cu\u00e1ntos tokens generar (default 1, max 100).",
      "type": "integer"
    },
    "length": {
      "description": "Longitud del token en caracteres (default 32, max 4096).",
      "type": "integer"
    }
  },
  "type": "object"
}
                
Documents Extensión

PDF

Metadatos, extracción de texto, división y fusión de PDFs (pypdf).

Herramientas activas 0/4
Entorno / secretos
  • pypdf Config Falta en BD

    Requiere pypdf >= 5.0 (ya incluido en pyproject.toml). Sin env vars adicionales.

Fusiona una lista de PDFs en un único archivo de salida.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "input_paths": {
      "description": "Lista de rutas PDF a fusionar (en orden).",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "output_path": {
      "description": "Ruta del PDF resultante.",
      "type": "string"
    }
  },
  "required": [
    "input_paths",
    "output_path"
  ],
  "type": "object"
}
                

Lee los metadatos de un archivo PDF: título, autor, asunto, número de páginas, estado de cifrado y versión PDF.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "path": {
      "description": "Ruta al archivo PDF.",
      "type": "string"
    }
  },
  "required": [
    "path"
  ],
  "type": "object"
}
                

Divide un PDF en archivos de página individual (o rangos seleccionados). Los archivos se guardan en output_dir con nombre 'stem_page_NNNN.pdf'.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "output_dir": {
      "description": "Directorio donde guardar las p\u00e1ginas.",
      "type": "string"
    },
    "pages": {
      "description": "P\u00e1ginas a extraer, e.g. \u00271-3,5\u0027 (default: todas).",
      "type": "string"
    },
    "path": {
      "description": "Ruta al PDF de entrada.",
      "type": "string"
    }
  },
  "required": [
    "path",
    "output_dir"
  ],
  "type": "object"
}
                

Extrae el texto de un PDF. Permite seleccionar páginas con un spec tipo '1-3,5,7' (default: todas). Límite de caracteres configurable.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "max_chars": {
      "description": "L\u00edmite de caracteres en la salida (default 50 000).",
      "type": "integer"
    },
    "pages": {
      "description": "P\u00e1ginas a extraer, e.g. \u00271-3,5\u0027 (default: todas).",
      "type": "string"
    },
    "path": {
      "description": "Ruta al archivo PDF.",
      "type": "string"
    }
  },
  "required": [
    "path"
  ],
  "type": "object"
}
                
Network Extensión

Cliente HTTP

Llamadas HTTP/HTTPS genéricas y atajo para APIs JSON con auth Bearer/API-key. Sin deps externas.

Herramientas activas 0/2

Atajo para llamadas a APIs JSON. Serializa/deserializa automáticamente. Soporta Bearer token y API-key vía binding de sesión. Permite construir la URL con base_url + path.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "api_key": {
      "description": "API key directa.",
      "type": "string"
    },
    "api_key_binding": {
      "description": "Binding de sesi\u00f3n para la API key.",
      "type": "string"
    },
    "api_key_header": {
      "description": "Nombre del header de API key (default \u0027X-API-Key\u0027).",
      "type": "string"
    },
    "base_url": {
      "description": "URL base (e.g. \u0027https://api.example.com\u0027).",
      "type": "string"
    },
    "bearer_token": {
      "description": "Bearer token directo.",
      "type": "string"
    },
    "bearer_token_binding": {
      "description": "Binding de sesi\u00f3n para el Bearer token.",
      "type": "string"
    },
    "headers": {
      "description": "Headers adicionales.",
      "type": "object"
    },
    "json_body": {
      "description": "Payload JSON a enviar.",
      "type": "object"
    },
    "method": {
      "description": "M\u00e9todo HTTP (default \u0027GET\u0027).",
      "enum": [
        "DELETE",
        "GET",
        "HEAD",
        "OPTIONS",
        "PATCH",
        "POST",
        "PUT"
      ],
      "type": "string"
    },
    "path": {
      "description": "Path relativo (e.g. \u0027/v1/users\u0027).",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout en segundos (default 30).",
      "type": "number"
    },
    "url": {
      "description": "URL completa (alternativa a base_url+path).",
      "type": "string"
    },
    "verify_ssl": {
      "description": "Verificar SSL (default false).",
      "type": "boolean"
    }
  },
  "type": "object"
}
                

Realiza una llamada HTTP genérica (GET/POST/PUT/DELETE/PATCH/HEAD). Soporta headers, body, JSON, autenticación Bearer/Basic/API-key (con binding de sesión), control de SSL y redirects.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "api_key_header": {
      "description": "Nombre del header para API key (default \u0027X-API-Key\u0027).",
      "type": "string"
    },
    "auth_binding": {
      "description": "Nombre de binding de sesi\u00f3n para el valor de auth.",
      "type": "string"
    },
    "auth_type": {
      "description": "Tipo de autenticaci\u00f3n.",
      "enum": [
        "bearer",
        "basic",
        "api_key",
        "none"
      ],
      "type": "string"
    },
    "auth_value": {
      "description": "Valor de autenticaci\u00f3n directo (bearer token, user:pass, api key).",
      "type": "string"
    },
    "body": {
      "description": "Cuerpo de la petici\u00f3n como texto.",
      "type": "string"
    },
    "follow_redirects": {
      "description": "Seguir redirects (default true).",
      "type": "boolean"
    },
    "headers": {
      "description": "Headers adicionales como objeto clave-valor.",
      "type": "object"
    },
    "json_body": {
      "description": "Cuerpo JSON (auto-serializado; a\u00f1ade Content-Type: application/json).",
      "type": "object"
    },
    "max_response_bytes": {
      "description": "Bytes m\u00e1ximos de respuesta (default 512 KB).",
      "type": "integer"
    },
    "method": {
      "description": "M\u00e9todo HTTP (default \u0027GET\u0027).",
      "enum": [
        "DELETE",
        "GET",
        "HEAD",
        "OPTIONS",
        "PATCH",
        "POST",
        "PUT"
      ],
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout en segundos (default 30).",
      "type": "number"
    },
    "url": {
      "description": "URL completa (http:// o https://).",
      "type": "string"
    },
    "verify_ssl": {
      "description": "Verificar certificado SSL (default false).",
      "type": "boolean"
    }
  },
  "required": [
    "url"
  ],
  "type": "object"
}
                
Data Extensión

SQL / SQLite

Consultas SELECT, DML, listado de tablas y descripción de esquema sobre archivos SQLite.

Herramientas activas 0/3

Describe el esquema de una tabla SQLite: columnas, tipos, índices, claves foráneas y número de filas.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "db_binding": {
      "description": "Binding de sesi\u00f3n con la ruta a la BD.",
      "type": "string"
    },
    "db_path": {
      "description": "Ruta al archivo .db/.sqlite.",
      "type": "string"
    },
    "table_name": {
      "description": "Nombre exacto de la tabla.",
      "type": "string"
    }
  },
  "required": [
    "table_name"
  ],
  "type": "object"
}
                

Lista las tablas (y vistas) de un archivo SQLite.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "db_binding": {
      "description": "Binding de sesi\u00f3n con la ruta a la BD.",
      "type": "string"
    },
    "db_path": {
      "description": "Ruta al archivo .db/.sqlite.",
      "type": "string"
    },
    "include_views": {
      "description": "Incluir vistas adem\u00e1s de tablas (default true).",
      "type": "boolean"
    }
  },
  "type": "object"
}
                

Ejecuta una consulta SQL sobre un archivo SQLite. Las consultas SELECT son solo lectura por defecto; pasa allow_write=true para INSERT/UPDATE/DELETE. Soporta placeholders posicionales (?).

Esquema
{
  "additionalProperties": false,
  "properties": {
    "allow_write": {
      "description": "Permitir INSERT/UPDATE/DELETE/DDL (default false).",
      "type": "boolean"
    },
    "db_binding": {
      "description": "Binding de sesi\u00f3n con la ruta a la BD (alternativa a db_path).",
      "type": "string"
    },
    "db_path": {
      "description": "Ruta al archivo .db/.sqlite.",
      "type": "string"
    },
    "max_rows": {
      "description": "M\u00e1ximo de filas a devolver (default 500, max 10 000).",
      "type": "integer"
    },
    "params": {
      "description": "Par\u00e1metros posicionales para placeholders ? (opcional).",
      "items": {},
      "type": "array"
    },
    "sql": {
      "description": "Sentencia SQL a ejecutar.",
      "type": "string"
    }
  },
  "required": [
    "sql"
  ],
  "type": "object"
}
                
Alerts Extensión

Notificaciones

Envío de correo (SMTP/STARTTLS), webhooks HTTP genéricos y mensajes Slack vía Incoming Webhook.

Herramientas activas 0/3
Entorno / secretos
  • SMTP_HOST · SMTP_USERNAME · SMTP_PASSWORD Secreto Falta en BD

    Cuándo: notify_email

    Credenciales SMTP. Pueden pasarse directamente en la llamada o vía binding de sesión.

  • SLACK_WEBHOOK_URL Secreto Falta en BD

    Cuándo: notify_slack

    URL del Incoming Webhook de Slack. Puede pasarse vía webhook_binding.

Envía un correo electrónico vía SMTP. Soporta STARTTLS (port 587 default) y SSL directo (port 465). Credenciales mediante binding de sesión o valor directo. El cuerpo puede ser texto plano o HTML.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "body": {
      "description": "Cuerpo del mensaje.",
      "type": "string"
    },
    "cc": {
      "description": "CC opcional.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      ]
    },
    "content_type": {
      "description": "Tipo de contenido del cuerpo (default \u0027plain\u0027).",
      "enum": [
        "plain",
        "html"
      ],
      "type": "string"
    },
    "from_addr": {
      "description": "Direcci\u00f3n de remitente (default: username).",
      "type": "string"
    },
    "password": {
      "description": "Contrase\u00f1a SMTP (preferir password_binding).",
      "type": "string"
    },
    "password_binding": {
      "description": "Binding de sesi\u00f3n para la contrase\u00f1a SMTP.",
      "type": "string"
    },
    "smtp_host": {
      "description": "Servidor SMTP.",
      "type": "string"
    },
    "smtp_host_binding": {
      "description": "Binding de sesi\u00f3n para el host SMTP.",
      "type": "string"
    },
    "smtp_port": {
      "description": "Puerto SMTP (default 587).",
      "type": "integer"
    },
    "subject": {
      "description": "Asunto del correo.",
      "type": "string"
    },
    "to": {
      "description": "Destinatario/s (string o lista de emails).",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      ]
    },
    "use_ssl": {
      "description": "Usar SSL desde el inicio, port 465 (default false).",
      "type": "boolean"
    },
    "use_tls": {
      "description": "Usar STARTTLS (default true).",
      "type": "boolean"
    },
    "username": {
      "description": "Usuario SMTP.",
      "type": "string"
    },
    "username_binding": {
      "description": "Binding de sesi\u00f3n para el usuario SMTP.",
      "type": "string"
    }
  },
  "required": [
    "to",
    "body"
  ],
  "type": "object"
}
                

Envía un mensaje a Slack vía Incoming Webhook. Soporta canal, icono, username personalizado y campos de attachment. La URL del webhook puede estar en un binding de sesión.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "channel": {
      "description": "Canal destino (p. ej. \u0027#alerts\u0027), sobreescribe el destino del webhook.",
      "type": "string"
    },
    "color": {
      "description": "Color del attachment en hex (default \u0027#36a64f\u0027).",
      "type": "string"
    },
    "fields": {
      "description": "Campos adicionales en el attachment (title/value/short).",
      "items": {
        "properties": {
          "short": {
            "type": "boolean"
          },
          "title": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "icon_emoji": {
      "description": "Emoji de icono, p. ej. \u0027:robot_face:\u0027.",
      "type": "string"
    },
    "text": {
      "description": "Texto principal del mensaje.",
      "type": "string"
    },
    "timeout_sec": {
      "description": "Timeout en segundos (default 10).",
      "type": "number"
    },
    "username": {
      "description": "Nombre del bot remitente.",
      "type": "string"
    },
    "webhook_binding": {
      "description": "Binding de sesi\u00f3n para la URL del webhook.",
      "type": "string"
    },
    "webhook_url": {
      "description": "URL del Incoming Webhook de Slack.",
      "type": "string"
    }
  },
  "required": [
    "text"
  ],
  "type": "object"
}
                

Envía una notificación POST a un webhook HTTP genérico (n8n, Zapier, Make, webhook.site, etc.). Acepta payload JSON o form-data. La URL puede estar en un binding de sesión.

Esquema
{
  "additionalProperties": false,
  "properties": {
    "auth_binding": {
      "description": "Binding de sesi\u00f3n para el header Authorization completo.",
      "type": "string"
    },
    "form_data": {
      "description": "Datos como form-urlencoded (alternativa a payload).",
      "type": "object"
    },
    "headers": {
      "description": "Headers adicionales.",
      "type": "object"
    },
    "payload": {
      "description": "Payload JSON a enviar (alternativa a form_data).",
      "type": "object"
    },
    "timeout_sec": {
      "description": "Timeout en segundos (default 15).",
      "type": "number"
    },
    "url": {
      "description": "URL del webhook (http/https).",
      "type": "string"
    },
    "url_binding": {
      "description": "Binding de sesi\u00f3n para la URL del webhook.",
      "type": "string"
    }
  },
  "type": "object"
}