secondbrain
Server Details
AI second brain for people who coordinate several projects. Search and write to your daily notes, tasks and boards, calendar, meeting recaps, documents, clips and an Atlas of people, organizations and projects from Claude, ChatGPT or any MCP client. Free plan, OAuth sign-in.
- Status
- Healthy
- Uptime
- 18.1% over 73 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
TDQS
Scored across 131 tools
Most tools have distinct resource/action targets and the descriptions explicitly cross-reference alternatives, but the 131-tool surface creates several overlapping clusters (recall vs search_workspace vs search_documents, get_tasks vs get_agenda vs get_board_tasks, get_document vs find_documents vs get_documents). An agent can often resolve ambiguity by reading descriptions, but misselection risk remains high in these areas.
The dominant pattern is snake_case verb_noun (get_tasks, create_document, update_event), but there are notable deviations such as 'bienvenida', 'recall', 'get_me', 'how_to_in_app', and mixed Spanish/English naming across the set. It is still readable, but not a single predictable convention.
At 131 tools, the surface is far beyond the typical well-scoped range and imposes heavy selection and context costs on an agent. Even for a broad personal knowledge workspace, this is an extreme count mismatch.
The server covers an unusually broad domain with CRUD/lifecycle operations across documents, tasks, entities, relations, events, meetings, artifacts, clips, canvases, reports, settings, trash, and workspace administration. Some smaller gaps exist (e.g., no full CRUD for task comments or meeting groups), but core workflows appear well supported.
Available Tools
131 toolsadd_entity_relationAInspect
Crea una relación entre dos entidades del Atlas. Si ya existe, la deja como está y la devuelve: para cambiarle el tipo, change_entity_relation_type.
Tipos de relación:
- hierarchy: relación jerárquica genérica (A es parte de B)
- holding: relación holding/subsidiaria
- org: A pertenece a organización B
- area: A es área dentro de B
- subarea: A es sub-área de B
- team: A es equipo de B
- client: A es cliente de B
- partner: A es partner/socio de B| Name | Required | Description | Default |
|---|---|---|---|
| to_entity_id | Yes | ID de la entidad destino (el 'to' de la relación) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| relation_type | No | Tipo de relación (default: hierarchy) | |
| from_entity_id | Yes | ID de la entidad origen (el 'from' de la relación) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false). The description adds genuine behavioral context beyond them: idempotent semantics ('Si ya existe, la deja como está y la devuelve') and that the existing record is returned. It does not state permissions or full return shape, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, then idempotency, then the alternative, then the type glossary. The bulleted type list is long but earns its place since the schema enum names alone are unexplained. Slightly verbose but no wasted flourishes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with an output-less schema, the description covers purpose, idempotency, sibling routing, and enum semantics, which is close to complete. Minor gaps remain around permission requirements and what exactly 'la devuelve' returns, but nothing critical for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3, but the description adds meaning the schema lacks by explaining each relation_type enum value (hierarchy, holding, org, area, subarea, team, client, partner) with example semantics. This meaningfully enriches the otherwise opaque enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Crea una relación entre dos entidades del Atlas') and explicitly distinguishes itself from the sibling change_entity_relation_type for the type-changing case. An agent can tell it apart without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit alternative and condition: if the relation already exists it is left unchanged, and to change its type use change_entity_relation_type. It lacks general when-to-use/when-not context (e.g. prerequisites that both entities must exist), so it falls just short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_task_commentAInspect
Escribe un comentario en una tarea. Queda firmado con el usuario del token, y lo ve todo el que pueda abrir la tarea — incluido quien tenga prestado un tablero donde la tarea entre.
| Name | Required | Description | Default |
|---|---|---|---|
| cuerpo | Yes | El texto del comentario | |
| task_id | Yes | ID numérico de la tarea | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read, non-destructive mutation. The description adds genuinely useful behavioral context beyond that: the comment is attributed to the token's user, and it is visible to anyone who can open the task, including users via a borrowed board. This visibility/attribution detail is not in the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and then the key behavioral facts. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple append-style mutation with fully documented parameters and no output schema requirement, the description covers what an agent needs: what it does, who it is attributed to, and who can see it. Only minor gaps (e.g., edit/delete semantics of the comment) remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for cuerpo, task_id, and workspace_id (including the 'omit if token has fixed workspace' hint). The description adds no parameter-level detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Escribe un comentario en una tarea") that is unambiguous and clearly distinct from the read sibling get_task_comments. An agent knows exactly what the tool creates without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's purpose implies when to reach for it (adding commentary to a task), but there is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named. Usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_artifactAInspect
Agrega contenido AL FINAL de un artefacto ya guardado, sin retipearlo. Para lo que crece por abajo: una sección nueva, una fila más, una entrada de log.
El contenido va como HTML (es lo que hay guardado) y se inserta justo antes de `</body>`, que es donde tiene que ir para que la página siga siendo válida; si el archivo no tiene `</body>`, se pega al final.
Para cambiar algo que YA está escrito, patch_artifact. Para reemplazar el artefacto entero, save_artifact.| Name | Required | Description | Default |
|---|---|---|---|
| nota | No | Qué se agregó, en una línea. Se lee en el historial. | |
| contenido | Yes | El HTML que se agrega al final | |
| artifact_id | Yes | ID del artefacto | |
| base_version | No | Exigir que la versión viva sea esa; si no, se rechaza. | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (non-read-only, non-destructive, closed-world). Beyond that, the description discloses the actual write mechanic: HTML is inserted immediately before `</body>`, and appended at the end when no `</body>` exists. That is real behavioral context an agent could not infer. It does not discuss permissions, version conflicts beyond the schema-documented base_version, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short paragraphs, front-loaded with the core action and followed by the formatting constraint and the alternative tools. Minimal waste; the trailing alternatives sentence is load-bearing rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, five params fully documented in the schema, and annotations carrying safety, the description covers the remaining burden: what gets written, where it lands, and which sibling to pick instead. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning on top: it clarifies contenido must be HTML because that is the stored format, and explains where that HTML lands relative to `</body>` — semantics the schema field text alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (agregar), resource (artefacto) and scope (AL FINAL, sin retipearlo), plus concrete examples of the growth patterns it serves. It explicitly names the two sibling tools it is not: patch_artifact and save_artifact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing rules: use patch_artifact to change text that already exists, save_artifact to replace the whole artifact. Also enumerates positive cases (new section, extra row, log entry), so both when-to-use and when-not-to-use are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_documentAInspect
Agrega contenido (markdown) al FINAL de un documento, sin reenviar lo que ya tiene. Devuelve el resumen del documento resultante.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Lo que se agrega, en markdown | |
| document_id | Yes | ID del documento | |
| base_version | No | updated_at con el que se leyó el documento | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it is a non-destructive, non-open-world write. The description adds that it appends at the end and returns the resulting summary, but omits conflict/concurrency behavior (what happens when base_version is stale), permission requirements, and error semantics for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, zero filler, with the append-at-end scope front-loaded before the return-value note. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations carry the safety profile and the description covers the return value (the document summary), so the essentials are present. The remaining gap is the concurrency/conflict story around base_version, which an agent would need to call this correctly in a multi-writer setting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents content, document_id, base_version and workspace_id. The description only echoes that content is markdown and that existing content is not resent; it adds no meaning to base_version (optimistic-locking token) or workspace_id resolution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Agrega contenido ... al FINAL de un documento') plus the key semantic distinction that existing content need not be resent, which implicitly separates it from update_document/patch_document. It never names the alternative tools explicitly, so an agent must still infer the boundary against append_artifact or patch_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'sin reenviar lo que ya tiene' hints this is preferred over a full rewrite, but there is no explicit when-to-use/when-not guidance and no mention of append_artifact or patch_document as alternatives in a sibling list full of overlapping document tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
associate_document_entityCInspect
Vincula una entidad del knowledge graph a un documento
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | ID de la entidad | |
| document_id | Yes | ID del documento | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that restatement: it does not say whether linking is idempotent, what happens if the association already exists, or whether it requires the entity to pre-exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero waste and the core action front-loaded. It is arguably too sparse, but there is no filler to penalize.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter link operation with no output schema, the description is minimally adequate. It leaves gaps around return values and duplicate-association behavior that an agent might want when invoking a mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both required IDs and the optional workspace_id are fully documented in the schema, including the 'omit if the token has a fixed workspace' nuance. The description adds no parameter meaning beyond that, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Vincula') and both resources (a knowledge graph entity and a document), so the agent immediately knows this creates a link. It does not explicitly name the inverse sibling dissociate_document_entity, but the action itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the dissociate_document_entity alternative for unlinking. The agent must infer the context entirely from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bienvenidaARead-onlyInspect
Dibuja la bienvenida de una cuenta NUEVA: la tarjeta con las tres preguntas para dejar armado su workspace (cómo se llama, para qué lo va a usar, qué quiere hacer primero). Se contesta tocando, no escribiendo.
Llamala UNA vez, antes que cualquier otra cosa, cuando el Secondbrain esté vacío (las instrucciones del servidor lo dicen). Si ya se hizo, devuelve por dónde seguir y no dibuja el formulario.| Name | Required | Description | Default |
|---|---|---|---|
| idioma | No | Idioma de la persona (default: es) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safe-read profile is covered structurally. The description adds real context beyond that: the tool is a one-shot onboarding trigger, it returns guidance instead of re-drawing on subsequent calls (idempotency), and its interaction model is tap-based. It stops short of describing the return payload shape in any detail, keeping it at 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs, front-loaded with the purpose before the invocation rule. Nearly every clause earns its place, though the parenthetical 'las instrucciones del servidor lo dicen' is redundant rationale that could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description supplies the key return behavior an agent needs (guidance on where to proceed if already run). For a zero-required-parameter onboarding tool with full schema coverage and clear annotations, this covers what is needed; only the exact return format remains implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (idioma, workspace_id) are already documented in the schema, so the baseline is 3. The description adds nothing about parameter behavior — no mention of language selection, workspace resolution, or the default 'es' behavior — so it neither helps nor harms.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Dibuja la bienvenida de una cuenta NUEVA') and details the artifact it produces: a card with three concrete workspace-setup questions, answered by tapping rather than writing. This is clearly distinguishable from siblings like configurar_workspace, which would be the tool that actually persists settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger and ordering constraint: call it ONCE, before anything else, when the Secondbrain is empty, with the rationale that server instructions say so. It also names the when-not condition ('si ya se hizo, devuelve por dónde seguir y no dibuja el formulario'), so the agent knows the outcome of a redundant call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_reminderADestructiveInspect
Da de baja un recordatorio: borra la fila del cron, saca la marca de hora de la línea en la nota —que es la fuente de verdad— y despeja el aviso de la tarea si colgaba de una. El texto de la nota queda; lo que se va es el aviso.
| Name | Required | Description | Default |
|---|---|---|---|
| reminder_id | Yes | ID del recordatorio (de get_reminders) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description adds crucial context beyond that: it specifies that it deletes the cron row, removes the timestamp from the note, and clears the task notice, while explicitly stating the note text remains. This precisely defines the destructive scope, which is the key behavioral information an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action in the first clause and then details side effects. It is efficient, though the first sentence is long and could be broken for readability; still, every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive mutation with no output schema and full schema coverage, the description covers the key side effects and what remains. It does not cover error handling or reversibility, but annotations already flag destructiveness, so it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents reminder_id and workspace_id. The description adds no parameter-specific details, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Da de baja') and resource ('un recordatorio') and details exactly what it does: deletes the cron row, removes the timestamp from the note, and clears the task notice. However, it does not explicitly differentiate from sibling tools like update_reminder or get_reminders, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There are no prerequisites, conditions, or named alternative tools mentioned. The description only explains what the tool does, not when or why to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
change_entity_relation_typeADestructiveInspect
Cambia el tipo de una relación que ya existe entre dos entidades del Atlas.
Tipos de relación:
- hierarchy: relación jerárquica genérica (A es parte de B)
- holding: relación holding/subsidiaria
- org: A pertenece a organización B
- area: A es área dentro de B
- subarea: A es sub-área de B
- team: A es equipo de B
- client: A es cliente de B
- partner: A es partner/socio de B| Name | Required | Description | Default |
|---|---|---|---|
| to_entity_id | Yes | ID de la entidad destino (el 'to' de la relación) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| relation_type | Yes | Tipo nuevo de la relación | |
| from_entity_id | Yes | ID de la entidad origen (el 'from' de la relación) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a destructive, non-read-only mutation. The description adds useful meaning for the relation-type values but does not describe permissions, side effects, reversibility, or error behavior beyond what the annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in one sentence, followed by a relevant reference list for the enum values. The list is long but directly useful and contains no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a focused mutation tool with full schema description coverage and destructive annotations, the definition is largely complete. It could say more about failure conditions or consequences, but it covers the key operation and relation-type meanings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds value by explaining the semantic meaning of each relation_type enum value, which the schema does not do.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it changes the type of an existing relation between two Atlas entities. The phrase 'que ya existe' also distinguishes it from sibling tools that add or delete relations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly implies when to use the tool: to change the relation type of an already existing relation. It does not explicitly name alternatives such as add_entity_relation or delete_entity_relation, but the existing-relation condition provides enough context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_day_noteAInspect
Cierra el día, igual que el botón «Cerrar día» de la app pero sin su asistente: registra el cierre, convierte los recordatorios con "⏰" en tareas con su hora y deja la nota de sólo lectura. Las tareas provisorias del día (get_declared_tasks) NO se crean al cerrar desde acá —en la app las confirma el asistente—: si hacen falta, create_task antes de cerrar. Para reabrirlo: reopen_day_note.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Fecha en formato YYYY-MM-DD | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, destructiveHint=false, openWorldHint=false; the description goes well beyond that by enumerating the actual side effects — registering the close, converting "⏰" reminders into timed tasks, flipping the note to read-only — and by disclosing a non-obvious omission (declared tasks are not materialized here, unlike in-app). It also frames the operation as non-destructive but effectively irreversible except via reopen.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the app analogy, then the caveats, then the inverse operation — a logical order with no filler. It is somewhat dense and run-on (em-dash aside plus three tool references in five lines), which costs it the top mark.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param, no-output-schema mutation tool, the description covers triggers, side effects, the ordering constraint with create_task, and the undo path. It stops short of stating the response shape or what happens if the day is already closed / an invalid date is passed, which are the remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (date as YYYY-MM-DD, workspace_id as UUID-or-name) are fully documented in the schema itself. The description adds no format, defaulting, or resolution semantics beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Cierra el día") and immediately anchors it to the analogous in-app button, while naming three siblings by name (get_declared_tasks, create_task, reopen_day_note). An agent can distinguish this from write_daily_note or reopen_day_note without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit prescriptive guidance: provisional tasks from get_declared_tasks are NOT created here, so "si hacen falta, create_task antes de cerrar", and reopening is routed to reopen_day_note. This is a clear when-to-use / what-to-do-first / alternative-tool statement rather than inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_taskAInspect
Da una tarea por terminada: pasa a completed y le escribe completed_at.
Usar cuando la persona confirma que la hizo, no cuando lo parece. Para
desmarcarla va rollback_task, que además limpia la fecha de cierre — con
update_task la tarea vuelve al radar arrastrando el día en que se cerró.| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ID numérico de la task | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, and the description is consistent with a write operation. It adds real value beyond them by naming the exact state transition and the timestamp side effect ('le escribe completed_at'), plus a warning that update_task preserves the stale closing date. It stops short of describing the response or idempotency behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action and its side effect in the first sentence, then spends the remaining space entirely on disambiguation that prevents a wrong tool choice. No filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with full schema coverage, annotations, and no output schema, nothing essential is missing: what changes, when to call it, and which sibling handles the inverse case are all present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: task_id and workspace_id are both documented in the schema, including the fallback of using the workspace name. The description adds no parameter-level detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource: marks the task as `completed` and writes `completed_at`. The effect is fully specified so an agent can distinguish it from update_task and rollback_task without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger condition ('cuando la persona confirma que la hizo, no cuando lo parece') and routes to alternatives: rollback_task for un-completing (which also clears the closing date) and update_task, whose drawback is explained. Both when-to-use and when-not-to-use are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configurar_workspaceAInspect
Deja armado el workspace de una cuenta nueva con lo que la persona contestó en la bienvenida: lo renombra (si es dueño o admin), guarda para qué lo usa y qué quiere hacer primero, y escribe una primera nota de bienvenida en el Diario de hoy.
La tarjeta de bienvenida la llama sola. Llamala vos sólo si el cliente no dibuja tarjetas y la persona te contestó por escrito.| Name | Required | Description | Default |
|---|---|---|---|
| uso | No | personal | trabajo | estudio | equipo | |
| foco | No | Qué quiere hacer primero: notas, tareas, reuniones, calendario | |
| idioma | No | Idioma de la persona (default: es) | |
| nombre | No | Cómo quiere llamar a su espacio | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, closed-world operation, so the safety profile is covered. The description adds real behavioral context beyond that: the rename only happens if the caller is owner or admin, and it has the side effect of creating a Diary note for today. It stops short of saying what happens on re-invocation or whether an existing workspace name is overwritten.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight paragraphs: the first front-loads what the tool does, the second front-loads the calling condition. Every sentence carries information an agent needs, with no filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a composite mutation tool with no output schema and five optional parameters, the description covers purpose, trigger condition, and the permission constraint on renaming. It is missing only edge-case behavior (idempotency, what happens when the workspace is already configured, or what the response contains), which keeps it short of a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, and the baseline for that situation is 3. The description loosely maps 'para qué lo usa' to uso and 'qué quiere hacer primero' to foco, but adds no format, enum, or default detail beyond what the schema provides, and says nothing about workspace_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete verb and resource and enumerates the composite effects: renaming the workspace, saving usage and focus, and writing a welcome note in today's Diary. It is immediately distinguishable from siblings like update_workspace or write_daily_note because it is an onboarding bundle triggered by the welcome flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states explicitly that the welcome card invokes it automatically and that the agent should call it only when the client does not render cards and the person answered in writing. That is an explicit when-to-use plus a when-not-to-use condition, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_meeting_actionableAInspect
Convierte un accionable de un recap en tarea, o deshace esa confirmación: lo mismo que tildarlo en el recap de la app.
· accept (default): nace la tarea con el título, la fecha, el responsable,
el proyecto y la organización que detectó el recap, atada al recap y
privada de quien la confirma. Si la reunión dijo una hora, además suena
como recordatorio. Si ya se había confirmado y se deshizo, vuelve LA
MISMA tarea, con lo que se le haya editado.
· undo: la tarea se va y el accionable vuelve a quedar por confirmar.
Los ids salen de get_meeting_actionables. Es una escritura: se hace cuando
la persona lo pide o lo confirma.| Name | Required | Description | Default |
|---|---|---|---|
| action | No | accept (default) crea la tarea; undo la deshace | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| actionable_id | Yes | ID del accionable (de get_meeting_actionables) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond readOnlyHint=false by disclosing what the created task inherits (título, fecha, responsable, proyecto, organización), that it is tied to the recap and private to the confirmer, that a meeting time becomes a reminder, and that undo removes the task and re-exposes the actionable. The undo/redo restoration detail clarifies why destructiveHint=false is reasonable. Missing permissions/error behavior keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core purpose is front-loaded in the first sentence, then bullets elaborate accept/undo behavior. Length is justified by the branch semantics, though the bulleted prose is slightly heavier than strictly needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param write with no output schema and safety covered by annotations, the description is thorough about effects and reversibility. It never states what the call returns (e.g., the new task id), which would have been useful in the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds real meaning beyond the schema's terse enum note by spelling out the effect of accept (task birth with inherited fields) and undo (task removal, actionable returns), plus noting accept is the default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('convierte un accionable de un recap en tarea, o deshace esa confirmación') and clarifies that the tool also handles undo, which the name alone does not convey. Distinguishable from siblings like dismiss_meeting_actionable and get_meeting_actionables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the upstream source for ids ('los ids salen de get_meeting_actionables') and frames this as a write invoked 'cuando la persona lo pide o lo confirma'. It does not, however, contrast against the discard sibling dismiss_meeting_actionable, so the when-not is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_documentAInspect
Copia un documento (nombre y contenido, sin sus hijos) a otro workspace —o al mismo—, en el servidor: el contenido no pasa por el modelo. Usar cuando el mismo documento tiene que estar en dos workspaces: crear uno y copiarlo, en vez de generarlo dos veces. Las imágenes siguen apuntando a los archivos del workspace de origen.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Nombre de la copia (default: el mismo) | |
| document_id | Yes | ID del documento a copiar | |
| workspace_id | No | UUID del workspace de ORIGEN | |
| destino_workspace_id | Yes | UUID o nombre del workspace de destino | |
| destino_parent_document_id | No | Documento padre en el destino (omitir = raíz) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely non-obvious behavior: the copy runs server-side without the content passing through the model, children are NOT copied, and image references still point at the origin workspace's files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and scope before the usage rule and the image caveat. Every sentence carries distinct information, though the image note could arguably be folded in more tightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still conveys what the operation does and its side effects (no children, preserved image pointers, server-side execution). It does not state the response shape or what happens on a name collision in the destination, leaving minor gaps for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including defaults and the 'omitir = raíz' behavior for destino_parent_document_id. The description adds only the aggregate statement that name and content are copied, not per-parameter syntax or format detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (copiar un documento) plus the exact scope: nombre y contenido, sin sus hijos. It also specifies destination flexibility (otro workspace —o al mismo—) and the server-side execution model, which distinguishes it from create_document and move_document among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use condition ('cuando el mismo documento tiene que estar en dos workspaces') and a recommended workflow (crear uno y copiarlo en vez de generarlo dos veces). It never names move_document as the contrasting alternative, so the routing guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_canvasCInspect
Crea un nuevo canvas en el workspace
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nombre del canvas | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| parent_document_id | No | ID del documento padre (opcional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context beyond restating that an object is created — no note about name uniqueness, permissions, workspace resolution fallback, or what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity borders on under-specification rather than optimal sizing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage, annotations, and only three flat parameters, the description is minimally sufficient to invoke the tool. It nonetheless omits what is returned (no output schema exists) and any confirmation the canvas was created in the intended workspace.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a useful explanation of workspace_id accepting a UUID or a user-spoken workspace name. The description itself adds no parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("Crea un nuevo canvas") and scopes it to the workspace, so an agent can distinguish it from sibling creators like create_document or create_clip. However, it offers no explicit differentiation from those siblings beyond the word "canvas".
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as create_document or create_clip. The agent must infer entirely from the tool name that this is the right choice for canvas creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_clipADestructiveInspect
Guarda una página web como clip, igual que pegar una URL en la app: el servidor baja la página, la limpia y la IA la entiende (resumen y puntos clave aparecen en unos segundos, vía get_clip). Reclipear la misma URL NO duplica: actualiza el clip existente.
Para un texto que no es una página (una nota, una cita) no uses clips: es un
documento (create_document) o una línea del Diario.| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL http(s) de la página | |
| note | No | Una nota propia sobre por qué se guardó | |
| title | No | Título; si falta, el de la página | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| parent_document_id | No | Documento bajo el que cuelga el clip |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and openWorldHint=true, and the description usefully adds behavior beyond them: processing is asynchronous with summary/key points appearing 'in a few seconds' and read back via get_clip, and re-clipping the same URL updates rather than duplicates. What it does not clarify is what the destructive hint actually means in practice — e.g. that re-clipping overwrites existing note/title/workspace metadata on the prior clip — nor any auth or rate characteristics for the outbound fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight paragraphs: purpose plus async/idempotency behavior first, then the anti-pattern routing. Front-loaded and free of filler. The parenthetical 'resumen y puntos clave aparecen en unos segundos, vía get_clip' is slightly dense but earns its place by telling the agent results are not returned inline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter create tool with full schema coverage, annotations for the safety profile, and no output schema, the description covers what an agent needs: what it does, that results arrive later via get_clip, that repeat URLs update instead of duplicating, and where to route non-page text. Remaining gaps (exact destructive semantics) are secondary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (url, note, title, workspace_id, parent_document_id) are already documented in the schema, including the title fallback to the page title. The description adds no parameter-level guidance (e.g. how workspace_id resolution interacts with the URL identity used for de-duplication), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource (save a web page as a clip) and immediately explains the mechanism: server fetches, cleans, and the AI summarizes, retrievable via get_clip. It also distinguishes itself from the near-miss siblings by name (create_document, Daily line), so an agent can choose without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives both a positive trigger (a URL that is a web page, same as pasting into the app) and an explicit negative trigger (text that isn't a page — notes, quotes) with the correct alternative tools named (create_document, diary line). Nothing is left to inference about when to pick this over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_deliverableAInspect
Crea un entregable. Para colgarle tareas, pasá su id en deliverable_id al crear o actualizar cada tarea.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Qué se entrega | |
| status | No | Estado inicial | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is a non-readonly, non-destructive write operation. The description adds a useful behavioral detail about using the created deliverable's id to link tasks, but does not disclose return format, idempotency, or permission requirements. With annotations covering safety, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action followed by a relevant integration tip. No wasted words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple create tool with complete parameter descriptions and annotations, the description plus structured data are sufficient. It covers the essential post-creation step, though it could explicitly mention that the created deliverable's id is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds no meaning beyond the schema for name, status, or workspace_id; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Crea un entregable' (Creates a deliverable). It does not explicitly differentiate from siblings like update_deliverable or get_deliverables, but the create action is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a usage hint for linking tasks after creation ('pasá su id en deliverable_id...'), but does not state when to use this tool versus alternatives like update_deliverable. Usage is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_documentAInspect
Crea un nuevo documento en el workspace. Acepta markdown (títulos, negritas, listas, tablas, citas, código) y lo convierte a formato del editor; si el contenido ya viene en HTML se guarda tal cual. Cada renglón es un bloque: los renglones seguidos NO se juntan en un párrafo. Un bloque ```mermaid es un DIAGRAMA: se dibuja solo al abrir el documento. Para crear sub-documentos (jerarquía), proveer parent_document_id.
Si el contenido ya existe como ARCHIVO (lo bajaste, lo generó un script) o pesa más de ~20 KB, no lo mandes en content: start_document_upload lo sube por curl sin pasar por el modelo. Para cambiar una parte, patch_document; para agregar al final, append_document. Para el MISMO documento en otro workspace: copy_document, no lo vuelvas a generar.
Devuelve un resumen (bytes, bloques, tablas, títulos en orden, sha256) para verificar sin releer.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Título del documento | |
| content | No | Contenido del documento en markdown (o HTML ya armado, que pasa intacto). | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| parent_document_id | No | ID del documento padre para crear un sub-documento dentro de otro |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly=false, destructive=false, openWorld=false), yet the description adds real behavioral context: markdown→editor conversion, HTML passthrough, line-as-block semantics, mermaid rendering on open, and the returned resumen contents. This is substantive disclosure beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and content semantics, then alternatives and return value. Dense and largely every sentence earns its place, though it is on the longer side and could tighten the mermaid/block detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description explains the return value (resumen with bytes, blocks, tables, ordered titles, sha256) enabling verification without re-reading. Combined with alternative routing and content-format rules, it is complete for calling correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters. The description still adds meaning: content accepts markdown or HTML and how each line maps to blocks, and it reinforces parent_document_id for hierarchy. Useful but partly redundant with 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Crea un nuevo documento en el workspace') and immediately establishes scope with format-conversion behavior. It actively distinguishes itself from siblings like patch_document, append_document, copy_document and start_document_upload.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use start_document_upload for existing files or >20KB content, patch_document to change a part, append_document to add at the end, copy_document for the same document in another workspace. Names when-not and the exact alternative for each case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_eventAInspect
Crea un evento en el calendario de la persona.
Si tiene un calendario sincronizado (Outlook, Google, Apple) el evento se
crea POR ÉL —en el proveedor, con lo que eso implica— y no en el calendario
local del workspace. Con varios, elige el que mejor aplica: el que la
persona nombre en `calendar` («Outlook», «Google», el nombre o el mail
del calendario) o, sin pedido, el marcado como destino por defecto. Sólo si
no hay ningún calendario sincronizado queda LOCAL (lo ven los miembros del
workspace). La respuesta dice en qué calendario quedó.
Sin hora es un evento de día completo, que es el default. Con `start_time`
pasa a tener horario.| Name | Required | Description | Default |
|---|---|---|---|
| color | No | Color del evento si queda local: un nombre como 'blue' o un hex '#3b82f6'. En un calendario sincronizado manda el color del calendario | |
| title | Yes | Título del evento | |
| calendar | No | En qué calendario sincronizado: 'Outlook', 'Google', el nombre o el mail del calendario. Omitir = el destino por defecto de la persona (nunca el local si hay uno sincronizado) | |
| end_date | No | Día de fin, YYYY-MM-DD (para eventos de varios días) | |
| end_time | No | Hora de fin 'HH:MM' | |
| start_date | Yes | Día, YYYY-MM-DD | |
| start_time | No | Hora de inicio 'HH:MM' (omitir = día completo) | |
| description | No | ||
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-destructive/non-readOnly/openWorld=false, so the bar is lower; the description still adds meaningful behavior: provider-side creation, workspace visibility of LOCAL events, and that the response reports the resulting calendar. It omits what "con lo que eso implica" concretely entails (invites/notifications) and any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then routing, then defaults; most sentences earn their place. Slightly long and partly restates schema semantics ("Sin hora es un evento de día completo"), but structure is logical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, it covers destination routing, visibility implications, fallback behavior, and the response payload. Remaining gaps (attendees, errors, duplicates) are minor given the tool has no attendee parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 89%, so the schema already documents `calendar`, `color`, `start_time`, etc. The description reinforces the all-day-vs-timed default tied to `start_time`, but adds little syntax or format detail beyond the schema — baseline 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Crea un evento en el calendario de la persona") and immediately scopes where the event actually lands (synced provider vs local workspace calendar). An agent can distinguish this from create_meeting/update_event on the resource alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete selection logic: pick the synced calendar named in `calendar`, otherwise the default destination, and fall back to LOCAL only when no synced calendar exists. Solid context, but no explicit when-not guidance or named alternatives (e.g., update_event vs create_event).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_meetingCInspect
Crea una nueva reunión
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Fecha ISO (YYYY-MM-DD o timestamp) | |
| name | Yes | Nombre/título de la reunión | |
| summary | No | Resumen de la reunión | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| transcription | No | Transcripción | |
| meeting_type_id | Yes | ID del tipo de reunión | |
| meeting_group_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the write/non-destructive nature is covered structurally. The description adds nothing beyond that - no mention of permissions, what happens on duplicate names, or whether the creation is reversible - so it contributes no behavioral value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no waste and nothing buried, but the brevity reflects under-specification rather than disciplined conciseness. There is no structure to front-load because there is only one clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, 3-required creation tool with no output schema, the description says nothing about required fields, the workspace_id fallback behavior ('omit if token has a fixed workspace'), or what a successful call returns. Annotations only cover the safety profile, leaving substantial behavioral gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 86% across 7 parameters, so the schema itself documents date, name, summary, workspace_id, and transcription thoroughly. The description adds no parameter-level detail, so the baseline 3 for high-coverage schemas applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb plus resource ('Crea una nueva reunión'), which is marginally clearer than the bare tool name, but it is essentially a natural-language restatement of create_meeting. It offers no differentiation from closely related siblings such as create_event, create_meeting_type, or create_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (e.g. a valid meeting_type_id or workspace context), and no routing to alternatives like create_event. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_meeting_typeCInspect
Crea un nuevo tipo de reunión en el workspace
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nombre del tipo de reunión | |
| description | No | ||
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the write/safe profile is covered. The description only adds 'en el workspace' scoping and nothing about side effects, validation, or whether creating a duplicate type is possible; with annotations carrying the safety load, the added value here is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It is appropriately terse, though so brief that it borders on under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple create operation with annotations covering safety and no output schema, the essentials are present. Still, it never explains what a 'meeting type' is or how it relates to update/delete_meeting_type, leaving the agent to rely on the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, and the schema itself notably documents workspace_id in detail (UUID or user-spoken name, omit if token has fixed workspace). The description adds no parameter meaning, so it sits at the baseline for partial coverage rather than compensating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Crea un nuevo tipo de reunión'), so the agent knows exactly what is created. However, it offers no differentiation from siblings like create_meeting, create_event, or update_meeting_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus create_meeting or update_meeting_type, nor any prerequisites or exclusions. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskAInspect
Crea una tarea en el workspace. Nace pending, con source_type: 'mcp'.
RESPONSABLE — `assignee` es UNA persona del Atlas (nombre canónico o id) y
es lo que contesta "¿de quién es?". No es lo mismo que `people`, que son
las personas RELACIONADAS (aparecen en la nota, hay que avisarles), ni que
`owner` ('yo' | 'otro'), que dice si se delegó pero no a quién. Se valida
que la persona sea de ESTE workspace: un responsable de otro no se ve en
ningún tablero de éste y quedaría una tarea con dueño invisible.
FECHA vs HORA — `due_date` es el día en que vence. Si además pasás
`remind_time` ("HH:MM", en la zona del usuario), la tarea se vuelve un
RECORDATORIO: suena el teléfono a esa hora. Eso escribe tres cosas —la
línea en la nota del día, su segmento y la fila del cron—, porque guardar la
hora en la tarea NO la hace sonar: el cron mira la tabla `reminders` y nada
más, y la línea de la nota es la fuente de verdad (borrarla cancela el
aviso). Si la hora ya pasó, la tarea se crea igual y la respuesta avisa que
el aviso no se programó — prometer uno que no puede sonar es peor que no
prometerlo.
TRAMO — `start_date`/`end_date` es cuánto dura en la línea de tiempo.
Declararlo fija también `due_date` igual al fin, para que la barra y la
pastilla de la lista no digan cosas distintas. Sin tramo la tarea se dibuja
como un rombo en su vencimiento, que es lo correcto: "dura un día" no lo
dijo nadie.
BACKLOG — `backlog: true` la deja pendiente pero fuera del radar. No es un
estado: convive con `pending`.
PRIVADA — `private: true` la saca de todo listado compartido: no entra en
ningún tablero ni siquiera incluida a mano. Una privada tampoco sube a
ClickUp ni a Jira.
DÓNDE VIVE — por defecto la tarea nace en Secondbrain y, si el workspace
tiene una lista de ClickUp o un proyecto de Jira "por defecto", sube sola
ahí (la respuesta lo dice en `destino_externo`). Para decidirlo:
· `jira_project` — "creala en Jira": clave, nombre o id del proyecto.
· `clickup_list` — "en ClickUp / en la lista UBI": nombre o id de la lista.
· `solo_en_secondbrain: true` — que NO suba a ninguna herramienta.
Se pasa UNO. Si no se sabe cómo se llama el destino, get_task_destinations
los lista. La sube la sync en segundos con la conexión del workspace.| Name | Required | Description | Default |
|---|---|---|---|
| owner | No | ¿La hago yo o está delegada? No dice a quién — para eso está assignee | |
| title | Yes | Título descriptivo de la tarea | |
| people | No | Personas RELACIONADAS (nombres canónicos del Atlas). No es el responsable. | |
| urgent | No | Marcarla urgente a mano, más allá de lo que diga la fecha | |
| backlog | No | Apartarla del radar sin dejar de estar pendiente | |
| private | No | No se comparte a ningún tablero, nunca | |
| urgency | No | Sólo se usa si no hay due_date: con fecha, la urgencia se deriva de ella | |
| assignee | No | Responsable: nombre canónico de la persona en el Atlas, o su id numérico | |
| due_date | No | Vencimiento, YYYY-MM-DD | |
| end_date | No | Fin del tramo, YYYY-MM-DD (fija due_date al mismo día) | |
| projects | No | Nombres canónicos de proyectos del Atlas | |
| start_date | No | Inicio del tramo, YYYY-MM-DD | |
| description | No | Contexto, notas, o qué hay que hacer exactamente | |
| remind_time | No | Hora del aviso, 'HH:MM' en la zona del usuario. Requiere due_date. Convierte la tarea en recordatorio. | |
| clickup_list | No | Crearla también en ClickUp: nombre o id de la lista. Ver get_task_destinations | |
| jira_project | No | Crearla también en Jira: clave («SB»), nombre o id del proyecto. Ver get_task_destinations | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| organizations | No | Nombres canónicos de organizaciones del Atlas | |
| deliverable_id | No | Entregable al que pertenece (ver get_deliverables) | |
| solo_en_secondbrain | No | No subirla a ClickUp ni a Jira, ni siquiera a la lista por defecto |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the annotations (which only say non-readonly, non-destructive, closed-world): remind_time writes three places, the cron only reads the `reminders` table, the daily-note line is the source of truth and deleting it cancels the alert, a past time still creates the task but reports the reminder was not scheduled, and private tasks never sync to ClickUp/Jira. This is exactly the side-effect and edge-case context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long, but front-loaded and organized into labelled sections (RESPONSABLE, FECHA vs HORA, TRAMO, BACKLOG, PRIVADA, DÓNDE VIVE) so an agent can scan it. A few clauses are discursive (the justification for why storing the hour alone is not enough), though they carry genuine behavioral value rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter mutation tool with no output schema, the description covers the failure modes an agent must know (validation of the assignee against the workspace, reminder not scheduled when the time has passed) and even names the response field that reports external sync (`destino_externo`), so nothing essential is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline would be 3, but the description adds real meaning: the assignee vs people vs owner distinction (owner says delegation but not to whom; the assignee must belong to this workspace or the task gets an invisible owner), and the due_date/remind_time and start_date/end_date/due_date interactions. It also states the one-of constraint among jira_project/clickup_list/solo_en_secondbrain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ("Crea una tarea en el workspace") and immediately states the resulting initial state (`pending`, `source_type: 'mcp'`). It is clearly distinguishable from siblings like update_task, complete_task, and get_task_destinations, which are either named or implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit conditional guidance for the trickiest choices: which destination parameter to pass ("Se pasa UNO") and where to look if the destination name is unknown ("get_task_destinations los lista"). It explains when remind_time converts a task into a reminder and when urgency vs due_date applies, but never states the general 'use this instead of update_task/get_tasks' framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_artifactBDestructiveInspect
Borra un artefacto del workspace (queda fuera de la lista; los archivos de sus versiones no se tocan).
| Name | Required | Description | Default |
|---|---|---|---|
| artifact_id | Yes | ID del artefacto | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the safety profile is known. The description adds genuine value beyond that by specifying what is and is not destroyed: the artifact leaves the list, but the files of its versions are untouched. It stops short of stating whether the deletion is recoverable via trash.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the destructive verb first and the scope caveat in parentheses. No wasted words; the parenthetical earns its place by preventing a wrong assumption about version files.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers what gets destroyed, and annotations cover safety. However, recoverability (the existence of get_trash/restore_from_trash) and any permission prerequisites are not mentioned, leaving a gap an agent might care about before deleting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so artifact_id and workspace_id are fully documented in the schema, including the workspace-name fallback. The description adds no parameter syntax or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Borra un artefacto del workspace') and the parenthetical clarifies the exact scope of removal. It does not explicitly distinguish itself from the many delete_* siblings (delete_document, delete_clip, delete_canvas), but the artifact-specific scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of alternatives such as patch_artifact (soft edit), restore_from_trash, or get_trash. Usage is only implied by the verb 'Borra'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_canvasADestructiveInspect
Manda un canvas a la papelera, como la app: se recupera con restore_from_trash.
| Name | Required | Description | Default |
|---|---|---|---|
| canvas_id | Yes | ID del canvas | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false and a closed world, so the safety profile is covered. The description adds real value beyond that: the operation is reversible via restore_from_trash and mirrors in-app behavior, which clarifies that 'destructive' here means trashed, not permanently erased.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the operation and its scope. 'como la app' carries little load but does convey behavior parity, so it is not wasted enough to drop below a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter soft delete, the description plus annotations plus a fully documented schema cover what an agent needs: what it does, that it is reversible, and where to undo it. No output schema is needed since the return is trivial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both canvas_id and workspace_id documented in the schema itself, including the workspace name-or-UUID flexibility. The description adds no parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Manda un canvas a la papelera'), so an agent can tell it apart from the many sibling delete_* tools by the canvas resource alone. It stops short of explicitly naming those siblings, so it falls just under a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of 'se recupera con restore_from_trash' points at the recovery path and implies this is a soft delete, which is genuinely useful routing context. However, it never says when to choose this over delete_document/delete_clip or when not to use it, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_clipADestructiveInspect
Manda un clip a la papelera, como la app: se recupera con restore_from_trash (tipo clip).
| Name | Required | Description | Default |
|---|---|---|---|
| clip_id | Yes | ID del clip (de get_clips) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation profile is covered. The description adds genuinely new behavioral context beyond that: the operation is soft/reversible and the recovery tool plus type argument needed to undo it, which an agent cannot infer from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence carrying the action, the recoverability caveat, and the recovery tool. "como la app" is the only near-filler phrase but it conveys behavioral parity, so nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, 2-parameter tool with no output schema, the definition covers what the agent most needs: what happens (trash, not purge) and how to reverse it. It could still note side effects on related entities or permissions, but the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (clip_id, workspace_id) are fully documented in the schema, including the tip to source clip_id from get_clips. The description adds no parameter-level detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Manda un clip a la papelera") and pins the target type to clip, which cleanly separates it from the many other delete_* siblings (delete_document, delete_event, delete_task). The added note that the action mirrors the app makes the effect unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent this is a trash operation, not a hard delete, and names the exact recovery path (restore_from_trash with type clip). That is meaningful routing context, though it stops short of stating when-not to use it (e.g., permanent removal or when the clip should instead be updated).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_documentADestructiveInspect
Manda un documento a la papelera, como el botón de la app: se recupera con restore_from_trash (get_trash lo lista).
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | ID del documento | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, but the description adds the crucial nuance that this is reversible via restore_from_trash, which materially changes how an agent should reason about the destructive hint. It still does not cover authorization requirements or whether attached files/relations are affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the core action and the recovery path, with zero redundant or decorative text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with complete schema coverage, a safety-related annotation set, and no output schema, the description supplies what annotations cannot: the soft-delete semantics and recovery route. Minor gaps remain around side effects on related entities, but nothing blocks correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both document_id and workspace_id are already fully documented in the schema. The description adds no parameter-level syntax, format, or edge-case guidance, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Manda un documento a la papelera') and immediately qualifies the operation as a soft delete, which distinguishes it from permanent deletion siblings like delete_document_file. Naming restore_from_trash and get_trash lets an agent place it correctly without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: this is the trash action, and recovery is done via restore_from_trash while get_trash enumerates trash contents. It effectively routes the agent to the right follow-up tool, but does not explicitly state when not to use it (e.g., vs. permanent deletion or vs. delete_document_file).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_document_fileCDestructiveInspect
Elimina un archivo del workspace
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | ID del archivo | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: it does not say whether the file is permanently deleted or moved to trash, whether it can be recovered, or what permissions are required — all material facts given sibling tools get_trash and restore_from_trash exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero filler and the action front-loaded. It is appropriately sized, though brevity here comes at the cost of the missing behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, irreversible-looking delete with no output schema, the description omits the essentials an agent needs: whether deletion is permanent or to-trash, and how it differs from delete_document. The structured fields cover the parameters, but the behavioral gap is significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains file_id and the workspace_id resolution rules in detail. The description adds no additional parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Elimina') and resource ('archivo del workspace'), so the action is unambiguous. However, it does not distinguish this from closely-named siblings such as delete_document, delete_artifact, or delete_clip, so an agent must infer that this targets a file attached to a document rather than a document itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over delete_document, delete_artifact, or when to use restore_from_trash instead. No prerequisites or preconditions (e.g., ownership or admin rights) are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_entityBDestructiveInspect
Elimina una entidad del knowledge graph (relaciones y vínculos eliminados por CASCADE)
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | ID de la entidad a eliminar | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the safety profile is covered. The description adds real value beyond that by disclosing CASCADE semantics — relations and links are removed too — but it says nothing about whether the entity is recoverable, whether it goes to trash, or what permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the destructive cascade consequence in parentheses; nothing redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and annotations covering the destructive profile, the description supplies the key missing behavior (cascade deletion). Only reversibility/trash behavior and routing against siblings are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a detailed workspace_id description covering UUID/name and the fixed-token case, so the schema carries the parameter burden. The description adds no parameter-level detail beyond it, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Elimina una entidad del knowledge graph'), which is clear and unambiguous. It does not distinguish itself from nearby siblings such as delete_entity_relation, merge_entities, or restore_from_trash, but the core action is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to delete an entity versus merging (merge_entities), editing (update_entity/upsert_entity), or recovering it (restore_from_trash). Usage is only implied by the tool name; no alternatives or conditions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_entity_relationADestructiveInspect
Borra la relación entre dos entidades del Atlas. Las entidades no se tocan.
| Name | Required | Description | Default |
|---|---|---|---|
| to_entity_id | Yes | ID de la entidad destino (el 'to' de la relación) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| from_entity_id | Yes | ID de la entidad origen (el 'from' de la relación) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds that entities are not touched, clarifying the scope of destruction. However, it does not mention reversibility, permissions, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no waste; the core action is front-loaded in the first sentence, and the scope clarification follows immediately. It is appropriately sized for a simple deletion tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation, the description covers the action and its scope, and annotations handle the safety profile. However, it lacks usage context (e.g., when to choose this over other relation tools) and any mention of error conditions or irreversibility, leaving gaps for an agent to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (from_entity_id, to_entity_id, workspace_id) are fully documented in the schema. The description adds no parameter-level syntax or format details, which is the baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Borra') and resource ('la relación entre dos entidades del Atlas'), and distinguishes itself from delete_entity by noting that entities are not touched ('Las entidades no se tocan'). This allows an agent to differentiate it from sibling tools that add or change relations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of related tools like get_entity_relations or add_entity_relation. It only states what the tool does, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_eventADestructiveInspect
Borra un evento LOCAL. Los sincronizados se borran en su calendario de origen, no acá.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | UUID del evento | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnly=false, but the description adds genuinely new behavioral context: the call silently does nothing for synced events, which prevents a false-success assumption. It stops short of saying whether deletion is reversible or what happens to linked tasks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler, and the scoping caveat is placed right after the purpose statement where it has the most effect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter delete with full schema coverage and no output schema, the definition covers the main trap. Minor gaps remain on irreversibility and interaction with linked tasks, which matter for a destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both event_id and workspace_id are already documented, including the workspace-name-or-UUID flexibility. The description adds no parameter-level detail beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource ('Borra un evento') and immediately qualifies scope as LOCAL. That distinguishes it from the update_event/create_event siblings, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit exclusion rule: synced events are not deleted here, they must be removed in their source calendar. A clear when-not-to-use signal, but it does not point to any alternative tool or describe prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_meetingADestructiveInspect
Manda un recap/reunión a la papelera, como la app: se recupera con restore_from_trash.
| Name | Required | Description | Default |
|---|---|---|---|
| meeting_id | Yes | ID de la reunión | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds the key nuance that this 'destruction' is a recoverable move to trash, and it names the restore tool. That clarifies the reversibility of the operation beyond the raw annotation, which is genuinely valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste; the scope (to trash) and recovery mechanism are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param tool with full schema coverage and annotations covering the safety profile, the description supplies the missing behavioral nuance (soft delete + restore path). Nothing critical is absent, though it could note that items in trash reappear via restore and whether the meeting can still be updated meanwhile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both meeting_id and workspace_id are already documented. The description adds nothing about parameter formats or ID sourcing, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Manda ... a la papelera') and resource (recap/reunión), and clarifies it is a soft-delete rather than permanent removal. It distinguishes the action from the harder deletes by naming the trash/recovery path, though it never explicitly differentiates from the sibling delete_meeting_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies a trash-based soft delete and points to restore_from_trash as the undo path, which is useful routing. However it gives no explicit when-to-use vs alternatives (e.g. delete_meeting_type, update_meeting) and no prerequisites, leaving usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_meeting_typeCDestructiveInspect
Elimina un tipo de reunión
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| meeting_type_id | Yes | ID del tipo de reunión |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is covered structurally. The description adds nothing beyond that — no mention of cascading effects on existing meetings, irreversibility, or required permissions — leaving behavioral gaps for a genuinely destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, no repetition of the title, and no wasted words. It is arguably too terse for a destructive tool, but there is no structural bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema and no annotations covering consequences beyond a boolean hint, the description should state what deletion implies for dependent meetings. One phrase leaves the agent without the context needed to act safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both meeting_type_id and the optional workspace_id (including the 'omit if token has fixed workspace' hint) are fully documented in the schema. The description adds no parameter detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Elimina') and resource ('tipo de reunión'), so the core action is unambiguous. However, it offers no differentiation from siblings like delete_meeting or update_meeting_type; the agent must rely on the tool name itself to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives (e.g., delete_meeting vs delete_meeting_type), no prerequisites, and no warning about the consequence for existing meetings that reference the type. Usage context is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_reportADestructiveInspect
Elimina un reporte del historial del workspace (acción irreversible).
| Name | Required | Description | Default |
|---|---|---|---|
| report_id | Yes | ID del reporte a eliminar (campo 'id' de get_reports) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description's '(acción irreversible)' reinforces that but adds little beyond what the annotation states, and says nothing about auth requirements or whether related data is affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the action and its consequence with zero filler. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter destructive tool with full schema coverage and annotations carrying the safety profile, the description covers purpose and irreversibility adequately. Only recovery/alternative context is missing, which is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with report_id documented as the 'id' from get_reports and workspace_id covering UUID-or-name resolution. The description adds no parameter detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Elimina') and resource ('un reporte'), plus scope ('del historial del workspace'), which clearly separates it from read siblings like get_reports/get_report and generation tools like generate_report. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to prefer this over alternatives or related cleanup paths (e.g., get_trash / restore_from_trash), nor any prerequisite or caution about confirmation. The parenthetical about irreversibility is a behavioral note, not usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_taskADestructiveInspect
Borra una tarea para siempre. IRREVERSIBLE.
Casi nunca es lo que se quiere: una tarea terminada se cierra con
complete_task y una que ya no va se cancela con `status: 'cancelled'` —
las dos quedan en el historial, que es de donde salen los informes. Borrar
es sólo para lo que se creó por error.| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ID de la task | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description reinforces and extends this with the permanence claim ('IRREVERSIBLE', 'para siempre') and the consequence that removed tasks no longer appear in history, which is where reports come from. It does not say whether related artifacts (comments, relations) are cascaded, nor whether any recovery path exists despite a restore_from_trash sibling, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The irreversible warning is front-loaded in the first sentence, and the second paragraph spends its length only on misuse prevention. No filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter destructive tool with no output schema, the description covers permanence and the correct routing decisively. The one remaining gap is side effects on dependent data and any restore path, which an agent deciding on a hard delete would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both task_id and workspace_id are already documented in the schema, including the workspace-name fallback guidance. The description adds no parameter-level detail, which is the expected baseline when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Borra una tarea para siempre') and immediately scopes it against siblings: complete_task for finished tasks and a status:'cancelled' update for dropped ones. An agent can distinguish this from delete_document/delete_event-style siblings and from complete_task without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames this as a rarely-correct choice ('Casi nunca es lo que se quiere') and names the two preferred alternatives with the condition that selects each, plus the narrow case where deletion is right ('sólo para lo que se creó por error'). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dismiss_meeting_actionableADestructiveInspect
Descarta un accionable de un recap: sale de la lista y no vuelve a proponerse. Si ya se había convertido en tarea, esa tarea se borra también. Es lo mismo que la cruz del recap en la app. Pedí confirmación antes.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| actionable_id | Yes | ID del accionable (de get_meeting_actionables) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the safety profile is partly covered. The description adds real value beyond that: it explains the item leaves the list and won't be re-proposed, and critically that an already-converted task is also deleted – a non-obvious cascading side effect worth disclosing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the two key side effects are front-loaded in the first two sentences, with the app analogy and confirmation note following. Four short sentences carry no obvious filler, though the app-cross analogy is slightly superfluous for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive two-parameter tool with no output schema, the description covers what is destroyed, the cascade to tasks, and the confirmation requirement. Nothing essential is missing, though it could state return/confirmation semantics more explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (workspace_id, actionable_id) are already fully documented in the schema. The description adds no parameter-level detail (e.g. format, where to obtain the id), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Descarta') plus resource ('un accionable de un recap') and clarifies scope ('de un recap'), which separates it from get_meeting_actionables and confirm_meeting_actionable by function. It does not name those siblings explicitly, so it falls short of a 5, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives implied usage context ('Es lo mismo que la cruz del recap en la app') and a procedural instruction ('Pedí confirmación antes'), but never states when to prefer this over confirm_meeting_actionable or how it differs semantically from a task deletion. Usage is inferable rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dissociate_document_entityBDestructiveInspect
Desvincula una entidad del knowledge graph de un documento
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | ID de la entidad | |
| document_id | Yes | ID del documento | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=false. The description usefully clarifies that this is an unlink operation on a document's knowledge graph rather than entity deletion, but it does not say whether unlinking is reversible, whether the entity/document remain intact, or what permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundant text. Every word contributes to stating the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The combination of 100% schema coverage and annotations covers the safety profile, and the description states the core action. However, for a destructive mutation with no output schema, it omits important context such as reversibility and the effect on the entity/document, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and all three parameters have descriptions. The tool description adds no parameter-level meaning beyond the schema, such as workspace_id fallback behavior, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Desvincula') and resource ('una entidad del knowledge graph de un documento'), so the action is clear. It does not explicitly name or distinguish from sibling tools such as associate_document_entity, so it falls short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only describes the action itself; there is no when-to-use guidance, no exclusions, and no explicit comparison to alternatives like associate_document_entity or delete_entity_relation. Usage is implied by the name but not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_documentsARead-onlyInspect
Busca documentos POR NOMBRE en TODOS los workspaces del usuario, en una llamada. Devuelve id, name, workspace (id y nombre), parent_document_id y updated_at.
Usar cuando el usuario nombra un documento ("actualizá el Business Overview") y no se sabe en qué workspace está.
Si vuelve más de uno con nombre parecido, preguntá cuál antes de escribir.| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Parte del nombre del documento | |
| limit | No | Máximo (default: 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description goes beyond them by disclosing the returned fields (id, name, workspace, parent_document_id, updated_at) and the cross-workspace, single-call scope — meaningful context given there is no output schema. It does not mention limits or ranking of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded blocks: purpose/scope, return shape, then usage and disambiguation. Every sentence carries information and nothing is repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly enumerates the return fields; with annotations covering safety, the remaining burden is scope, trigger condition, and ambiguity handling — all present. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented there, so the baseline is 3. The description only reinforces that matching is by name (consistent with 'Parte del nombre del documento') and says nothing about the limit parameter or default of 30.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource with an explicit scope: search documents BY NAME across ALL the user's workspaces in a single call. That scope distinguishes it from workspace-scoped siblings such as get_documents or get_documents_by_entity, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete triggering condition (the user names a document and its workspace is unknown) and even prescribes follow-up behavior for ambiguous results ('si vuelve más de uno con nombre parecido, preguntá cuál antes de escribir'). It stops short of naming an alternative tool or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finish_artifact_uploadAInspect
Ya casi nunca hace falta: el PUT de start_artifact_upload deja el artefacto guardado solo. Queda para las subidas viejas, que dejaban el archivo esperando. Si no hay nada esperando, te dice en qué versión quedó el artefacto y listo.
| Name | Required | Description | Default |
|---|---|---|---|
| nota | No | Qué cambió en esta versión, en una línea | |
| artifact_id | Yes | El id que devolvió start_artifact_upload | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish readOnlyHint=false and destructiveHint=false; the description adds the valuable idempotent behavior that if nothing is pending it simply returns the version the artifact ended up in. It does not mention any permission or workspace-auth requirements, which is a minor residual gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, with the strong 'almost never needed' caveat front-loaded and the fallback case clearly appended. No filler, though the deprecation framing precedes the actual action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter finalize tool with no output schema, the description supplies the pending/legacy context, the idempotent outcome, and the routing against start_artifact_upload. Enough to call it correctly, with only auth/environment prerequisites left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so artifact_id, nota and workspace_id are already documented in the schema. The description adds no further parameter meaning, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says the tool exists for old uploads that left the file waiting, and that it reports the resulting artifact version, which conveys the finalize-a-pending-upload action. It leans on the title and on referencing the start_artifact_upload sibling rather than stating the verb directly, so it is clear but not fully self-contained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly covers when not to use it ('Ya casi nunca hace falta: el PUT de start_artifact_upload deja el artefacto guardado solo') and when it is still needed ('las subidas viejas, que dejaban el archivo esperando'). The alternative behavior is named, so routing is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_reportAInspect
Genera un nuevo reporte/informe de IA del workspace analizando notas diarias, tareas completadas y actividad reciente.
Este proceso tarda ~15-30 segundos. Una vez completado, el reporte queda guardado y disponible en get_reports/get_last_report.
Tipos:
- 'daily' (default): resumen del día actual, tasks completadas hoy, notas del día
- 'weekly': resumen de la semana, tendencias, highlights
- 'monthly': análisis mensual completo (más tokens, más tiempo)
Usar cuando el usuario pide "generá un reporte", "hacé un informe del día/semana", etc.
Retorna el contenido del reporte generado directamente.| Name | Required | Description | Default |
|---|---|---|---|
| report_type | No | Tipo de reporte a generar (default: daily) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation/write nature is covered. The description adds genuine value beyond that: the ~15-30s latency, that the result is persisted and retrievable afterward, and that 'monthly' costs more tokens/time. It does not detail auth/permission needs, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Nicely structured and front-loaded: purpose first, then timing/persistence, then a type list, then usage trigger. Slightly verbose with some restatement, but every section earns its place for a tool with three modes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a costly generation tool with no output schema, the description covers all an agent needs: what it does, how long it takes, that the result is stored and retrievable elsewhere, the mode differences, and that it returns the content directly. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema's bare enum by explaining what each type produces (daily = today's summary/tasks/notes; weekly = trends/highlights; monthly = full analysis with more tokens/time). The workspace_id parameter is left to the schema, which is acceptable given full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (generate) and resource (a new AI report of the workspace), and enumerates the data sources it analyzes (daily notes, completed tasks, recent activity). It is clearly distinguishable from sibling read tools get_reports/get_last_report, which are explicitly named as the retrieval endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('Usar cuando el usuario pide "generá un reporte"...') and clarifies the relationship to alternatives: generation here, retrieval via get_reports/get_last_report once finished. The 15-30s timing sets expectations before invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agendaARead-onlyInspect
La agenda de un día o de varios, en UNA llamada: los eventos del calendario, las tareas que vencen, las vencidas que siguen abiertas y los recordatorios que van a sonar. Es «¿qué tengo hoy?», «¿qué tengo mañana?» y «¿qué tengo esta semana?» contestadas de una vez, en vez de get_events + get_tasks cruzadas a mano.
Sin `workspace_id` junta TODOS los workspaces de la persona (cada cosa dice
de cuál es): no la llames una vez por workspace. Para varios días pasá
`hasta` (la semana: `date` el lunes, `hasta` el domingo): no la llames un
día por vez, ni le sumes get_events o get_tasks para lo mismo.
Sin `date`, es hoy en la zona horaria del usuario — que no es la de UTC: en
Buenos Aires, hasta las 21hs, UTC ya está en el día siguiente.| Name | Required | Description | Default |
|---|---|---|---|
| date | No | YYYY-MM-DD (default: hoy, en la zona del usuario). Con hasta, el primer día | |
| hasta | No | YYYY-MM-DD, último día inclusive, para ver varios días de una (hasta 31) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds genuinely useful behavior beyond that: omitting workspace_id fans out across ALL of the user's workspaces with per-item attribution, and the default day is the user's timezone, not UTC, with a concrete Buenos Aires/21hs example. It stops short of describing return shape or item ordering, so a 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose in the first sentence, then layers scoping constraints and the timezone caveat in descending order of importance. Every sentence carries a distinct instruction; none is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter read tool with no output schema, the description covers everything an agent needs: what is aggregated, workspace scoping, multi-day usage, and the timezone default. No output schema exists, so return-value explanation is not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real semantic value: it explains that workspace_id omission means an all-workspace fan-out, that date+hasta together express a multi-day window (with the Monday-to-Sunday week pattern), and that date defaults to today in the user's timezone. This is more than restating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (retrieve the day's/multi-day agenda) and enumerates exactly what it aggregates: calendar events, due tasks, still-open overdue tasks, and upcoming reminders. It explicitly distinguishes itself from the siblings get_events and get_tasks by naming them as the manual alternative it replaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('¿qué tengo hoy/mañana/esta semana?') and multiple when-NOT-to-use rules: don't call once per workspace, don't call one day at a time, and don't bolt on get_events or get_tasks for the same data. The alternative and the condition selecting it are both named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_filesARead-onlyInspect
Lista todos los archivos subidos al workspace (adjuntos a documentos). Retorna: id, file_name, file_url, file_size (bytes), mime_type, document_id, created_at. Para ver el uso total de storage: usar get_storage_usage.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 50) | |
| offset | No | Offset para paginación | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/destructive flags. The description adds return-field detail and workspace-scoped listing, which is useful context beyond annotations, but does not discuss pagination side effects or auth requirements. With annotations covering safety, a 4 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences: purpose first, return fields second, alternative third. No waste, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so listing return fields is valuable. With schema documenting all parameters and annotations covering safety, the description gives an agent enough to call correctly; pagination details are covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents limit, offset, and workspace_id. The description adds no parameter syntax or meaning beyond the schema, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Lista' plus resource 'todos los archivos subidos al workspace' and explicit return fields. It distinguishes itself from get_storage_usage by naming that sibling for storage totals. Workspace-wide wording separates it from document-specific file listing siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one explicit alternative: use get_storage_usage for total storage. It does not state when to prefer this over get_document_files or other file-listing siblings, so guidance is clear but incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_artifactARead-onlyInspect
Trae un artefacto: su metadata y su historial de versiones. El contenido se pide de dos maneras y conviene elegir bien:
· **buscar="…"** — devuelve SÓLO los pedazos del archivo donde aparece ese texto, con su contexto alrededor. Es la forma de leer para editar: ~800 caracteres en vez de los 107.000 del archivo, y lo que devuelve se pega tal cual en el `buscar` de patch_artifact. Dice además cuántas veces aparece, que es lo que hay que saber antes de parchear.
· **incluir_contenido=true** — el HTML entero. Caro: un artefacto de 100 KB son ~50.000 tokens de entrada. Usarlo sólo si de verdad hace falta leerlo todo.
Cuando devuelve contenido, devuelve también `bytes` y `sha256` de esa versión, que sirven para verificar un guardado sin volver a bajar nada.| Name | Required | Description | Default |
|---|---|---|---|
| buscar | No | Devolver sólo los fragmentos donde aparece este texto (literal, no es una regex). Es la lectura barata. | |
| version | No | Qué versión leer (default: la actual) | |
| contexto | No | Cuántos caracteres se devuelven a CADA lado de la coincidencia (default: 300) | |
| artifact_id | Yes | ID del artefacto | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada | |
| incluir_contenido | No | Traer el HTML entero (caro). Default: false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world), and the description adds substantial behavioral context beyond them: token cost of each mode, that content responses also carry `bytes` and `sha256` for verification, and that 'buscar' reports the match count that matters before patching. This is genuinely useful operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, then uses a compact bulleted structure to contrast the two modes; every claim (cost, paste-compatibility, occurrence count) earns its place. It is dense and slightly long, but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly carries the return-value burden: metadata, version history, returned fragments, and the `bytes`/`sha256` fields when content is included. All six parameters are covered and the read-only nature is clear, so nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents each field, establishing a baseline of 3. The description goes further by giving cross-tool semantics for 'buscar' (its output pastes directly into patch_artifact's `buscar`) and clarifying the literal-not-regex reading path, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Trae un artefacto') plus exactly what is fetched (metadata and version history), then enumerates the two content-retrieval modes. An agent can distinguish this from get_document, list_artifacts, or patch_artifact without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear when-to-use guidance for each mode: 'buscar' is framed as the read-for-edit path with an explicit cost comparison (~800 vs 107,000 chars) and a direct hand-off to patch_artifact; 'incluir_contenido' is flagged as expensive and reserved for full reads. It does not, however, contrast the tool against adjacent retrieval siblings (get_document, list_artifacts) for tool-level choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_boardsARead-onlyInspect
Los tableros de Tareas que esta persona puede abrir, de los tres tipos que hay.
Un tablero es una vista guardada con nombre: las CONDICIONES dicen de qué
tiene que ser una tarea para entrar (etiquetada con tal cliente, de tal
proyecto), y eso es el tablero. La regla es dinámica — una tarea nueva que
cumpla entra sola, y una a la que le sacan la etiqueta desaparece.
Los tres tipos:
· `privado` — sólo lo ve su dueño. Vive en las preferencias del usuario,
no en una tabla, y su id empieza con `tb`.
· `compartido` — tuyo, pero ya promovido a fila de servidor porque se lo
pasaste a alguien. Id uuid.
· `prestado` — de otra persona, que te lo compartió. Vive en SU workspace
y vos no sos miembro de ahí: lo único que podés ver es lo
que entra en ese tablero, nada más del workspace.
Un tablero SIN condiciones no se puede compartir (casi todos los de fábrica,
como «Mi semana» o «En curso», no tienen ninguna): sin alcance, compartirlo
sería compartir el workspace entero.
Para ver qué tareas tiene adentro: get_board_tasks.| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, non-open-world), yet the description adds genuinely useful behavior: the dynamic entry/exit rule for boards, the id prefix convention (`tb` vs uuid), and especially the `prestado` visibility limit ('lo único que podés ver es lo que entra en ese tablero, nada más del workspace'). It omits pagination/ordering behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose followed by structured bullets for the three types, each sentence adding distinct information. It is longer than typical, but the length is largely justified by an unusual domain concept that the schema cannot express.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, one optional parameter, and annotations covering safety, the description supplies the domain model, the type taxonomy, the id conventions, and the next-step tool. It could still hint at what fields are returned (name/id only), a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already documented as UUID-or-name with omission meaning all workspaces. The description adds nothing about workspace_id, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (tableros / saved named views of tareas) and the scope (the ones this person can open), then defines what a board actually is so the agent can distinguish it from plain task lists. It explicitly hands off to get_board_tasks for contents, separating boards from the tasks inside them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context on the three board types and states the follow-up tool ('Para ver qué tareas tiene adentro: get_board_tasks'), which routes the agent correctly. It does not, however, say when to prefer this over get_tasks or other listing tools, nor any exclusion beyond the sharing caveat.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_board_tasksARead-onlyInspect
Las tareas que están adentro de un tablero, resueltas con su regla.
No es una lista guardada: se evalúan las condiciones del tablero contra las
tareas ahora mismo, que es exactamente lo que ve el usuario en pantalla.
Sirve igual para un tablero propio (privado o compartido) y para uno
PRESTADO por otra persona — ahí el conjunto lo decide el servidor con el
permiso del tablero, no la membresía al workspace, y llega recortado: de una
tarea ajena no sale de qué recap salió, y de las entidades del Atlas sólo
nombre, tipo y color.
Las tareas `private` no entran nunca, ni siquiera incluidas a mano.| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Id del tablero (de get_boards): 'tb…' si es privado, uuid si es del servidor | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| incluir_cerradas | No | Sumar hechas y canceladas (default: sólo pendientes y en curso) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/non-destructive annotations, the description discloses genuinely useful behavior: results are computed on the fly (not cached), the borrowed-board result set is governed by board permission rather than workspace membership, foreign-task output is trimmed (no recap source, only name/type/color for Atlas entities), and private tasks are always excluded. This is exactly the kind of context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the most important insight (computed vs. stored list) and each subsequent sentence contributes concrete behavioral detail. Slightly dense with the trimming/permission clauses, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates well by describing the shape of trimmed results and the evaluation semantics. For a read-only tool this is nearly complete, though a note on result volume/ordering would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so board_id, workspace_id and incluir_cerradas are already fully documented in the schema. The description adds no syntax or format detail about the parameters, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (ver/obtener) and resource (tareas dentro de un tablero), and crucially clarifies that it is a live-evaluated, rule-resolved view rather than a stored list. This scoping to a board distinguishes it from the general get_tasks / get_declared_tasks, but it never names a sibling explicitly to route the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when the tool applies: own board (private or shared) and boards borrowed from another person, with an explanation of how the set is decided in the borrowed case. It stops short of stating when NOT to use it or pointing to the alternative task-listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_canvasARead-onlyInspect
Obtiene un canvas con su contenido completo (JSON de nodos y edges del diagrama). El campo 'content' es el estado serializado del whiteboard.
| Name | Required | Description | Default |
|---|---|---|---|
| canvas_id | Yes | ID del canvas | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/non-destructive safety, so the bar is lower. The description adds real value by explaining that the 'content' field is the serialized whiteboard state — useful since there is no output schema — though it omits return format details like size or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and scope, followed by a clarifying note about the content field. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partially compensates by explaining what the returned 'content' holds, and annotations cover the safety profile. It is largely sufficient for a single-resource read tool, missing only minor format expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both canvas_id and the workspace_id semantics are already documented in the schema. The description adds no parameter meaning beyond that; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Obtiene un canvas') and clarifies it returns the complete content (nodes/edges JSON). It contrasts implicitly with get_canvases (plural list) and create/update/delete_canvas, but never names those siblings to differentiate explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb and the returned content, but there is no explicit when-to-use guidance, no exclusions, and no pointer to get_canvases for listing vs. this single-fetch. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_canvasesARead-onlyInspect
Lista los canvases del workspace (whiteboard/diagrama visual). Retorna metadata sin el contenido del canvas. Para ver el contenido completo de un canvas: usar get_canvas(canvas_id).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 50) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada | |
| parent_document_id | No | Filtrar por documento padre |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine value beyond them by disclosing the return shape: metadata only, no canvas content — the key behavioral fact for choosing this over get_canvas.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero waste, front-loading the core action first and the routing hint last. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering the safety profile, full schema coverage, and no output schema, the description carries the remaining load: it names the resource, the return scope (metadata, not content), and the alternative for full content. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (limit, workspace_id, parent_document_id) are documented there, so the schema does the heavy lifting. The description only implies workspace scoping via "del workspace" and adds no syntax or default details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Lista") and resource ("canvases del workspace") with a clarifying gloss (whiteboard/diagrama visual). It distinguishes itself from the singular sibling get_canvas by name, so an agent can route without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes to the alternative: "Para ver el contenido completo de un canvas: usar get_canvas(canvas_id)", giving a clear condition for choosing between the two. It stops short of stating the inverse (when listing is preferred over other lookups), leaving slight inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clipARead-onlyInspect
Un clip entero, con su texto completo en markdown, el resumen y los puntos clave.
| Name | Required | Description | Default |
|---|---|---|---|
| clip_id | Yes | ID del clip (de get_clips) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. Because there is no output schema, the description usefully compensates by disclosing what data comes back (full markdown text plus summary and key points), which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact phrase with zero filler, and the most important content (what the clip contains) is front-loaded. It is slightly odd as a bare noun phrase rather than a clause, but nothing needs to be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with full schema coverage and complete safety annotations, the main missing piece is return-value explanation — and since no output schema exists, the description does supply it (markdown text, summary, key points). The only real gap is routing guidance against get_clips.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so clip_id and workspace_id are already documented (including the cross-reference to get_clips and the workspace UUID/name semantics). The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (a single clip) and specifies what it returns — full markdown text, summary, key points — so the agent knows this is a single-item fetch versus the list-oriented get_clips. However, it is a noun phrase with no explicit verb ('retrieve/fetch') and never names the sibling it complements, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no named alternative. The description never tells the agent to use get_clips to discover IDs or when this tool is preferred over get_clips; the only hint ('de get_clips') lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clipsARead-onlyInspect
Los clips del workspace: páginas guardadas desde el navegador y mails reenviados.
Un clip es material de AFUERA que alguien quiso conservar. Trae el texto
completo (`content_md`), y si ya pasó por la IA, `summary` y
`key_points`. `clip_mode` dice si se guardó la página entera o sólo una
selección.
Esta lista no trae el texto completo para no inundar la respuesta: pedí uno
puntual con get_clip.| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 25) | |
| query | No | Buscar en título, resumen o dominio | |
| source | No | De dónde vino | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real value beyond that: it warns the list deliberately omits full text to avoid flooding the response, and names which fields (content_md, summary, key_points, clip_mode) the payload carries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first line and the routing hint sits at the end. The middle paragraph explaining clip fields is useful context rather than filler, though the conceptual framing ('material de AFUERA') is slightly expansive for a list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of describing return values — and it does, naming the content fields and the clip_mode distinction. The remaining gap (no mention of default limit or pagination behavior) is minor since the schema covers limit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, query, source and workspace_id are already documented in structured data. The description adds no parameter-level detail (e.g. filtering behavior or multi-workspace semantics), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a concrete verb+resource ('Los clips del workspace') and immediately scopes what a clip is (páginas guardadas / mails reenviados). It also distinguishes itself from the closely-named sibling get_clip by stating this returns the list without full text. An agent can tell the two apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to get_clip when a single clip's full text is needed ('pedí uno puntual con get_clip'), which is a clear when-to-use-this-instead instruction. It does not discuss when to use query/source filters or when listing is preferable to searching, leaving some inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_completed_tasksARead-onlyInspect
Obtiene las tasks completadas del usuario autenticado (no disponible para tokens sb_*)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 50) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds non-obvious behavioral context beyond that: the tool is unavailable to sb_* token types, an auth-scope limitation an agent could not otherwise anticipate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the scope (completed tasks, authenticated user) comes first and the availability caveat second.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations cover safety and the schema covers both parameters, so the essentials are present. But there is no output schema and the description says nothing about the return shape (pagination, fields per task) or whether it overlaps with get_tasks, leaving minor gaps for a list tool of this kind.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents both limit (max 200, default 50) and workspace_id (UUID or name, omit for all workspaces). The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Obtiene') and a specific resource subset ('las tasks completadas del usuario autenticado'), which distinguishes it from the generic get_tasks and get_declared_tasks siblings. It is clear what the tool returns, though it doesn't explicitly contrast itself with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical restriction '(no disponible para tokens sb_*)' is a real usage constraint that tells the agent when the call will fail. However, it never says when to prefer this over get_tasks / get_declared_tasks, or whether filtering by workspace is required, so selection among siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_daily_noteARead-onlyInspect
Obtiene la nota diaria de una fecha (default: hoy). Las notas diarias son el log del día: lo que pasó, tareas, conversaciones, ideas.
Retorna:
- date: fecha de la nota
- content: contenido completo en texto plano (máx. 8000 chars)
- summary: resumen generado por IA (analysis_summary), puede estar vacío si no se analizó
- intelligence: índice de inteligencia/productividad del día (null si no calculado)
Si no existe nota para esa fecha, retorna un mensaje indicándolo.
Para buscar en notas de varios días, usar search_daily_notes o get_recent_notes.| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Fecha en formato YYYY-MM-DD (default: hoy) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description still adds real behavioral value beyond annotations: it states the 8000-char content cap, the empty/missing-note return behavior, and that summary/intelligence may be null. It does not mention auth or rate limits, but for a read-only note fetch that is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action plus default, then the return fields, then the edge case, then alternative routing. Every sentence earns its place and the size is proportionate to a tool with no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining the return shape and does so field-by-field, including nullable fields and the empty-result case. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already fully documents both date (format, default) and workspace_id (UUID or name, omit = all workspaces in one call). The description only restates the today default and adds no syntax or filtering detail beyond the schema, so the baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (obtain the daily note for a date, default today) and defines what a daily note is. It explicitly distinguishes itself from the sibling tools search_daily_notes and get_recent_notes, so an agent can route without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit alternative and the condition that selects it: 'Para buscar en notas de varios días, usar search_daily_notes o get_recent_notes'. It also notes the default date behavior and the missing-note case, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_declared_tasksARead-onlyInspect
Las tareas que están escritas en las notas diarias pero todavía no son tareas de verdad: las PROVISORIAS.
Un renglón de la nota que parece un pedido se levanta como segmento con lo
que se le pudo sacar (título, urgencia, responsable, proyecto) y una
confianza. Mientras nadie lo confirme no hay fila en `tasks`: por eso no
aparece en get_tasks. Cuando se confirma, `db_task_id` apunta a la tarea
real.
`missing_date` y `missing_owner` son lo que quedó sin declarar — es la
razón por la que una provisoria se queda esperando.| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 50) | |
| note_date | No | Sólo las de esta nota, YYYY-MM-DD | |
| pendientes | No | Sólo las que no se confirmaron ni descartaron (default: true) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds real behavioral context beyond that: records are provisional, back no `tasks` row until confirmed, and `missing_date`/`missing_owner` explain why an item stalls waiting. It does not mention pagination or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core definition is front-loaded in the first line. The remaining paragraphs earn most of their space by explaining the provisional lifecycle, though the 'no row in tasks / doesn't appear in get_tasks' idea is stated twice, which is mild redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description ably covers the return model for a read-only list tool (provisional segments, extraction fields, confidence, db_task_id, missing_date/missing_owner). Combined with 100% schema coverage on the four inputs, an agent has enough to call it correctly; only list behavior (pagination/ordering) is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — limit, note_date, pendientes, and workspace_id are all documented in the schema, including the default and the omit-means-all behavior. The description adds nothing about parameters (the fields it names, missing_date/missing_owner/db_task_id, are return fields, not inputs). Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource with scope: provisional tasks scraped from daily notes that have no row in `tasks` yet. It explicitly distinguishes itself from the sibling get_tasks ('por eso no aparece en get_tasks'), so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong context for when this tool is the right one — provisional items are exactly the records get_tasks will not return — and explains the lifecycle (confirmation makes `db_task_id` point to the real task). It stops short of an explicit when-to-use/when-not clause, but the alternative is clearly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_definitionsCRead-onlyInspect
Obtiene las definiciones del workspace, con filtro opcional por entidad
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 50) | |
| offset | No | Para paginación | |
| entity_id | No | Filtrar por entidad relacionada | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond restating the purpose: no note on whether unfiltered calls return all workspaces, how 'definitions' are composed, or any rate/size behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, though its brevity comes at the cost of under-specification rather than efficient density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, no output schema, and an undefined core concept ('definiciones'), the description is too thin. An agent cannot tell what a definition record contains or how results differ when entity_id is applied, and there is no output shape to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit/offset/entity_id/workspace_id are all documented in the schema itself. The description's only contribution is echoing the optional entity filter, which the schema already states more precisely (including the 'omit = ALL workspaces' behavior). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a verb and resource ('Obtiene las definiciones del workspace'), but 'definiciones' is never defined and the tool overlaps conceptually with siblings like get_knowledge, get_playbook, get_guide, and get_entity_wiki, with nothing to distinguish them. The scope hint (workspace, optional entity filter) helps narrow it, but the core object of the tool remains ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this rather than get_knowledge/get_playbook/get_entity_wiki, nor any prerequisite or exclusion stated. The phrase 'con filtro opcional por entidad' only hints at a filtering variant, not a usage decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deliverablesARead-onlyInspect
Los entregables del workspace, con cuántas tareas tiene cada uno abiertas y cerradas.
Un entregable es la cosa que se entrega —una propuesta, un informe, una
campaña— y las tareas cuelgan de él. Sirve para contestar "¿cómo viene X?"
sin leer tarea por tarea.
El `summary` lo escribe la IA a partir de lo que pasó; `delivered_at` es
cuándo se entregó de verdad.| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 50) | |
| status | No | Filtrar por estado | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/safe profile, so the bar is lower. The description adds genuine behavioral context beyond them: that the response aggregates open/closed task counts per deliverable, that `summary` is AI-authored, and that `delivered_at` reflects actual delivery. No note on pagination or permissions, but the added data-provenance detail is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core function, then a definition, a use case, and field clarifications. Every sentence carries information; slightly verbose but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return-value burden and does so partially: it explains the task counts, `summary`, and `delivered_at`. It omits the full record shape and pagination behavior, leaving a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema descriptions are already rich (workspace_id even explains omitting it means all workspaces). The description adds nothing about limit, status, or workspace_id, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (entregables del workspace) and the distinctive scope (each one with counts of open/closed tasks), and defines what an entregable is. It does not explicitly name how it differs from create_deliverable/update_deliverable, but the aggregation scope is specific enough to distinguish it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear use case: answering "¿cómo viene X?" without reading task by task. That tells the agent when this beats get_tasks. No explicit exclusions or named alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documentARead-onlyInspect
Lee un documento. Por defecto devuelve el contenido como MARKDOWN (format), una sola vez y sin duplicar.
format: "markdown" (default) — títulos, listas, tablas, enlaces; es lo que aceptan create/update/patch/append.
"texto" — texto plano, sin marcas.
"crudo" — lo guardado tal cual (HTML o el JSON de bloques del editor). Rara vez hace falta.
buscar: en vez del documento entero, sólo los fragmentos (del markdown) donde aparece ese texto, con contexto.
Es lo que hay que usar en un documento largo para saber QUÉ cambiar con patch_document.
Devuelve también `updated_at`: pasalo como `base_version` al escribir y la escritura falla si alguien
cambió el documento en el medio, en vez de pisarlo. `perdidas` lista lo que el markdown no representa
(fórmulas, referencias a otros documentos, colores…): si no está vacío, patch_document y append_document
no se pueden usar sobre ese documento.| Name | Required | Description | Default |
|---|---|---|---|
| buscar | No | Devolver sólo los fragmentos que contienen este texto | |
| format | No | Formato del contenido (default: markdown) | |
| contexto | No | Con buscar: caracteres de contexto a cada lado (default 300) | |
| document_id | Yes | ID del documento | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/destructiveHint already declaring safety, the description adds substantial non-obvious context: it returns `updated_at` for optimistic-locking via `base_version` (writes fail rather than overwrite), and `perdidas` lists what markdown cannot represent and blocks patch_document/append_document when non-empty. These are exactly the behavioral traits an agent needs and cannot get from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first line, then organized by parameter/mode with clear headings. It is somewhat long, but the length is justified by the several modes and formats; little is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of describing the return surface, and it does: content format, `updated_at`, and `perdidas` with their consequences. Combined with the annotations, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description meaningfully enriches the two key parameters: it spells out what each `format` value means and which are accepted by write tools, and clarifies `buscar` returns only matching fragments. It adds little for `contexto` and `workspace_id` beyond the schema, keeping it below 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Lee un documento') and states the default behavior precisely (returns markdown, once, without duplication). It references sibling write tools (create/update/patch/append, patch_document, append_document), but does not distinguish itself from the read-side siblings like get_documents, find_documents, or search_documents, which is the main ambiguity an agent would face.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use guidance: use `buscar` on a long document to find out WHAT to change with patch_document, and use 'markdown' because it is what the write tools accept. It explains the role of 'crudo' as rarely needed. It lacks explicit routing against the other document-read/search siblings, but the internal guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_document_entitiesBRead-onlyInspect
Obtiene las entidades del knowledge graph vinculadas a un documento
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | ID del documento | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing behavioral beyond that (no return shape, no pagination, no empty-result behavior), so it carries no incremental value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource front-loaded and zero filler. Nothing could be trimmed without losing the core meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with full schema coverage, present annotations and no output schema, the description is minimally adequate. It is missing the disambiguation from the inverse tool get_documents_by_entity and any note on result scope, but nothing critical blocks correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema itself explains both document_id and the workspace_id fallback (UUID or spoken name). The description adds no parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: retrieving the knowledge-graph entities linked to a document. It is clear and unambiguous, but it does not differentiate itself from closely related siblings such as get_documents_by_entity (the inverse lookup) or associate_document_entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, no prerequisites, and no exclusions. An agent must infer the usage context entirely from the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_document_filesCRead-onlyInspect
Lista los archivos adjuntos a un documento
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | ID del documento | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond the name and annotation title ('Ver los archivos de un documento') – no pagination, result-size, or scoping behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no waste. It is appropriately terse for a simple read-only list tool, though it is arguably under-specified rather than genuinely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description need not explain return values, and the annotations carry the safety profile. Still, for a list tool it says nothing about ordering, pagination, or empty results, leaving a small gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: document_id and workspace_id are both fully documented in the schema, including the workspace UUID-or-name convention. The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Lista') and resource ('archivos adjuntos a un documento'), so an agent knows exactly what it does. However, it does not differentiate itself from close siblings like get_all_files or get_document, leaving the boundary to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives such as get_all_files or get_document. The agent must infer that this retrieves attachments for one specific document rather than all files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documentsARead-onlyInspect
Lista los documentos del workspace (SIN contenido — solo metadata: id, name, date, updated_at, parent_document_id, order).
Usar para: navegar la estructura de documentos, listar documentos disponibles, encontrar IDs.
Para encontrar un documento POR NOMBRE: `name` acá, o find_documents si no sabés en qué workspace está.
Para leer el contenido de un documento específico: usar get_document(document_id).
Para buscar por contenido: usar search_documents(query).
Sin parent_document_id: lista todos. Con parent_document_id=null: solo raíz. Con ID específico: hijos de ese documento.| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filtrar por nombre (contiene, sin distinguir mayúsculas) | |
| limit | No | Máximo resultados (default: 50) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| parent_document_id | No | Filtrar por documento padre. Omitir = todos los documentos. null = solo raíz. ID = hijos de ese documento |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false. The description adds meaningful value beyond that by stating no content is returned and enumerating the exact metadata fields (id, name, date, updated_at, parent_document_id, order), which shapes how an agent plans follow-up calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and scope, then a clean routing block, then parameter semantics. Every sentence carries routing or semantic value, though the parent_document_id explanation overlaps with the schema already.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description compensates by listing the returned metadata fields, and the routing covers all obvious alternatives. An agent has everything needed to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds the subtle tri-state semantics of parent_document_id (omit = all, null = root only, specific ID = children) in a form slightly distinct from the schema wording. It reinforces rather than merely repeats the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lista los documentos del workspace'), and immediately scopes it ('SIN contenido — solo metadata') with an explicit field list. It is clearly distinguishable from get_document, search_documents, and find_documents, which it names directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use scenarios (navigate structure, list documents, find IDs) and routes each adjacent case to the right sibling: get_document for content, search_documents for content search, find_documents for name lookup in unknown workspaces. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documents_by_entityBRead-onlyInspect
Obtiene los documentos vinculados a una entidad del knowledge graph
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 20) | |
| entity_id | Yes | ID de la entidad | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only the 'knowledge graph' linkage framing and says nothing about pagination behavior, default/maximum limits, ordering, or what a result set looks like — almost no value beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. Every word carries meaning and the resource is stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter read-only listing tool with full schema coverage and no output schema, the description is minimally sufficient. It omits, however, the pagination/limit semantics of the result and any hint that this is the reverse of get_document_entities, which would help the agent pick correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: entity_id, limit (with default and bounds), and workspace_id (including the token-implied-workspace hint) are all documented in the schema. The description contributes nothing further about parameter semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Obtiene') plus resource ('documentos') and a precise scope qualifier ('vinculados a una entidad del knowledge graph'). The direction (entity -> documents) is clear, which pairs naturally against the sibling get_document_entities, but the description never names or contrasts that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus find_documents, search_documents, get_documents, or the reverse ge_tr get_document_entities. The agent must infer usage purely from the tool name and the entity-centrism of the query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_document_versionsARead-onlyInspect
Las versiones anteriores de un documento: copias automáticas de hace 1 minuto, 5, 10, 30 minutos, 1 y 6 horas, y 1, 2, 3 y 5 días (cada escritura, de la app o del MCP, rota las copias). Devuelve, por copia: slot, cuándo se guardó, bytes y sus primeros títulos. Para volver a una: restore_document_version.
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | ID del documento | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly/non-destructive, the description goes well beyond: it explains that every write (from the app or the MCP) rotates the copies, which is critical behavioral context an agent could not infer. It also describes what each returned entry contains (slot, saved time, bytes, first titles), giving full transparency for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the retention behavior and followed by the return shape and the pointer to the restore sibling. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description specifies the per-copy return fields, and the rotation semantics are explained. For a two-parameter read tool with full schema coverage and safety annotations, nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (document_id, workspace_id) are documented in the schema, so the schema carries the parameter burden. The description adds no parameter-specific detail, which is acceptable given the coverage but is the baseline rather than added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact resource ('las versiones anteriores de un documento') and enumerates the retention ladder (1m, 5m, 10m, 30m, 1h, 6h, 1d, 2d, 3d, 5d), so an agent knows precisely what this returns. It also names the sibling it pairs with ('restore_document_version'), making it distinguishable from get_document, get_document_files, and other document reads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It directs the agent to restore_document_version for the follow-up action, which is a clear alternative pointer. However, it never states when to prefer this over get_document or how this fits into an undo workflow, so usage context is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entity_detailsARead-onlyInspect
Obtiene el detalle completo de una entidad del knowledge graph por ID.
Retorna: id, canonical_name, type, description, context (texto libre de contexto), aliases (nombres alternativos), relations_cache (relaciones resumidas), occurrence_count (veces mencionada), created_at, updated_at.
Además dos señales calculadas sobre el CONTENIDO asociado, no sobre el nombre:
similar_by_content → entidades que hablan de lo mismo. "likely_duplicate: true" marca las
que además tienen el nombre parecido: casi siempre es la misma cosa
cargada dos veces, y conviene proponer merge_entities.
suggested_relations → relaciones que NO están cargadas pero el contenido sugiere, con
cuántas veces aparecen juntas y cuántas veces por encima del azar.
Para crearlas: add_entity_relation.
wiki_summary es el resumen del artículo del wiki (fresco); para el artículo entero, get_entity_wiki.
occurrence_count = en cuántas fuentes (recaps, docs, notas, tareas) aparece.
Usar cuando necesitas todos los datos de una entidad, incluyendo contexto y aliases, después de encontrar su ID con search_entities.| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | ID de la entidad | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real context beyond that: the meaning of occurrence_count, that wiki_summary is fresh, and that similar_by_content with likely_duplicate=true signals a probable duplicate worth a merge_entities call. It does not discuss auth or rate limits, but with annotations present that gap is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then the return fields, then the computed signals, then usage. Every section is purposeful, though the long return-field enumeration and the nested explanatory indentation make it heavier than a strictly necessary description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return-value burden and does so fully: it enumerates the returned fields, explains the two computed signals and what the boolean flags mean, and clarifies wiki_summary vs get_entity_wiki. Nothing needed to interpret the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are documented in the schema itself, including the workspace_id fallback. The description adds nothing beyond 'por ID', so the baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Obtiene el detalle completo de una entidad del knowledge graph por ID') and clearly delimits it against siblings: wiki_summary is only the summary vs get_entity_wiki for the full article. An agent can distinguish this from get_entity_relations, get_entity_wiki and search_entities without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it ('cuando necesitas todos los datos de una entidad, incluyendo contexto y aliases') and the prerequisite ('después de encontrar su ID con search_entities'). It also names where to go next for related needs (get_entity_wiki, merge_entities, add_entity_relation), so the routing is complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entity_relationsARead-onlyInspect
Las relaciones de una entidad: las CARGADAS (entrantes y salientes, con nombres) y las POR CONTENIDO — entidades que aparecen junto a ésta mucho más que por azar aunque nadie haya cargado la relación. Para "¿quién trabaja en X?" o "¿con qué se relaciona X?", las por contenido suelen decir más.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | ID de la entidad | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuine behavioral context beyond that: it explains that loaded relations have directionality and names, while by-content relations exist even when no relation was ever loaded, which shapes how the agent should interpret the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the core distinction front-loaded and the practical takeaway placed last. It is efficient, though the all-caps jargon terms and dense second clause make it slightly less scannable than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining what comes back, and it does describe the two categories of returned relations. It leaves the exact response shape (field names, ordering, pagination) unspecified, which is a minor gap for a two-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so entity_id and the optional workspace_id (with its fallback rule for fixed-workspace tokens) are already fully documented in the schema. The description adds no parameter-level meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (an entity's relations) and goes further by distinguishing two kinds: loaded relations (incoming and outgoing, named) and by-content relations (statistical co-occurrence). This is clear and substantive. It does not, however, explicitly contrast itself with close siblings like get_entity_details or get_entity_suggestions, so it stops short of full disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through concrete example questions ('¿quién trabaja en X?', '¿con qué se relaciona X?') and a hint that by-content relations are often more informative. There is no explicit when-not guidance, no naming of alternative tools, and no statement of preconditions, so the agent must infer the boundary itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entity_suggestionsARead-onlyInspect
Las entidades que la IA vio nombradas en los recaps y todavía no están en el Atlas: personas, proyectos, organizaciones por confirmar. De cada una: nombre, tipo, en cuántos recaps apareció y cuáles. Se aceptan o descartan con resolve_entity_suggestion. Sin workspace_id mira todos.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, destructive=false and closed-world, so the safety profile is covered. The description still adds genuine value by disclosing the returned fields (nombre, tipo, and which/how-many recaps) and the cross-workspace default scope, which the annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with what the tool returns and ended with the key routing hint to resolve_entity_suggestion. Every sentence carries information; no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the shape of the returned items (nombre, tipo, recaps count and identity) and the scope default, which is what an agent needs to invoke it correctly. Minor gaps around pagination or ordering, but nothing blocking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already fully documented, including the 'Omitir = TODOS los workspaces' semantics. The description's 'Sin workspace_id mira todos' merely restates the schema, adding no format or syntax detail, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (entities the AI detected in recaps that are not yet in the Atlas) with concrete examples (personas, proyectos, organizaciones) and even the fields returned. It implicitly contrasts with confirmed entities in the Atlas, but never names a sibling such as search_entities or get_entity_details, so a 5 is not reached.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly frames this as the review queue for unconfirmed suggestions and points to resolve_entity_suggestion as the action to accept or discard them. Scope behavior (no workspace_id = all workspaces) is stated. No explicit when-not or alternative-listing guidance, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entity_tasksARead-onlyInspect
Las tareas de una entidad del Atlas: todo lo que está etiquetado con esa persona, proyecto u organización.
Cuenta la entidad en CUALQUIER lugar de `related_entities` (people, projects,
organizations, clients, tags…) y también como responsable. Abiertas primero
(en curso, después pendientes por vencimiento), después las cerradas. Los
nombres de las entidades relacionadas salen con su nombre vigente.
Es la forma corta de "¿qué hay de Acme?" cuando no hay un tablero armado.| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 50) | |
| entity_id | Yes | ID de la entidad | |
| entity_type | No | Ignorado: se busca en todas las claves. Queda por compatibilidad | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| solo_abiertas | No | true = sólo pendientes y en curso (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/non-destructive/openWorld=false, and the description adds real behavioral detail: ordering (open first, in-progress then pending by due date, then closed) and that related entity names are returned with their current name. It does not mention result counts or pagination behavior, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, then matching scope, then ordering, then the colloquial use case. Each paragraph carries distinct information, though it runs slightly long for a read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries return-shape burden and covers ordering and entity-name resolution well. Minor gaps (pagination/limit behavior, total counts) are addressed by the schema, so this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters (entity_id, entity_type, workspace_id, solo_abiertas, limit) are already fully documented in structured data, establishing the baseline of 3. The description adds no parameter-specific syntax or format beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (tasks of an Atlas entity) and clarifies the matching scope: counted in ANY key of related_entities and also as assignee. This distinguishes it implicitly from get_tasks/get_board_tasks by being an entity-centric view, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage scenario ('la forma corta de ¿qué hay de Acme? cuando no hay un tablero armado'), which tells the agent when this cross-cutting query is appropriate versus a board-based listing. No explicit exclusions or named alternatives, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entity_wikiARead-onlyInspect
El artículo del WIKI del Atlas de una entidad (persona, proyecto, organización, etiqueta): qué es, historia, estado actual y gente involucrada, escrito desde TODO el material del workspace donde aparece y regenerado cuando llega material nuevo.
Es la mejor fuente para "¿qué es X?", "¿en qué está X?", "¿quién está en X?".
Trae además:
citas a qué recap/documento/nota se refiere cada [n] del artículo, con la tool para abrirlo
enlaces las entidades que el artículo menciona
mencionada_en las páginas de otras entidades que hablan de ésta
ultimas_apariciones lo más nuevo donde aparece (puede ser posterior al artículo)
tareas_abiertas con estado real| Name | Required | Description | Default |
|---|---|---|---|
| entity_id | Yes | ID de la entidad (de recall o search_entities) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so safety is covered. The description adds genuinely useful behavior: the article is auto-regenerated when new material arrives, and it returns probe data whose recency matters ('ultimas_apariciones: lo más nuevo donde aparece (puede ser posterior al artículo)'), plus citations carrying the tool needed to open each source. That freshness caveat is real context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded: purpose in the first sentence, usage in the second, then an indented list of the extra payload. The bullet block is somewhat long, but each item (citas, enlaces, mencionada_en, ultimas_apariciones, tareas_abiertas) describes a distinct return field, so it earns its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return-shape burden, and it does: it enumerates the article contents and every extra field returned, including the source list behind citation markers. Combined with annotations covering the safety profile, an agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (entity_id, workspace_id) are fully documented in the schema, including the hint to source entity_id 'de recall o search_entities' and the workspace_name fallback. The description adds no parameter-level syntax or format detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource: the WIKI article for one entity (persona, proyecto, organización, etiqueta), enumerating its scope (qué es, historia, estado actual, gente involucrada) and noting it is regenerated from all workspace material. This clearly separates it from generic siblings like get_entity_details, recall, or search_entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit use cases ('Es la mejor fuente para "¿qué es X?", "¿en qué está X?", "¿quién está en X?"'), which tells an agent when this tool is the right pick. However it never names an alternative tool (e.g. get_entity_details or recall) or states when NOT to use it, so it stays at clear-context rather than full routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventsARead-onlyInspect
Los eventos del calendario en un rango de fechas, con las repeticiones ya expandidas.
Un evento que se repite es UNA fila con su regla, no una fila por semana:
acá se calculan las ocurrencias que caen en el rango pedido, así que una
reunión semanal que arrancó en marzo aparece igual si preguntás por hoy.
Cada ocurrencia trae `fecha` (el día en que cae) y `es_repeticion`.
Se ven los eventos LOCALES del workspace —los de todos los miembros— y los
SINCRONIZADOS de las cuentas que conectó este usuario (Google, Outlook,
Apple, iCal), que son personales y nadie más ve.
Sin `workspace_id` junta los de TODOS los workspaces de la persona en un
solo calendario (cada evento dice de cuál es): no la llames una vez por
workspace. Para «¿qué tengo hoy / esta semana?» con tareas y avisos, una
sola get_agenda (con `hasta` para varios días) en lugar de ésta.| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Hasta, YYYY-MM-DD (inclusive) | |
| from | Yes | Desde, YYYY-MM-DD | |
| query | No | Filtrar por texto en el título | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and non-destructive annotations, it discloses a critical non-obvious behavior: recurring events are expanded into occurrences within the requested range, each with fecha and es_repeticion. It also explains visibility boundaries (local vs. synced personal accounts) and cross-workspace aggregation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then uses short paragraphs for recurrence behavior, visibility, and sibling guidance. It is a bit longer than strictly necessary but every paragraph carries useful information, so it avoids padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains key return semantics (expanded occurrences, fecha, es_repeticion) and scoping. It does not describe the full shape of an event (e.g., title, start/end times, ordering), so an agent might still need to inspect results, but the core call semantics are complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter is well described, so the baseline is 3. The description largely repeats the schema's workspace_id omission behavior and adds minor output context (each event indicates its workspace), but it does not add new syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (calendar events), the scope (date range), and the key behavior (recurrences already expanded). It also differentiates the tool from siblings by naming get_agenda and explaining when that alternative should be used.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when not to use it: for 'what do I have today/this week' with tasks and reminders, use get_agenda instead. It also instructs that without workspace_id the tool aggregates all workspaces, so it should not be called once per workspace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_guideARead-onlyInspect
La guía pública de Secondbrain (secondbrain.media/guide): cómo funciona cada parte —el Diario, las tareas, los recaps de reuniones, el Atlas, el calendario, Teams, el bot de WhatsApp y Telegram, el clipper, este MCP—, los precios y las descargas.
Para preguntas sobre el PRODUCTO (qué es, cómo se usa, qué hace, cuánto
cuesta), no sobre los datos de la persona. Devuelve las secciones que mejor
contestan, con su texto, su enlace (url) y sus piezas visuales —capturas,
videos y diagramas de la guía—, más otras secciones cercanas. Con
`seccion` trae una sección exacta por su clave (pagina#seccion).| Name | Required | Description | Default |
|---|---|---|---|
| idioma | No | Idioma de la conversación | |
| seccion | No | Clave exacta de una sección (p. ej. "recaps#grabar"), de una respuesta anterior | |
| pregunta | No | Lo que se quiere saber, con las palabras de la persona |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/non-destructive, so the safety profile is covered. The description adds genuine behavioral context that annotations cannot: what comes back (matching sections with text, url and visual assets — screenshots, videos, diagrams) plus nearby sections, and the openWorld nature of a public web guide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then the product-vs-data boundary, then return shape and the exact-section mode. The long content enumeration is somewhat verbose but plausibly earns its place by telling the agent what topics the guide can answer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining returns and does so (sections, text, url, visual pieces, related sections). For a 3-param, fully-described retrieval tool this is close to complete, though it says nothing about coverage limits or fallback when no section matches.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents idioma, seccion and pregunta. The description restates the seccion key format (pagina#seccion) and its origin ("de una respuesta anterior"), which is already in the schema, adding little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Devuelve las secciones" of "la guía pública de Secondbrain") and enumerates what the guide covers (Diario, tareas, recaps, Atlas, calendario, Teams, bots, clipper, precios, descargas). It also draws a hard boundary against the many data-retrieval siblings by scoping itself to product questions, not personal data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use ("preguntas sobre el PRODUCTO: qué es, cómo se usa, qué hace, cuánto cuesta") and an explicit when-not ("no sobre los datos de la persona"). It never names the closest help-oriented sibling (how_to_in_app), so the alternative selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_knowledgeARead-onlyInspect
Lista todas las entidades del knowledge graph del workspace. El knowledge graph almacena personas, proyectos, organizaciones y conceptos que aparecen en notas, documentos y reuniones.
Tipos de entidades:
- person: personas (clientes, colegas, contactos)
- project: proyectos activos o históricos
- organization: empresas, clientes, organizaciones
- category: categorías o temas generales
- entity: entidades genéricas
Las ETIQUETAS también son entidades de esta tabla, no una cosa aparte: lo
que las separa es el tipo. Y las condiciones de un tablero se escriben con
los IDS de estas entidades, así que de acá salen.
Ordenado por occurrence_count DESC (más mencionadas primero). Para buscar una entidad específica, usar search_entities(query) en vez de cargar todas.
Retorna: id, type, canonical_name, aliases, description, context, occurrence_count, relations_cache.| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filtrar por tipo de entidad | |
| limit | No | Máximo resultados (default: 200) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral context: results are ordered by occurrence_count DESC, and it lists the returned fields since no output schema exists. It does not discuss auth needs or pagination limits, keeping it at a 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action and uses a bulleted entity-type list that is easy to scan. It is somewhat long, especially the label/board-conditions note, but that detail is relevant and not wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with no output schema and fully documented parameters, the description is mostly complete: it explains scope, entity types, ordering, alternatives, and returned fields. It says 'todas las entidades' while limit defaults to 200, so the agent is not told what happens when there are more than 200 entities or how to paginate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3, but the description adds real meaning to the type enum by defining each value (person, project, organization, category, entity) and explaining that labels are also entities distinguished by type. It adds less for limit and workspace_id, which the schema already documents well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with a specific verb and resource: 'Lista todas las entidades del knowledge graph del workspace', and immediately explains what the knowledge graph contains. It distinguishes this from search_entities by naming that alternative, so an agent can tell the tool apart from sibling lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit routing guidance: use this to list all entities, but use search_entities(query) for a specific entity instead of loading everything. The ordering rule (occurrence_count DESC) also helps the agent understand what it will get back.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_last_reportARead-onlyInspect
Obtiene el/los último(s) reportes generados CON su contenido (máx. 5000 chars por reporte).
Usar cuando el usuario quiere leer el reporte más reciente directamente sin pasar por get_reports primero.
Para leer un reporte específico o con más contenido, usar get_report(report_id).
Para listar reportes sin contenido: usar get_reports.
Retorna: id, report_type, report_date, generated_at, content (texto plano hasta 5000 chars), word_count, total_tokens.| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Número de reportes recientes a devolver (default: 1) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely useful behavioral context beyond that: content is truncated to 5000 chars per report, and it enumerates the returned fields, which matters because no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what the tool does, then gives three tight routing/return lines with zero filler. Every sentence earns its place and it is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param read-only tool with no output schema, the description covers purpose, routing to both siblings, the truncation limit, and the exact returned fields. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so 'limit' (count of recent reports, default 1) and 'workspace_id' (UUID or user-spoken name; omit if token-scoped) are already fully documented in the schema. The description only implies the plural/recent semantics and adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Obtiene el/los último(s) reportes generados CON su contenido') and explicitly bounds scope (máx. 5000 chars por reporte). It clearly distinguishes itself from the sibling tools get_report and get_reports by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use condition ('cuando el usuario quiere leer el reporte más reciente directamente sin pasar por get_reports primero') and names both alternatives with the condition that selects each (get_report for a specific/longer report, get_reports to list without content). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meARead-onlyInspect
«Vos»: el retrato de la persona que arma Secondbrain con SUS reuniones (lo que dijo ella, medido por su huella de voz) y su historia de trabajo.
Trae, si existe: el retrato (quién sos, fortalezas, a mejorar con cómo,
foco, cómo sos en cada espacio, Eneagrama como hipótesis y cómo usar la
energía), el perfil de la semana con el tono de sus reuniones, los números
semana a semana (reuniones, cuánto habló, preguntas, intervenciones,
minutos y tono de -2 a 2) y lo último que dejó cada recap.
Para «¿cómo me fue en las reuniones?», «¿en qué tengo que mejorar?»,
«¿cómo vengo?». Sin huella de voz no hay material: decí que se registra en
la app (how_to_in_app("mi_voz")). Es del plan Hobby en adelante.| Name | Required | Description | Default |
|---|---|---|---|
| semanas | No | Cuántas semanas de números (default 12) | |
| workspace_id | No | Un workspace (UUID o nombre). Sin él, todos los de la persona. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/non-destructive/closed-world, and the description adds real behavioral context beyond them: the prerequisite that no voice footprint means no material, the redirect to how_to_in_app('mi_voz'), and the Hobby-plan gating. It doesn't describe pagination or response shape, but the added constraints are substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main purpose is front-loaded and every clause is informative, but the sentence is sprawling and dense with nested parentheticals, which hampers quick scanning. It is adequately sized but not tightly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates well by enumerating the returned content and stating the missing-data fallback and plan requirement. For a two-param read tool with annotations covering safety, this is nearly complete, missing only response-format/pagination detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both 'semanas' (range/default) and 'workspace_id' (scope). The description only implicitly references week-by-week numbers and the all-workspaces default, adding no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly conveys that this returns a self-portrait/profile built from the user's meetings and voice footprint, enumerating the concrete payloads (portrait, weekly tone profile, week-by-week numbers, recaps). It is specific about the resource, though the phrasing is metaphorical ('el retrato de la persona') and it does not explicitly distinguish itself from the sibling 'get_user_profile'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete trigger queries ('¿cómo me fue en las reuniones?', '¿en qué tengo que mejorar?', '¿cómo vengo?') plus a fallback instruction when the prerequisite (voice footprint) is missing, and notes plan gating. It stops short of naming alternative sibling tools to use instead, so it lacks an explicit when-not/alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meetingARead-onlyInspect
Un recap entero: la transcripción completa y el resumen.
El resumen está armado sobre un mapa por tramos de la reunión, no sobre la
transcripción cruda de una sola pasada: por eso sigue el hilo de lo que se
fue diciendo. No incluye los accionables de la reunión: son una lista viva
que se confirma o se descarta, y tienen su propia tool.| Name | Required | Description | Default |
|---|---|---|---|
| meeting_id | Yes | ID de la reunión | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds useful behavioral nuance — the summary is built over a chunked map rather than a single raw pass, and actionables are excluded — but says nothing about transcript size, cost, permissions, or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core answer ('Un recap entero: la transcripción completa y el resumen'), then a short explanation of summary construction and the exclusion. Slightly verbose on the chunked-map rationale, but every sentence carries some signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description steps in to say what is returned (transcript + summary) and what is not (actionables). For a simple 2-param read tool with annotations covering safety, this is nearly complete, though it could clarify transcript pagination or size.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (meeting_id, workspace_id) are documented in the schema, including the omit-to-search-all-workspaces behavior. The description adds no parameter information, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: returns the full recap of a meeting — complete transcript plus summary. It also differentiates from the actionables tool by explicitly excluding accionables and noting they are a separate, living list with their own tool, so an agent can distinguish the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the boundary with get_meeting_actionables ('no incluye los accionables... tienen su propia tool'), which is genuine routing guidance. However it never states when to reach for this tool versus get_meetings (list) or update_meeting, so usage is only partially implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meeting_actionablesARead-onlyInspect
Los accionables de un recap: lo que la IA sacó de la reunión y todavía no es una tarea.
Es una lista VIVA, no un resultado congelado: cada ítem está en
`pending` (propuesto, nadie lo confirmó), `materialized` (ya se convirtió
en tarea, y `task_id` dice cuál) o `dismissed` (descartado, no vuelve).
Los descartados no salen salvo que los pidas. `relevance` y
`action_clarity` son las dos notas con que el extractor se juzga a sí
mismo: sirven para entender por qué un ítem quedó abajo en la lista.| Name | Required | Description | Default |
|---|---|---|---|
| meeting_id | Yes | ID del recap (campo 'id' de get_meetings) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada | |
| incluir_descartados | No | Sumar los dismissed (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the read-only safety profile, so the bar is lower, and the description still adds real context: the list is 'live' rather than frozen, each item is pending/materialized/dismissed, materialized items expose task_id, and relevance/action_clarity are the extractor's self-graded scores. It does not mention pagination or ordering beyond the scoring hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the definition, then adds lifecycle and scoring notes in three short, well-separated paragraphs. The relevance/action_clarity sentence is informative rather than filler, though the description is a touch longer than strictly necessary for a read-only list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the shape of returned items: the three lifecycle states, task_id on materialized items, and the two scoring fields. That is enough for an agent to interpret results; only ordering/pagination behavior is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents meeting_id, workspace_id and incluir_descartados. The description restates the dismissed-by-default behavior and explains what 'dismissed' means, which adds marginal conceptual value but no syntax or format beyond the schema — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (the AI-extracted actionables of a meeting recap) and immediately scopes it against the sibling space by clarifying these are not yet tasks, which separates it from get_tasks/confirm_meeting_actionable. An agent knows exactly what it retrieves without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage is clear (review the AI-proposed actionables of a given recap), and it notes that dismissed items are hidden by default, which hints at the incluir_descartados use case. However it never names the natural alternatives (confirm_meeting_actionable, dismiss_meeting_actionable, get_tasks) or states when to prefer this over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meetingsARead-onlyInspect
Lista los RECAPS del workspace: las reuniones grabadas.
Un recap es una reunión que se grabó y procesó: queda el audio, la
transcripción, un resumen por tramos y los ACCIONABLES que la IA sacó. No
es una entrada de calendario (eso es get_events) ni una nota escrita a mano.
Esta lista no trae la transcripción, que es larga: pedí una puntual con
get_meeting, y sus accionables con get_meeting_actionables.| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 50) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada | |
| meeting_type_id | No | ||
| meeting_group_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, non-destructive, and closed-world safety. The description adds useful behavioral scope beyond annotations: this list excludes the long transcription, and a recap includes audio, transcript, summaries, and AI-extracted actionables. It does not cover auth, rate limits, or pagination, but those are secondary here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight paragraphs: purpose first, then a definition of recap, then routing to detail tools. Every sentence adds information with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete enough to select the tool, but incomplete for invocation because two parameters (meeting_type_id, meeting_group_id) remain undocumented in both schema and description. With no output schema and 50% schema coverage, the description could have done more to explain the filter parameters and list behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: limit and workspace_id are documented, but meeting_type_id and meeting_group_id have no descriptions anywhere. The tool description only implies workspace scoping and adds no meaning for the undocumented filters, failing to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Lista) and resource (RECAPS del workspace: las reuniones grabadas), and defines what a recap is. It explicitly distinguishes this tool from get_events (calendar entries) and handwritten notes, so an agent can route correctly without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when not to use this tool (not calendar entries, not notes) and names the alternatives for deeper detail: get_meeting for a single recap and get_meeting_actionables for action items. The guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meetings_groupsCRead-onlyInspect
Lista los grupos de reuniones del workspace
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| meeting_type_id | No | Filtrar por tipo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond that — no return shape, no pagination or result-size behavior, no indication of what a 'group' object contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and the resource front-loaded. It is efficient, though the extreme terseness is part of why key context is missing rather than being a virtue of tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and an undefined domain concept ('grupo de reuniones'), the description leaves the agent without enough to call this correctly against a dense sibling set. It neither defines the entity nor distinguishes the tool from adjacent list/type endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented in the schema itself, including the flexible workspace_id ('UUID o nombre') and the meeting_type_id filter. The description only implies workspace scoping and never mentions the type filter, so it adds no meaning beyond the schema — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Lista') and resource ('grupos de reuniones') scoped to the workspace, so the basic action is understandable. However, it gives no differentiation from close siblings like get_meetings, get_meeting, or get_meeting_types, and never explains what a 'grupo de reuniones' actually is versus a meeting type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of any alternative. An agent cannot tell from the text whether this is the right call versus get_meetings or get_meeting_types for a given request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meeting_typesCRead-onlyInspect
Lista los tipos de reunión del workspace
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, covering the safety profile. The description adds no additional behavioral context such as pagination, filtering, or return format, so it provides no value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple list tool, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with full schema coverage and annotations covering safety, the description is minimally complete. However, it lacks any mention of return values or how the meeting types are structured, which would be helpful since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, fully documenting the optional workspace_id parameter. The description adds no parameter semantics beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lista') and resource ('los tipos de reunión del workspace'), making the tool's purpose clear. However, it does not distinguish this tool from siblings like get_meetings or get_meeting, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The description only states what it does, not when it is appropriate or what alternatives exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_playbookARead-onlyInspect
Las recetas para las preguntas típicas: con qué tools se contestan, en qué orden y cómo entregar.
Sin skill: la lista (nombre, para qué, argumentos). Con skill y sus argumentos: la receta armada, para seguirla.
Hay recetas para estas preguntas: investigar una persona, proyecto u
organización; dónde o cuándo se habló de algo; seguimiento de un tema; qué se decidió; preparar o
resumir una reunión; accionables sin confirmar; estado de tareas o de un tablero; tareas de Jira o
ClickUp; lo delegado; el día o la semana; ponerse al día después de unos días; qué está en riesgo;
cómo se relacionan dos cosas; redactar un seguimiento; estudiar un tema; pasar notas a tareas;
ordenar el Atlas.
Y para HACER: armar el Secondbrain de una cuenta nueva, anotar en el diario, recordarme algo, crear una tarea, agendar, completar tareas,
registrar una reunión no grabada, cerrar el día, planificar la semana, ordenar vencidas, armar
un entregable, escribir o actualizar un documento, armar un tablero visual, actualizar el Atlas.
Para una pregunta suelta ("¿en qué quedó X?") no hace falta receta: recall alcanza.| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Argumentos de la receta, ej. { persona: 'Pablo' } | |
| skill | No | Nombre de la receta (de la lista). Omitir para listarlas |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds value beyond that by explaining the two behavioral modes (skill omitted → list; skill + args → assembled recipe) and what the recipe contains (tools, order, delivery), which is genuine operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core mechanics are correctly front-loaded in the first paragraph, but roughly half the text is a long enumeration of recipe topics. That list aids discovery, yet it is verbose and could be tightened without losing the routing signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers both invocation modes, the breadth of available recipes, and the alternative tool for simple questions. With annotations carrying safety and no output schema present, the only minor gap is not describing the shape/format of the returned recipe payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema alone justifies a baseline 3. The description goes further by clarifying the interaction between the two params: omitting skill yields the list, and supplying skill with its arguments yields the ready-to-follow recipe, which explains intent beyond the schema's terse field notes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first two sentences state precisely what the tool returns: recipes for typical questions, with which tools, in what order, and how to deliver. It cleanly separates the two modes (list of recipes vs. an assembled recipe) and names its sibling recall as the different tool for single questions, so an agent can tell them apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing: use this for multi-step/typical questions, and 'Para una pregunta suelta... no hace falta receta: recall alcanza' gives the negative case and the alternative by name. The enumerated coverage list further lets an agent self-select on topic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_notesARead-onlyInspect
Obtiene las últimas N notas diarias con resumen de IA y extracto de contenido (máx. 1000 chars por nota).
Usar para: ver qué pasó esta semana, revisar actividad reciente, entender el contexto de trabajo de los últimos días.
Para leer una nota completa: usar get_daily_note con la fecha específica.
Para buscar en el contenido: usar search_daily_notes.
Retorna: date, summary (resumen IA), content (extracto), has_intelligence.| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Días hacia atrás (default: 7) | |
| limit | No | Máximo de notas (default: 7) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered structurally. The description adds meaningful behavior beyond that: the 1000-char truncation per note and the returned fields (date, summary, content, has_intelligence). It doesn't discuss auth or rate limits, but those are minor for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The 'Usar para' / alternatives / 'Retorna' structure is front-loaded and scannable, with each sentence carrying distinct information. Slightly verbose in the middle section but nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by enumerating the return fields, and it covers purpose, scenarios, and alternatives for a simple optional-param read tool. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so days, limit, and workspace_id (including the omit-means-all-workspaces behavior) are already documented in the schema. The description's mention of 'últimas N notas' loosely maps to limit but adds no syntax or default detail beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource ('Obtiene las últimas N notas diarias') and adds distinguishing scope details (AI summary, content excerpt, 1000-char cap). It explicitly differentiates itself from get_daily_note and search_daily_notes, so an agent can route without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'Usar para' block names concrete scenarios (reviewing this week's activity, recent work context), and two follow-up lines name the exact alternative tools and the conditions that select them (full note vs. content search). This is explicit when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_remindersARead-onlyInspect
Los recordatorios del workspace: los que van a sonar y los que ya sonaron.
Un recordatorio ocurre a una hora, no vence un día: a esa hora suena el
teléfono. Nace de una línea de la nota diaria («⏰ 15:30 — llamar a Ana»),
de una tarea creada con `remind_time`, o del bot de chat.
`status`: `pending` todavía no sonó, `sent` ya se mandó (`sent_channel`
dice por dónde), `cancelled` se dio de baja.| Name | Required | Description | Default |
|---|---|---|---|
| desde | No | Sólo los de este día en adelante, YYYY-MM-DD | |
| limit | No | Máximo (default: 50) | |
| status | No | Filtrar por estado (default: todos) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/destructiveHint=false, so the safety profile is covered. The description adds real context beyond them: a reminder is time-bound rather than day-bound, and its provenance and status lifecycle (pending/sent with sent_channel/cancelled) are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core statement, then adds conceptual context and the status legend. Slightly long but each block carries information; no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description never describes the shape of a returned reminder (fields like time, text, channel other than the passing mention of sent_channel). Concept and filtering are well covered, but an agent cannot anticipate return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning to the status enum (pending = not yet fired, sent = already delivered with a channel, cancelled = withdrawn) that the bare enum values do not convey. desde/limit/workspace_id are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource precisely ('los recordatorios del workspace') and scopes it to both upcoming and already-fired reminders, which separates it from cancel_reminder/update_reminder implicitly. The verb is only implied by the name, so sibling differentiation is not spelled out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains what a reminder is, where it originates (daily-note line, task with remind_time, chat bot) and what each status filter means, which implies how to use the status parameter. It never says explicitly when to call this instead of get_agenda or get_tasks, so usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportARead-onlyInspect
Obtiene el contenido completo de un reporte específico por su ID.
Usar después de get_reports o get_last_report para leer el texto íntegro de un informe.
Retorna: id, report_type, report_date, generated_at, content (texto plano, máx. 15000 chars), word_count.| Name | Required | Description | Default |
|---|---|---|---|
| report_id | Yes | ID del reporte (campo 'id' de get_reports) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only profile, so the bar is higher; the description adds real behavioral context by disclosing the content length cap (15000 chars), plain-text format, and the returned fields including word_count.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a compact return-field list; the core action is front-loaded and every clause earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the return fields and flagging the size limit, giving the agent everything needed to call and interpret the tool without opening anything else.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both report_id and workspace_id (including the 'omit = all workspaces' behavior) are already fully documented in the schema. The description adds nothing beyond that, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Obtiene) and resource (contenido completo de un reporte específico por su ID), and the sibling routing (get_reports / get_last_report) makes it clearly distinct from the list and last-report tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent to use it after get_reports or get_last_report, which gives clear sequencing context. It lacks an explicit when-not statement, but the workflow guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportsARead-onlyInspect
Lista todos los reportes/informes del workspace SIN contenido (solo metadatos).
Usar para: ver historial de reportes, elegir cuál consultar, ver cuándo se generó cada uno.
Para leer el contenido de un reporte específico: usar get_report(report_id).
Para generar un nuevo reporte IA: usar generate_report.
Tipos comunes: 'daily', 'weekly', 'monthly'.
Retorna: id, report_type, report_date, generated_at, word_count, total_tokens.| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo resultados (default: 20) | |
| offset | No | Offset para paginación | |
| report_type | No | Filtrar por tipo: 'daily', 'weekly', 'monthly' | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds that results are metadata-only with no content, plus the exact returned fields, which is useful context beyond the annotations. It does not mention pagination behavior, hence not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and is organized into scannable lines for use cases, alternatives, types, and returns. Slightly redundant in restating the report types already documented in the schema's report_type field.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the returned fields (id, report_type, report_date, generated_at, word_count, total_tokens). Combined with clear routing to siblings, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema. The description echoes the 'daily/weekly/monthly' types that map to report_type but adds no format or constraint detail beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Lista) and resource (reportes/informes) plus scope (SIN contenido, solo metadatos), which immediately distinguishes it from get_report and generate_report. An agent can tell it apart from siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Usar para:' block gives the when-to-use cases (view history, choose one to read, check generation date), and it names both alternatives with their selecting conditions: get_report(report_id) for content and generate_report for creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_settingsARead-onlyInspect
Los ajustes de la persona, como los muestra la pantalla de Ajustes: · avisos: reminders (recordatorios), recaps (recaps listos), tasks (tareas que te asignan), shares (te compartieron algo), calendar (eventos, con calendar_alerts = minutos antes), colgados (lo que requiere atención, una vez por día a colgados_hora), colgados_reunion (sumarlo al aviso de una reunión), colgados_weekends, informe_vos (mail «Vos» cada informe_vos_dias). true = prendido. · cuenta: idioma, tema oscuro, pomodoro. · workspace (si se pasa workspace_id): zona horaria, cierre automático del día y digest programado (hora en la zona de la persona). Conectar el calendario, WhatsApp/Telegram, Mi voz o ClickUp/Jira se hace en la app: how_to_in_app.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | Para ver también los ajustes de ese workspace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description goes beyond them by mapping the returned content (avisos/cuenta/workspace), stating 'true = prendido' semantics, and setting a boundary: connecting calendar, WhatsApp/Telegram, Mi voz, or ClickUp/Jira must be done in-app via how_to_in_app, not through this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded before the detailed bullet enumeration, and the bullets are tight. The listing is long but each item is informative rather than filler, so the length is justified by the schema-less return surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing return content, and it does so thoroughly by enumerating the settings categories and their meaning. Minor gap: it never states the return shape/format, but callers get enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (workspace_id is documented), which sets a baseline of 3. The description adds real meaning: passing workspace_id also returns that workspace's timezone, automatic day-close, and scheduled digest (with its hour expressed in the person's timezone).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (the person's settings, mirroring the Settings screen) and enumerates the three content groups (avisos, cuenta, workspace). It does not explicitly contrast with siblings like update_settings or get_user_profile, but the read-oriented framing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: it notes that workspace settings are additionally returned 'si se pasa workspace_id'. There is no explicit when-to-use/when-not guidance and no named alternatives (e.g., update_settings for changes), leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_storage_usageARead-onlyInspect
Obtiene el uso de almacenamiento del workspace: total de archivos subidos y espacio consumido.
Usar cuando el usuario pregunta cuánto espacio usa, si puede subir más archivos, o para auditar archivos del workspace.
Para ver los archivos individuales: usar get_all_files.
Retorna: total_files (cantidad), total_size_bytes, total_size_mb (redondeado a 2 decimales).| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds value beyond that by disclosing the exact return fields (total_files, total_size_bytes, total_size_mb rounded to 2 decimals) in the absence of an output schema. It does not cover auth or workspace-resolution behavior, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded blocks — purpose, when-to-use/alternative, return shape — each earning its place with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with no output schema, the description supplies the missing pieces: trigger conditions, the sibling alternative, and the return field list. An agent has everything needed to select and call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, and the schema already explains that workspace_id accepts a UUID or a user-spoken name and may be omitted when the token has a fixed workspace. The description adds no further parameter guidance, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Obtiene el uso de almacenamiento del workspace') and immediately scopes it to aggregate counts and consumed space rather than individual files. It explicitly names the sibling get_all_files for the file-level view, so an agent can distinguish it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives three concrete triggering situations (user asks about space used, whether more files can be uploaded, or auditing workspace files) and a routing rule away from itself ('Para ver los archivos individuales: usar get_all_files'). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_commentsARead-onlyInspect
El hilo de comentarios de una tarea, del más viejo al más nuevo.
Los comentarios son la conversación sobre una tarea, y existen sobre todo
para los tableros compartidos: es donde el dueño y el invitado se hablan sin
compartir el workspace. Funcionan igual en una tarea propia.| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 50) | |
| task_id | Yes | ID numérico de la tarea | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds valuable context beyond that: the chronological ordering and the shared-board semantics that explain why comments exist. It does not mention pagination or result shape, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Ordering is front-loaded in the first sentence, with the second paragraph supplying context. The explanatory paragraph is slightly verbose relative to its value but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description supplies the key return-value characteristic (oldest-to-newest ordering) and the domain meaning of comments, while annotations cover the safety profile and the schema covers all params. Missing only minor details like the flat list shape or pagination behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, task_id and workspace_id are fully documented in the schema itself. The description adds no parameter-level detail (e.g. default ordering interaction with limit), so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific resource ('El hilo de comentarios de una tarea') and its ordering ('del más viejo al más nuevo'), so the agent knows exactly what it retrieves. It does not explicitly differentiate from close siblings like get_task_detail or add_task_comment, keeping it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the meaning and context of comments (conversation on shared boards, owner–guest dialogue without sharing the workspace), which implies when they matter. However there is no explicit 'use this when… / use X instead' routing, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_destinationsARead-onlyInspect
Dónde puede nacer una tarea además de Secondbrain: las listas de ClickUp y los proyectos de Jira que el workspace tiene conectados y activados.
Usar ANTES de create_task / update_task cuando la persona pide una tarea "en
Jira" o "en ClickUp" (o "en la lista UBI", "en el proyecto SB") y no se sabe
cómo se llama el destino. De cada uno: `id`, nombre, `clave` (Jira),
dónde está, si `sube` (false = modo «Traer»: baja de allá pero no recibe
tareas nuevas) y si es el `por_defecto` (donde caen las tareas nuevas que no
eligen otro destino, y lo hacen solas).
Si un workspace no devuelve nada de una herramienta, no la tiene conectada:
se conecta desde la app (how_to_in_app).
Sin workspace_id mira todos a la vez.| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds useful return-field semantics (id, name, Jira key, location, whether it 'uploads', default destination) and the connection-state caveat, which goes beyond the annotations but is not exhaustive about ordering or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then usage, return fields, connection caveat, and workspace behavior. Every sentence contributes to selection or invocation, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description describes the shape and meaning of returned destinations, including the 'sube' and 'por_defecto' flags. Combined with annotations and full schema coverage, an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single workspace_id parameter is fully documented in the schema as accepting a UUID or name. The description only restates that omitting it looks across all workspaces, adding no new syntax or constraint beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it returns the possible birthplaces of tasks beyond Secondbrain, namely connected ClickUp lists and Jira projects. The scope and parenthetical examples make it distinguishable from generic task-listing tools like get_tasks or get_boards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use it BEFORE create_task or update_task when the user requests a task in Jira/ClickUp and the destination name is unknown. It also explains the omit-workspace behavior and the fallback if a tool is not connected, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_detailARead-onlyInspect
Una tarea entera, por su id: todos los campos, sin recortar la descripción.
Usar cuando hace falta el contexto completo de UNA tarea — la descripción
larga (get_tasks la trae igual pero la lista es más ruidosa), de qué recap
salió, quién es el responsable, qué tramo tiene, si está en el backlog.
Devuelve además `comentarios`: cuántos tiene y el último. El hilo entero
se lee con get_task_comments.| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ID numérico de la tarea (campo 'id' de get_tasks) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds real behavioral context beyond that: the description field is returned untruncated (unlike the noisier list), the recap/owner/tramo/backlog fields come back, and `comentarios` returns only a count plus the last one rather than the full thread.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what it returns, then the usage condition, then the comments caveat. Every sentence carries information, though the recap/owner/tramo/backlog enumeration is slightly listy and could be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must convey returns, and it does: all fields, untruncated description, and a `comentarios` summary with its own escape hatch to get_task_comments. Adequate for a simple two-parameter read tool, with only minor gaps around exact response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both task_id and workspace_id (including the omit-to-get-all-workspaces behavior) are already documented in the schema. The description only implies 'por su id' and adds no syntax or format detail beyond the structured fields, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: fetch one whole task by id, all fields, with the description untruncated. It differentiates itself from the siblings that could be confused for it (get_tasks, get_task_comments) so the agent can pick it apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it ('cuando hace falta el contexto completo de UNA tarea') and contrasts with get_tasks ('la lista es más ruidosa'). It also routes the comment thread to get_task_comments, naming the alternative and the condition that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tasksARead-onlyInspect
Lista las tareas ABIERTAS del workspace: pendientes y en curso.
ESTADOS — son cuatro, y el backlog no es ninguno de ellos:
· pending — pendiente, todavía no se arrancó
· wip — en curso (`wip_since` dice desde cuándo)
· completed — hecha ⟶ salen por get_working_log, no por acá
· cancelled — cancelada ⟶ ídem
`backlog` es un booleano APARTE que convive con pending: una tarea del
backlog sigue estando pendiente, sólo que apartada del radar. Por eso no
viene en esta lista salvo que la pidas (`backlog: "incluir"` o `"solo"`).
URGENCIA — `vencidas | hoy | manana | esta_semana | proxima_semana | sin_fecha`.
Es una etiqueta DERIVADA de `due_date` contra el día de hoy en la zona
horaria del usuario, recalculada en cada llamada (la guardada en la fila
envejece sola y se devuelve aparte como `urgency_guardada`). No es una
prioridad que alguien eligió: para eso está `urgent`, que es el override
manual — "esto es urgente aunque la fecha diga que no".
VENCIMIENTO vs TRAMO — `due_date` es cuándo vence. `start_date`/`end_date`
son el tramo en la línea de tiempo y en casi todas están en NULL: eso
significa "nadie declaró cuánto dura", no "dura un día". Guardar un tramo
guarda también `due_date` igual al fin, para que las dos vistas no se
contradigan.
RESPONSABLE vs RELACIONADOS vs OWNER — son tres cosas distintas:
· `assignee_entity_id` (+ `assignee_name` resuelto) es UNA persona: la
responsable. Es lo que contesta "¿de quién es esta tarea?".
· `related_entities.people` son MUCHAS y quiere decir "gente relacionada":
la que aparece en la nota, la que hay que avisar, la que lo pidió.
· `owner` es `'yo' | 'otro'`: dice si se delegó, no a quién.
PRIVADAS — una tarea `private` no sale por acá ni se comparte a ningún
tablero. Pedila explícitamente con `incluir_privadas: true` si hace falta.
TODOS LOS WORKSPACES — sin `workspace_id` trae las de todos los workspaces
de la persona en una sola llamada, cada una con su `workspace`. No la llames
una vez por workspace, ni una vez por filtro si una llamada sin filtro lo cubre.
Para el detalle largo de una: get_task_detail. Para las cerradas:
get_working_log. Para lo que entra en un tablero: get_board_tasks.| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo resultados (default: 50) | |
| query | No | Búsqueda parcial por título (case-insensitive, ej: 'email' encuentra 'Responder email cliente') | |
| source | No | De dónde viene: 'clickup' o 'jira' (las que se traen o se subieron a esa herramienta), 'externas' (ClickUp o Jira), 'propias' (nacieron en Secondbrain). Omitir = todas | |
| status | No | Filtrar por estado. Omitir = pending y wip | |
| backlog | No | Qué hacer con el backlog (default: excluir). 'solo' contesta '¿qué dejé para después?' | |
| urgency | No | Filtrar por urgencia derivada (la de hoy, no la guardada) | |
| assignee | No | Responsable: nombre canónico de la persona en el Atlas, o su id numérico | |
| con_tramo | No | Sólo las que tienen tramo (start_date/end_date) declarado | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada | |
| sin_responsable | No | Sólo las que no tienen responsable declarado | |
| incluir_privadas | No | Incluir las tareas marcadas como privadas (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a safe read (readOnlyHint=true), but the description adds substantial domain behavior beyond them: private tasks are excluded unless incluir_privadas is set, urgency is recomputed each call while the stored value ages (returned separately as urgency_guardada), and omitting workspace_id collapses all workspaces into one call. These are exactly the kind of runtime traits an agent cannot infer from annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is long, but it is front-loaded with the core list behavior and then partitioned into clearly labeled blocks (ESTADOS, URGENCIA, VENCIMIENTO, RESPONSABLE, PRIVADAS, TODOS LOS WORKSPACES), so nothing reads as padding. Some of the VENCIMIENTO/RESPONSABLE prose is more than what a filter-selection task strictly needs, keeping it just short of 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, zero-required read tool with no output schema and annotations covering the safety profile, the description supplies what is missing: status/backlog semantics, urgency derivation, the three distinct notions of person, privacy behavior, and cross-workspace behavior. It even names returned fields (wip_since, urgency_guardada, assignee_name, related_entities.people), so an agent knows enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the schema already documents each parameter including enums. The description nevertheless adds meaning the schema does not: it explains that urgency is derived from due_date re-evaluated against today rather than stored, that backlog coexists with pending rather than replacing it, and that due_date/start_date/end_date can disagree. That raises it above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+scope: 'Lista las tareas ABIERTAS del workspace: pendientes y en curso'. It immediately delimits what is included (pending/wip) and what is not, so an agent can tell it apart from get_completed_tasks, get_working_log and get_board_tasks without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing paragraph names three alternatives and the condition that selects each ('Para el detalle largo de una: get_task_detail. Para las cerradas: get_working_log. Para lo que entra en un tablero: get_board_tasks'). It also gives a strong negative instruction: don't call it once per workspace nor once per filter if an unfiltered call covers it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_usageARead-onlyInspect
Obtiene estadísticas de uso de tokens de IA del workspace por fecha y función.
Usar para: ver cuántos tokens se consumieron, auditar costos de IA, monitorear el uso del plan.
Retorna totales agregados + filas individuales por función y fecha.| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Días hacia atrás (default: 30) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the tool as read-only and non-destructive, so the safety profile is covered. The description adds useful behavioral context by explaining the return shape: aggregate totals plus individual rows per function and date, which matters because no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, front-loaded lines: purpose, usage cases, and return shape. Every sentence earns its place and there is no redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool with full schema coverage, the description covers purpose, usage, and return structure. It lacks detail on pagination or output field granularity, but no output schema exists and the core invocation context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented. The description adds no syntax, default, range, or scoping detail beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb, resource, and scope: it obtains AI token usage statistics for the workspace by date and function. 'Tokens de IA' distinguishes it from related usage tools such as get_storage_usage, so an agent can identify its purpose without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Usar para' section gives clear use cases: seeing token consumption, auditing AI costs, and monitoring plan usage. It does not name alternative sibling tools or explicit when-not conditions, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trashARead-onlyInspect
Lo que está en la papelera: documentos, canvases, recaps, clips y entidades del Atlas que se borraron y todavía se pueden recuperar con restore_from_trash.
Cada ítem trae `tipo` (document | canvas | meeting | clip | entity), `id`,
`nombre` y cuándo se borró. Las entidades fusionadas no aparecen: no se
borraron, se absorbieron en otra. Sin workspace_id mira todos a la vez.| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | Sólo de este tipo | |
| limit | No | Máximo (default: 50) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds real behavioral content beyond that: the returned fields (tipo, id, nombre, deletion time) and the notable exclusion that merged entities never appear because they were absorbed, not deleted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource and its contents, then the item shape, then the merged-entity caveat and scope note. Dense and mostly waste-free, though the item content and field list overlap slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries return-value burden and does so: it names the fields each item returns, the allowed tipo values, and the workspace scoping. Nothing an agent needs to call or interpret this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three params are documented there, so the baseline is 3. The description restates the workspace_id scope behavior ('mira todos a la vez') already in the schema and adds no new syntax or format detail for tipo or limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('lo que está en la papelera') and enumerates the five item types it covers (documentos, canvases, recaps, clips, entidades del Atlas). It also names the sibling restore_from_trash, making it unmistakable next to the many delete_* tools in the catalog.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly ties the tool to recovery by naming restore_from_trash as the follow-up action and clarifies scope ('Sin workspace_id mira todos a la vez'). It gives clear context for use but stops short of stating when NOT to use it or contrasting it with a hypothetical 'active items' sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_planARead-onlyInspect
Obtiene el plan de suscripción del usuario (Free, Hobby, Pro) y qué incluye.
Usar cuando el usuario pregunta:
- "¿qué plan tengo?"
- "¿cuáles son mis límites?"
- "¿puedo hacer X?" (donde X depende del plan)
Retorna: plan_id, plan_name, source (de dónde vino el plan: paddle, promo, admin),
started_at y features (el objeto con lo que incluye: booleanos por función y
topes numéricos como storage_mb, workspaces, transcription_hours; una clave
ausente o en null significa SIN TOPE).| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: the meaning of the 'source' field and the convention that an absent or null feature key means SIN TOPE, which an agent could not infer otherwise.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then a bulleted trigger list, then a return-field enumeration. Every sentence carries information, though the return-field paragraph is dense and could be tightened slightly without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description takes on the burden of explaining the return payload and does so fully: plan_id, plan_name, source, started_at, and the features object with both boolean flags and numeric caps plus the null-means-unlimited convention. Nothing an agent needs to interpret the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4 regardless of schema coverage. The description correctly adds no parameter detail and focuses its space on return semantics instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (obtiene el plan de suscripción del usuario) and enumerates the possible values (Free, Hobby, Pro) plus what it covers. This makes it clearly distinguishable from adjacent tools like get_settings, get_me, or get_storage_usage without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides three concrete trigger questions, including the conditional case '¿puedo hacer X?' where the answer depends on the plan, which implicitly separates it from usage-metering tools. It does not explicitly name alternatives or exclusions, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_profileARead-onlyInspect
Obtiene el perfil del usuario autenticado (id, email, full_name, avatar_url, description). Solo funciona con JWTs de usuario — NOT disponible para tokens sb_* (esos son tokens de workspace, no de usuario). Retorna también first_name y last_name derivados.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable context by specifying the token-type prerequisite and the derived first_name/last_name return fields, which goes beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what the tool does, followed by the auth constraint and extra return fields. Every sentence adds useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-output-schema read tool, the description is complete: it names the resource, lists returned fields including derived names, and states the token-type requirement. An agent has enough to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, which is the baseline 4 per the rubric. The description does not need to explain parameter semantics and instead focuses on the authenticated-user context and return fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Obtiene) and resource (perfil del usuario autenticado), and lists the returned fields. However, it does not explicitly differentiate from the sibling tool get_me, which likely overlaps in purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear auth condition: only works with user JWTs and not with sb_* workspace tokens. It does not name alternative tools for the workspace-token case, so the 'vs alternatives' aspect is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_working_logARead-onlyInspect
El historial de trabajo: las tareas cerradas —hechas y canceladas—, de la más reciente para atrás.
Es lo que contesta "¿qué hice esta semana?". Las abiertas están en
get_tasks; un informe escrito por la IA se pide con generate_report.
CUIDADO CON LA FECHA DE CIERRE: `completed_at` no siempre está. Sólo
algunos caminos la escriben (el cierre del día, este MCP, los recordatorios,
la sincronización con ClickUp); marcar una tarea como hecha desde la app da
vuelta el estado y no la toca. Por eso el orden cae a `updated_at` cuando
falta, y por eso no sirve para contar "cuántas cerré el martes" sin
aclararlo.| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 50) | |
| offset | No | ||
| status | No | Filtrar por estado | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada | |
| milestones_only | No | Solo tasks marcadas como milestones |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world), but the description adds substantial non-obvious behavior: completed_at is only written by certain paths (day close, this MCP, reminders, ClickUp sync) and is skipped when a task is marked done from the app, so ordering falls back to updated_at. That is exactly the kind of data-reliability context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and well-organized: what it is, what it answers, alternatives, then a bolded caveat. The caveat paragraph is dense but every clause carries real information. Slightly long, but nothing reads as padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description does some of that work by explaining ordering and the completed_at fallback. Combined with the annotations and the 80%-covered schema, an agent has enough to call it correctly; return shape and pagination remain unstated but are minor for a filtered list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80% with descriptions on limit, status, workspace_id and milestones_only, so the schema does most of the work. The description reinforces the status meaning (completed/cancelled) and the ordering logic but adds no syntax or format detail beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource with scope: closed (completed and cancelled) tasks ordered most-recent-first. It explicitly distinguishes itself from get_tasks (open ones) and generate_report (written report). It does not, however, differentiate from the very close sibling get_completed_tasks, leaving one ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage context ('answers what did I do this week'), names two alternatives (get_tasks, generate_report), and even states a when-not ('not useful for counting how many I closed on Tuesday without clarifying'). It omits any mention of the near-identical get_completed_tasks sibling, which is a real routing gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspaceARead-onlyInspect
Obtiene detalles de un workspace específico incluyendo configuración/settings
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, covering the safety profile. The description adds that returned details include configuration/settings, which is useful content scope, but says nothing about permissions, token-scoped behavior, or how the result differs from get_settings. With annotations carrying the safety burden, this is an adequate but modest addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource and the returned content are stated immediately and nothing needs trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only tool with no output schema and full schema coverage, the description is nearly sufficient: it names the entity and what the response contains. The only gap is that it does not clarify the relationship to the overlapping get_settings sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the workspace_id schema already explains that it accepts a UUID or a user-spoken name and may be omitted when the token has a fixed workspace. The description adds no parameter meaning beyond that, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Obtiene detalles de un workspace específico', plus the scope of the payload ('incluyendo configuración/settings'). It does not name or differentiate itself from siblings like list_workspaces or get_settings, which also deal with workspace/configuration data, so an agent gets a clear purpose but no disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The qualifier 'específico' implies this is for a single known workspace rather than enumeration, which implicitly contrasts with list_workspaces. However, no explicit when-to-use, prerequisites, or alternative-tool routing is given, so usage is only inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_relationsBRead-onlyInspect
Obtiene todas las relaciones entre entidades del workspace
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safe-read profile is covered and the bar is lower. The description adds nothing beyond the basic action: no return-format, pagination, or volume context for what could be a large relation dump.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, correctly sized for a simple list operation. Nothing is repeated or wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety this is borderline adequate, but there is no output schema and the description never hints at what is returned (relation objects, counts, format). Given the dense set of relation-related siblings, a phrase distinguishing workspace-wide from entity-scoped results would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single optional workspace_id parameter, and the schema itself explains the UUID-or-name format and the omit-if-fixed-workspace rule. The description adds no parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb (Obtiene) and resource (relaciones entre entidades del workspace), scoping to the workspace level. However, it never names the closely-related sibling get_entity_relations, so an agent must infer the workspace-wide vs. entity-scoped distinction on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use or when-not-to-use guidance and never points to an alternative, despite a crowded sibling set containing get_entity_relations, get_document_entities and add/delete_entity_relation. The only contextual hint ('Omitir si el token ya tiene workspace fijo') lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
how_to_in_appARead-onlyInspect
Para lo que se hace en la app de Secondbrain y NO desde este chat: grabar una reunión (grabar_reunion), transcribir un audio (subir_audio), dictar al Diario (dictar), guardar páginas o mails (clipper), usar el bot de WhatsApp o Telegram (whatsapp_telegram), conectar el calendario (conectar_calendario), registrar la voz (mi_voz), conectar ClickUp o Jira (integraciones), compartir (compartir), subir archivos (archivos) o saber qué app instalar para qué y bajarla (instalar: la de escritorio para grabar reuniones, la del teléfono para los avisos, la extensión para los clips).
Devuelve por qué no se hace desde acá, los pasos, y los enlaces de descarga
que sirven para eso (iPhone, Android, Mac, Windows, web, extensión), con la
última versión. Usala en vez de decir «no puedo»: pasale los pasos y los
enlaces a la persona.| Name | Required | Description | Default |
|---|---|---|---|
| funcion | Yes | Qué quiere hacer la persona |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral context: it returns why the task is not done from chat, the steps, and download links per platform with the latest version.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the scope and then states the return contents and usage instruction. It is somewhat long because it repeats the full enum in prose, but the length is justified by the need to cover eleven distinct app functions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only guidance tool with one fully documented enum parameter and no output schema, the description is complete: it covers scope, all supported functions, what will be returned, and the intended replacement for a refusal response. No critical behavior or usage detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the enum already lists all valid functions, so the baseline is 3. The description nevertheless maps each enum value to natural-language task descriptions and adds useful nuance for “instalar” by explaining which app is for meetings, notifications, or clips.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific purpose: explain how to do Secondbrain app-only tasks that cannot be done from chat, and return reasons, steps, and download links. It enumerates the exact task areas, so the agent can distinguish this guidance tool from CRUD or search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly says to use this instead of replying “no puedo” and limits scope to app actions “NO desde este chat.” However, it does not name adjacent guidance siblings such as get_guide or get_playbook, so alternative-tool routing is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_event_taskAInspect
Vincula una tarea a un evento del calendario (o la desvincula): la tarea aparece en el evento y el evento en la tarea. Es lo que hace «agendar esta tarea» una vez creado el evento con create_event. action: attach (default) | detach.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | ||
| task_id | Yes | ID numérico de la tarea | |
| event_id | Yes | ID del evento (de get_events) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), so the description only needs to add context beyond that. It does: it explains the symmetric link created in both directions and that detach reverses it, which is genuine behavioral detail an agent needs to reason about side effects. It stops short of describing permissions or workspace scoping.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight paragraph: the action and its bidirectional effect come first, then the user-intent mapping, then the action values with the default. Every clause carries information, though the parenthetical and the prose 'es lo que hace' phrasing add slight redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with annotations and no output schema, the definition covers what the link does in both directions, the prerequisite event creation, and the action default and alternatives. Workspace requirement and error behavior are left to the schema, but nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% and the schema already documents task_id, event_id and workspace_id. The description adds real value by disclosing that action defaults to 'attach', which the bare enum does not convey. That default is the only extra semantic supplied; the rest of the parameter meaning lives in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource (linking a task to a calendar event, or unlinking it) and immediately clarifies the bidirectional effect: the task shows up in the event and vice versa. It also ties the tool to the sibling create_event, so an agent can distinguish it from the many other link/document tools without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear selection context — this is the mechanism behind «agendar esta tarea» and it is used after the event exists (created via create_event). It also surfaces the detach alternative. There is no explicit when-not guidance (e.g. what to do if the link already exists), which keeps it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_artifactsARead-onlyInspect
Lista los artefactos guardados del workspace: id, nombre, tipo, qué modelo lo hizo, versión actual y de qué documento cuelga. Para actualizar uno, usar su id en save_artifact.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo (default: 50) | |
| document_id | No | Sólo los que cuelgan de este documento | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds value beyond that by enumerating what comes back (id, name, type, originating model, current version, parent document), which matters because there is no output schema; it does not cover pagination or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler: the scope and returned fields come first, then the actionable cross-reference. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-param list tool, the description plus annotations plus a 100%-covered schema cover everything needed. Because no output schema exists, the field enumeration in the description usefully stands in for return-value documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, document_id and workspace_id are already fully documented in the schema (including the 'omit = ALL workspaces' semantics). The description only alludes to document attachment via 'de qué documento cuelga' and adds no syntax or filtering detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Lista los artefactos guardados del workspace') with the scope stated, and it enumerates the fields returned (id, nombre, tipo, modelo, versión, documento padre). This lets an agent distinguish it from the single-item sibling get_artifact without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence routes a follow-up action explicitly: to update an artifact, pass its id to save_artifact. That is a clear downstream-use hint, but there is no explicit when-to-use vs. when-not guidance (e.g. versus get_artifact or search tools) for the listing itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspacesARead-onlyInspect
Lista los workspaces del usuario, con su rol y configuración. Con token sb_* retorna solo el workspace vinculado al token. Sirve para conseguir el workspace_id cuando no se conoce.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description still adds real behavioral context: with an sb_* token the result narrows to only the token-linked workspace, which an agent could not infer from annotations. No pagination or result-size notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The core purpose is front-loaded, followed by the token-scoping caveat and then the intended use case in priority order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, the description covers purpose, scoping behavior, and what the response contains (role and configuration). It is nearly complete; a note on whether results are filtered by permissions or limited in count would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero input parameters, so there are no parameter semantics to explain; the baseline for a parameterless tool is 4. The schema coverage is 100% on an empty object, so nothing is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lista los workspaces del usuario') and adds the payload detail (rol y configuración). The closing clause about getting an unknown workspace_id implicitly separates it from get_workspace, which requires already knowing the id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete use case: use this to obtain the workspace_id when it is not known. It also explains the sb_* token variant's behavior, but never names an explicit alternative (e.g. get_workspace singular) or a when-not condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_entitiesADestructiveInspect
Fusiona dos entidades del knowledge graph: mueve TODO lo de la fuente a la destino (recaps, documentos, tareas, accionables, clips, relaciones, wiki), reescribe el nombre de la fuente por el de la destino en lo escrito (Diario, resúmenes, tareas, documentos vinculados) y manda la fuente a la papelera.
Usar cuando hay duplicados en el knowledge graph (ej: 'Juan Pérez' y 'Juan P.' refieren a la misma persona).
Si add_alias=true (default), el canonical_name de la fuente queda como alias en el destino.
Esta operación es IRREVERSIBLE: la entidad fuente queda eliminada.| Name | Required | Description | Default |
|---|---|---|---|
| add_alias | No | Agregar el canonical_name de la fuente como alias del destino (default: true) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| source_entity_id | Yes | ID de la entidad a absorber (será eliminada) | |
| target_entity_id | Yes | ID de la entidad que absorbe (se conserva) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description adds substantial context beyond them: it explicitly labels the operation IRREVERSIBLE, states the source entity is deleted and sent to trash, details the alias behavior, and lists the dependent artifacts affected. This is exactly the behavioral disclosure a destructive tool needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, followed by usage condition and then the irreversibility warning — a good escalation order. Slightly long, but every sentence (mechanics, when-to-use, alias default, irreversibility) carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers what moves, what is rewritten, what happens to the source, alias behavior, and the irreversibility caveat. Nothing an agent needs to invoke it safely is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema. The description mentions add_alias=true default and alias effect, but that duplicates the schema rather than adding new meaning, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (fusiona/mueve) and resource (entidades del knowledge graph) and enumerates exactly what is transferred (recaps, documentos, tareas, accionables, clips, relaciones, wiki) plus the name-rewrite side effect. This is clearly distinguishable from siblings like delete_entity, update_entity, or resolve_entity_suggestion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it ('cuando hay duplicados') with a concrete example ('Juan Pérez' y 'Juan P.'). However it does not route away from plausible alternatives such as update_entity or resolve_entity_suggestion, so the guidance is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_documentBInspect
Mueve un documento a un nuevo padre (o a la raíz si new_parent_document_id es null)
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | ID del documento a mover | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| new_parent_document_id | No | ID del nuevo padre; null para mover a raíz |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds the useful branch behavior that a null parent re-parents to root, but says nothing about permissions, effects on descendants, or reversibility. With annotations carrying the safety burden, this partial addition merits a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler, and the key parenthetical covers the main edge case. It is efficient, though a marginally longer note about the workspace parameter or reversibility would still have earned its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter mutation with full schema coverage and annotations, the description covers the essential operation and the null case. It omits any hint about workspace scoping and what a successful move returns, which is acceptable given no output schema but leaves it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the schema, including the null-to-root semantics for new_parent_document_id. The description restates that rule rather than adding syntax or edge cases, so it does not exceed the baseline established by a fully covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Mueve un documento') and clarifies the target ('a un nuevo padre ... o a la raíz'). It is unambiguous about the operation, but it never distinguishes itself from close siblings like update_document or patch_document, which an agent must choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives such as update_document or copy_document. The only conditional information is the null-to-root behavior, which is really a parameter rule rather than usage guidance. The agent must infer when moving is appropriate versus a plain update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch_artifactAInspect
Cambia PEDAZOS de un artefacto ya guardado, sin volver a mandarlo entero. Es la forma normal de editarlo: save_artifact cobra el archivo completo en cada guardado (un artefacto de 100 KB son ~50.000 tokens de salida), un parche cobra lo que cambia.
Cada edit es un reemplazo LITERAL (no es una regex) sobre el HTML guardado:
edits: [{ buscar: "<td>42</td>", reemplazar: "<td>57</td>" }]
Las reglas, que son lo que lo hace seguro:
· Cada `buscar` tiene que aparecer EXACTAMENTE UNA VEZ. Con 0 o con varias no se guarda nada y se te dice cuántas hay: ampliá el fragmento —sumale la línea de arriba o la de abajo— hasta que sea único. Si querés cambiar todas a propósito, mandá todas:true en ese edit.
· Es atómico: si un solo edit no encaja, no se aplica ninguno y no se crea versión.
· Se aplican EN ORDEN sobre el texto en memoria, así que el edit 3 ve lo que hicieron el 1 y el 2.
· Queda como una versión nueva, igual que save_artifact: la anterior sigue en el historial y se puede restaurar.
El texto exacto para `buscar` sale de **get_artifact con buscar="…"**, que devuelve sólo los fragmentos que coinciden con su contexto alrededor: ~800 caracteres en vez de los 107.000 del archivo.
Se parchea el HTML GUARDADO —para un artefacto react, markdown o mermaid, el ya envuelto—, que es exactamente lo que devuelve get_artifact.
Con base_version se exige que la versión viva sea esa: si alguien guardó en el medio no se pisa nada y se te dice cuál es la actual.| Name | Required | Description | Default |
|---|---|---|---|
| nota | No | Qué cambió, en una línea. Es lo que se lee en el historial de versiones. | |
| edits | Yes | Los reemplazos, en orden. Hasta 50. | |
| artifact_id | Yes | ID del artefacto a editar | |
| base_version | No | La versión sobre la que calculaste los edits. Si ya no es la viva, se rechaza el parche. | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly/destructive/openWorld, the description adds rich behavior: uniqueness requirement per edit, atomic all-or-nothing application, sequential in-memory ordering, creation of a new restorable version, and conflict rejection via base_version. Crucially it clarifies this patches the STORED HTML (post-wrapping), which is not derivable from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core idea in the first sentence, then uses tight bullets for the rules. It is longer than average, but nearly every sentence carries actionable information; a little trimming of prose around get_artifact would be possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param mutation tool with no output schema, the description is complete: it covers error behavior, atomicity, versioning, restore-ability and concurrency conflicts, leaving nothing an agent needs to call it correctly unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, but the description adds meaning well beyond it: it explains the literal (non-regex) replacement semantics, the unique-match rule for `buscar` and its error message, the role of `todas`, and the optimistic-concurrency semantics of `base_version`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (patching pieces) plus resource (an already-saved artifact), with a concrete example edit. It explicitly contrasts itself with save_artifact ('save_artifact cobra el archivo completo...'), so an agent can distinguish it from the sibling without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States this is the normal way to edit ('Es la forma normal de editarlo'), names the alternative save_artifact and why it is costlier, and directs the agent to get_artifact to obtain the exact `buscar` text. It also flags when to use todas:true and when base_version is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch_documentADestructiveInspect
Cambia PARTES de un documento sin reenviarlo entero: una lista de reemplazos literales sobre su MARKDOWN (el mismo que devuelve get_document).
Cada `buscar` tiene que aparecer EXACTAMENTE una vez (si aparece más, agregá contexto hasta que sea único, o `todas: true`).
Se aplican en orden y de forma atómica: si uno falla, no se escribe nada. `reemplazar` es markdown (mismo formato que patch_artifact).
Para encontrar el texto exacto en un documento largo: get_document con `buscar`.
base_version opcional: el updated_at con que lo leíste. Devuelve el `resumen` del documento resultante.| Name | Required | Description | Default |
|---|---|---|---|
| edits | Yes | Reemplazos, en orden | |
| document_id | Yes | ID del documento | |
| base_version | No | updated_at con el que se leyó el documento | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds real value: atomic application ('si uno falla, no se escribe nada'), in-order semantics, the exactly-once constraint per `buscar`, and an optimistic-concurrency signal via base_version. It does not explain the failure mode when base_version mismatches, which is the main remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose then layers constraints in short paragraphs. Mostly tight, though the exactly-once rule and atomicity are restated across sentences, adding minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers atomicity, uniqueness, ordering, version pinning, and the return value (`resumen` del documento resultante), which is sufficient since there is no output schema. It omits the behavior on a base_version conflict and the 50-edit cap (only in schema), leaving a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds nuance beyond the schema: the uniqueness requirement for `buscar` and the `todas: true` escape hatch, the required ordering of edits, and that base_version is the updated_at previously read. It adds meaning over the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource and scope: 'Cambia PARTES de un documento sin reenviarlo entero', operating on a list of literal replacements over the document's MARKDOWN. This clearly distinguishes it from whole-document tools like update_document or append_document, and it names the exact format source (get_document).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use context (patch parts instead of resending the whole doc) and a workflow tip: use get_document with `buscar` to locate exact text in long documents, and reemplazar uses the same markdown format as patch_artifact. It does not explicitly state when NOT to use it or name update_document as the alternative, so 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recallARead-onlyInspect
Contesta una pregunta con todo lo que el workspace sabe, en una sola llamada:
pasajes los fragmentos más relevantes de documentos, recaps, notas del diario,
tareas, informes y archivos — búsqueda por SIGNIFICADO (embeddings) +
TEXTO, así que encuentra aunque la pregunta no use las mismas palabras.
Trae el TEXTO del fragmento, no un snippet: casi siempre alcanza para
responder sin abrir nada.
entidades las personas / proyectos / organizaciones en juego (las que nombra la
pregunta y las que dominan los pasajes). De cada una: su artículo del
WIKI del Atlas (qué es, historia, estado actual, gente), sus tareas
ABIERTAS y dónde apareció último.
tareas las que salieron en la búsqueda, con el estado REAL de hoy.
Sin workspace_id (y con sesión de usuario) pregunta en TODOS sus workspaces a la vez.
Cada resultado trae en `abrir` la tool exacta para ver la fuente entera.
Preguntas de ejemplo: "¿en qué quedó lo de Visa?", "¿qué dijo Pablo sobre la conciliación?",
"decisiones de arquitectura del producto", "¿qué tengo pendiente con Banorte?".
profundidad: rapida (resúmenes, ~6 pasajes) · normal (default) · profunda (20 pasajes,
wikis enteros — para informes o preguntas amplias).| Name | Required | Description | Default |
|---|---|---|---|
| desde | No | YYYY-MM-DD: sólo material desde esa fecha | |
| hasta | No | YYYY-MM-DD: sólo material hasta esa fecha | |
| question | Yes | La pregunta, en lenguaje natural, tal como la haría el usuario | |
| profundidad | No | Cuánto contexto traer (default: normal) | |
| workspace_id | No | UUID o nombre del workspace ('Acme', 'el personal'). Omitir para preguntar en todos los del usuario |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false). The description adds genuinely useful behavior beyond that: it returns full fragment TEXT rather than snippets, searches by MEANING+text so wording mismatches still match, spans ALL of a user's workspaces when no workspace_id is given, and each result carries an `abrir` field pointing at the exact tool to open the full source.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then a clearly structured breakdown of the three result families and closing notes on scoping and depth. Length is justified by the tool's multi-part output, though the list formatting is slightly heavier than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully carries the burden of explaining what comes back — pasajes, entidades with their wiki/tasks/last-seen, tareas with current state, and the `abrir` routing field — and it covers scoping, depth, and example intents. Nothing an agent needs to invoke or interpret it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real semantics beyond the schema: profundidad is explained with concrete result counts (rapida ~6 pasajes, normal default, profunda 20 pasajes + wikis enteros) and workspace_id's cross-workspace omission behavior is spelled out. Only desde/hasta get no extra description treatment.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Contesta una pregunta con todo lo que el workspace sabe') and then enumerates the three result families (pasajes/entidades/tareas) with what each contains. An agent can immediately tell this is a unified semantic+text retrieval tool rather than a plain document search, distinguishing it from siblings like search_documents or find_documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete example questions ('¿en qué quedó lo de Visa?', '¿qué tengo pendiente con Banorte?') and explains the cross-workspace default when workspace_id is omitted, plus the depth tradeoff. It does not explicitly say when to prefer it over search_workspace/search_documents, so the routing guidance is implicit rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refine_entity_wikiADestructiveInspect
Guarda en el WIKI del Atlas una conclusión sobre una entidad: algo SÓLIDO que el wiki no dice o dice mal (el rol o cargo de una persona, qué es un proyecto, con quién trabaja, un estado que sale de juntar varias fuentes).
El wiki lo escribe de noche un modelo chico con ~20 fragmentos; una conversación puede
cruzar muchas más fuentes. Lo guardado queda como aporte permanente: el wiki se
reescribe en el momento usándolo como fuente prioritaria, y cada reescritura futura lo
vuelve a leer. Es una escritura: para cuando la persona pide dejarlo asentado, o lo
acepta cuando se le ofrece.
tipo:
definicion qué es / qué rol tiene. "Pablo Ronco es el CTO de Veritran; …"
conclusion algo que sale de cruzar fuentes: estado, relación, patrón
correccion el wiki dice algo mal; decí qué es lo correcto
Qué SÍ: hechos que las fuentes sostienen, escritos para durar.
Qué NO: opiniones tuyas, recomendaciones, el pedido del usuario, cosas de "esta semana"
que envejecen en días, o lo que el wiki ya dice. Mirá get_entity_wiki (trae "aportes")
antes; si un aporte tuyo quedó viejo, reemplazalo con `reemplaza`.
Un aporte por entidad y por idea; texto autocontenido (nombrá a la entidad).| Name | Required | Description | Default |
|---|---|---|---|
| tipo | Yes | ||
| texto | Yes | La conclusión, en español, autocontenida. 1–5 oraciones. | |
| basado_en | No | Las fuentes del workspace en que se apoya | |
| entity_id | Yes | ID de la entidad (de recall o search_entities) | |
| reemplaza | No | ID de un aporte anterior que éste reemplaza | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag this as a non-read, destructive write; the description goes further by disclosing the persistence mechanism — the wiki is regenerated nightly by a small model over ~20 fragments, the saved aporte becomes a priority source at rewrite time and is re-read on every future rewrite. That permanence and the one-aporte-per-entity-per-idea constraint are behavior the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the core write semantics are front-loaded, and the SÍ/NO block is scannable. It is longer than strictly needed — the model/20-fragment backstory and the 'es una escritura' aside overlap — but nearly every line earns its place by disambiguating use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, no output schema, and destructive semantics, the description covers the write intent, the eligibility criteria for content, the tipo taxonomy, the prior-read prerequisite, and the replacement path. Nothing essential to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83%, so the baseline is 3, but the description meaningfully enriches it: it defines each of the three `tipo` enum values with a concrete example and explains the intent of `reemplaza` ('si un aporte tuyo quedó viejo, reemplazalo'). It also constrains `texto` beyond the schema (autocontenido, nombrar la entidad, un aporte por idea).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Guarda en el WIKI del Atlas una conclusión sobre una entidad') and immediately scopes what counts as a valid conclusion. It explicitly differentiates from the read-side sibling by pointing to get_entity_wiki ('trae aportes'), so the agent can tell write from read without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('para cuando la persona pide dejarlo asentado, o lo acepta cuando se le ofrece') and when-not ('Qué NO: opiniones tuyas, recomendaciones, el pedido del usuario, cosas de esta semana... o lo que el wiki ya dice'). It names the prerequisite sibling call (get_entity_wiki) and the replacement path through `reemplaza`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_document_fileCDestructiveInspect
Renombra un archivo del workspace
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | ID del archivo | |
| new_name | Yes | Nuevo nombre del archivo (con extensión) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered structurally. The description adds nothing on top: it never says the old name is lost, whether the extension must be preserved, whether links to the file survive, or what permissions are needed for a destructive rename.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with three parameters and no output schema, the description should say more: the irreversibility of the rename, the extension requirement, or how workspace scoping interacts with the call. With annotations only covering the safety flags, the description leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so file_id, new_name and workspace_id are already fully documented in the schema, including the extension hint and the 'omit if the token has a fixed workspace' rule. The description adds no meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (renames) and resource (a file in the workspace), so an agent knows exactly what it does. It offers no differentiation from close siblings such as move_document, update_document or delete_document_file, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites, and no pointer to alternatives like update_document or move_document. The agent must infer the use case from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reopen_day_noteADestructiveInspect
Reabre la nota diaria de una fecha, igual que en la app: deshace el cierre y borra las tareas que ese cierre había creado.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Fecha en formato YYYY-MM-DD | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the safety profile is covered. The description goes beyond that by disclosing exactly what is destroyed: 'borra las tareas que ese cierre había creado', identifying the side effect (task deletion) that annotations cannot express. It still omits whether the deletion is recoverable or requires elevated permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence: the action leads, followed by the app-parity note and the concrete side effect. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description supplies the key missing piece—the task-deletion side effect—while annotations carry the safety hint. Minor gaps remain around reversibility and multi-day scope, but nothing essential to calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both the date format and the workspace_id semantics. The description adds no parameter-level detail beyond implying the date selects the day to reopen, which is the baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (reabre), resource (la nota diaria) and scope (de una fecha), and frames itself as the inverse of a close operation ('deshace el cierre'), which cleanly distinguishes it from the close_day_note sibling. An agent can tell what this does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'deshace el cierre' implies the use case (undoing a closed day), but it never explicitly names close_day_note as the alternative nor states when-not to use it. Usage is inferable from context rather than stated, which lands at the minimum-viable level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_entity_suggestionAInspect
Acepta o descarta una sugerencia del Atlas (ver get_entity_suggestions). Aceptar crea la entidad (o confirma la sombra que ya existía) y la vincula a los recaps donde apareció; descartar no la vuelve a ofrecer. Para crear una entidad que nadie sugirió, upsert_entity.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nombre tal como viene en la sugerencia | |
| type | Yes | Tipo de la sugerencia (campo `type`): person, project, organization… | |
| action | Yes | ||
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, but the description goes further: accepting creates the entity (or confirms an existing shadow) and links it to the recaps where it appeared, while dismissing suppresses future offers. That is real behavioral disclosure beyond the annotations, though it doesn't say whether accept/dismiss is reversible or what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact three-sentence block: purpose first, then per-action consequence, then the sibling-tool routing. No filler and the routing guidance is placed where an agent will see it before deciding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no output schema, the description covers the meaningful outcomes (entity creation/linkage, suppressed re-suggestion) and the workspace caveat is handled in the schema. Only the return payload and reversibility remain unspecified, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (name, type, workspace_id documented; action is a self-evident enum), and the description adds little parameter-level detail beyond mapping accept/dismiss to outcomes. With the schema doing most of the work, a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (accept/discard) on a specific resource (an Atlas entity suggestion), and explicitly names the related siblings get_entity_suggestions and upsert_entity. An agent can distinguish it from upsert_entity and merge_entities without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative for each case: use get_entity_suggestions to obtain suggestions, and upsert_entity when creating an entity nobody suggested. The accept-vs-dismiss condition is spelled out, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_artifact_versionAInspect
Vuelve un artefacto a una versión anterior. No borra nada: copia esa versión como una versión nueva, así el historial queda completo.
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | Número de versión a restaurar | |
| artifact_id | Yes | ID del artefacto | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=false and readOnlyHint=false, and the description adds real value beyond them by explaining that nothing is deleted and the old version is copied into a new version, so history is preserved. It stops short of covering permissions, idempotency, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the core action is front-loaded and the clarifying non-destructive mechanism follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter mutation tool with no output schema, the description covers the action and its side effects well, and annotations carry the safety profile. Only the return value (e.g., the new version identifier) is left unaddressed, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so artifact_id, version, and workspace_id are already fully documented in the schema. The description adds no syntax or format detail beyond what the structured fields provide, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (restore) and resource (artifact version), and the second sentence clarifies the exact semantics of the operation. It does not explicitly name the near-sibling restore_document_version, but the artifact-vs-document resource distinction is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the operation name and the explanation of the copy-as-new-version behavior, but there is no explicit when-to-use or when-not-to-use guidance and no reference to the alternative restore_document_version or how it differs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_document_versionAInspect
Vuelve un documento a una de sus versiones anteriores (get_document_versions). Lo que tenía hasta ahora no se pierde: pasa a ser una versión más.
| Name | Required | Description | Default |
|---|---|---|---|
| slot | Yes | El slot de la versión (ej. '1m', '1h', '2d') | |
| document_id | Yes | ID del documento | |
| base_version | No | updated_at con el que se leyó | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark it as a non-read-only, non-destructive mutation. The description adds genuinely useful context beyond that: current content is not lost but becomes another version, explaining why destructiveHint=false. It still omits auth/permission needs and any conflict behavior, so it is not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and the referenced sibling, with the non-loss guarantee placed immediately after. Zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with annotations and no output schema, it conveys the action, the source of versions, and the reversibility guarantee. It does not address optimistic-concurrency conflicts implied by base_version, a minor remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents document_id, slot, base_version, and workspace_id. The description adds no extra meaning about these parameters, which is the expected baseline when structured fields carry the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Vuelve un documento a una de sus versiones anteriores') and distinguishes itself from the document-version listing sibling by naming get_document_versions as the way to obtain the target version. Clear enough for an agent to select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It establishes the workflow context by pointing to get_document_versions as the source of versions to restore to. There is no explicit when-not guidance or exclusion against restore_artifact_version/restore_from_trash, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_from_trashAInspect
Recupera algo de la papelera (ver get_trash): vuelve a donde estaba. Un documento, canvas, recap, clip o entidad del Atlas. Una entidad restaurada levanta también el veto a ese nombre (el Atlas lo puede volver a sugerir).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID del ítem (campo `id` de get_trash) | |
| tipo | Yes | Qué es (el campo `tipo` de get_trash) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this as a non-destructive write (readOnlyHint=false, destructiveHint=false), so the safety profile is already covered. The description adds real value beyond that: 'vuelve a donde estaba' (item returns to its original location) and the non-obvious side-effect that restoring an entity lifts the name veto so the Atlas can suggest it again. It stops short of covering failure cases or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and followed by scope and the notable side-effect. Every sentence earns its place, though the closing clause is a slightly dense aside rather than strictly essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the action, the restorable types, the location semantics, the entity-veto side-effect, and points to get_trash for inputs. That is close to complete; only permissions and error/reversibility behaviour are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both id and tipo are already documented in the schema, and workspace_id even explains the UUID-or-name and omission behaviour. The description only loosely echoes the tipo domain (saying 'recap' where the enum says 'meeting'), adding marginal value. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (recupera algo de la papelera / restores from trash) and enumerates exactly what can be restored (documento, canvas, recap, clip, entidad). It references get_trash as the read counterpart, so an agent can pair the two without opening schemas. It does not explicitly distinguish from the version-restore siblings (restore_document_version, restore_artifact_version), so it falls short of a clean 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(ver get_trash)' tells the agent where to obtain the id/tipo needed to invoke it, which is actionable context. However, it names no alternative or exclusion condition (e.g. when to prefer a version restore instead), which caps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollback_taskADestructiveInspect
Reabre una tarea cerrada: vuelve a pending y BORRA completed_at.
Es el camino correcto para desmarcar algo, no update_task: sin limpiar la
fecha de cierre, la tarea vuelve al radar arrastrando el día en que se dio
por terminada y el historial de trabajo la sigue contando ahí.
Falla a propósito si la tarea no estaba cerrada.| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ID numérico de la tarea | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation profile is covered. The description goes further by disclosing the concrete destructive effect (deleting completed_at), the state transition to pending, and an intentional failure mode for non-closed tasks. It does not cover auth/permission needs, so it is short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded: the first sentence delivers purpose, target state, and side effect. The remaining two sentences each earn their place — one routes away from update_task, one states the failure precondition. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param mutation tool with no output schema, the description covers purpose, the competing tool, the destructive side effect, and the failure condition — enough to call it correctly. Minor gap: no indication of what the response returns or whether the revert is itself reversible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with task_id and workspace_id fully documented in the schema (including the workspace fallback semantics). The description adds no parameter-level detail beyond implying the task must be closed, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Reabre una tarea cerrada') and names the exact resulting state ('vuelve a `pending`') plus the side effect ('BORRA `completed_at`'). It also distinguishes itself from the sibling update_task, so an agent can pick it without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing: 'Es el camino correcto para desmarcar algo, no update_task', with the reason the alternative fails (the closing date lingers and keeps the task counted in work history). The precondition ('Falla a propósito si la tarea no estaba cerrada') tells the agent exactly when not to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_artifactAInspect
Guarda en Secondbrain un artefacto (artifact) generado por vos: una página autocontenida que el usuario va a poder VER RENDERIZADA, no leer como código.
Usar cuando el usuario diga "guardá esto en Secondbrain", "guardame el artifact", "dejalo en mi workspace" o equivalente, y también cuando pida ACTUALIZAR uno que ya guardaste (pasando artifact_id).
Mandar el contenido COMPLETO, no un fragmento ni un resumen: es lo que se va a renderizar.
· tipo "html" → el HTML entero del artifact (lo más común)
· tipo "react" → el JSX tal cual; acá se envuelve con React 18 + Babel + Tailwind
· tipo "svg" → el <svg>…</svg>
· tipo "mermaid" → el texto del diagrama
· tipo "markdown" → markdown, que se convierte al formato del editor
Con artifact_id crea una VERSIÓN nueva del mismo artefacto (la anterior queda guardada y se puede restaurar); sin artifact_id crea uno nuevo. Con document_id queda colgado de ese documento.
**Sólo artefactos LIVIANOS: hasta 20 KB.** ANTES de llamar, medí cuánto pesa. Si pasa de 20 KB NO lo intentes —ni por esta tool ni por start_artifact_upload, gzip_base64 o save_artifact_from_url: con los pesados esos caminos fallan—. Decile al usuario que lo guarde con la extensión de Chrome de Secondbrain (con la conversación abierta en Chrome: ícono de Secondbrain → pestaña «Artefactos» → «Sincronizar»), que lo copia tal cual sin pasar por el modelo.| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nombre del artefacto, como lo va a ver el usuario en la lista | |
| nota | No | Qué cambió en esta versión, en una línea. Se muestra en el historial. | |
| tipo | No | Qué es el contenido (default: html) | |
| origen | No | Qué modelo sos. Sólo se usa si no se puede deducir del cliente MCP. | |
| content | Yes | El contenido COMPLETO del artefacto (o el base64 del gzip, si encoding='gzip_base64') | |
| encoding | No | Cómo viene `content`. 'gzip_base64' = la salida de `gzip -c archivo | base64`, que pesa ~7 veces menos en tokens. | |
| artifact_id | No | Para ACTUALIZAR uno existente: su id. Omitir para crear uno nuevo. | |
| document_id | No | Documento del que cuelga el artefacto | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnly/destructive annotations, it discloses non-obvious behavior: type-specific rendering pipelines (react is wrapped with React 18 + Babel + Tailwind, markdown is converted to the editor format), versioning semantics (artifact_id creates a new version while the prior one remains restorable), document attachment, and a hard 20 KB ceiling. These are exactly the traits an agent cannot infer from annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core definition, then a trigger clause, then a scannable bulleted type table, then the size constraint. It runs long and repeats the completeness requirement ("Mandar el contenido COMPLETO" echoes the schema's "contenido COMPLETO"), and the 20 KB fallback paragraph is heavy, but every block carries decision-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation tool with 100% schema coverage and no output schema, the description covers everything an agent needs: when to call, payload completeness, per-type formatting, versioning risk, size limit, and the fallback path when the limit is exceeded. Nothing material is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description earns above that by elaborating the tipo enum with per-type content requirements (full HTML, raw JSX, the <svg>…</svg>, diagram text, markdown) and by spelling out artifact_id create-vs-update and document_id association. It does not add anything about nota, origen, workspace_id, or encoding beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource and, critically, defines what an artifact IS (a self-contained page rendered visually, not code) rather than merely restating the name. It also states the create-vs-new-version semantics tied to artifact_id. It does not differentiate itself from mutation siblings such as append_artifact or patch_artifact, so an agent must infer which write path to choose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger phrases ("guardá esto en Secondbrain", "dejalo en mi workspace"), an explicit second use case (updating an existing artifact by passing artifact_id), and an explicit when-NOT: artifacts over 20 KB must not be sent through this tool nor through start_artifact_upload, gzip_base64, or save_artifact_from_url, with the named alternative being the Chrome extension. This is the strongest possible form of routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_artifact_from_urlAInspect
Guarda un artefacto que el SERVIDOR se baja de una URL. Ni retipeás el contenido ni tenés que poder alcanzar el storage.
Hace un GET HTTPS al enlace crudo del archivo, el «Raw» de GitHub (https://docs.github.com/en/repositories/working-with-files/using-files/viewing-and-understanding-files). Para cuando el archivo YA está publicado en uno de estos hosts: raw.githubusercontent.com, gist.githubusercontent.com, objects.githubusercontent.com. Tiene que ser el enlace directo al contenido crudo, sin redirecciones.
**Sólo artefactos LIVIANOS: hasta 20 KB.** Uno más pesado se rechaza: va por la extensión de Chrome de Secondbrain.
OJO: no sirve para publicarlo vos. En los sandboxes de Claude la ESCRITURA en GitHub está bloqueada por el proxy ("Gist writes are not permitted"), y un repo privado tampoco sirve porque el servidor no tiene token. Y no publiques contenido sensible en un repo público para esquivar esto: se scrapea y se cachea. Si el contenido no se puede publicar y es liviano, usá save_artifact.| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL RAW del archivo | |
| name | Yes | Nombre del artefacto | |
| nota | No | ||
| tipo | No | ||
| origen | No | ||
| artifact_id | No | Para actualizar uno existente | |
| document_id | No | ||
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false): it discloses that the server performs an outbound HTTPS GET, that redirects are rejected, a hard 20 KB cap with rejection behavior, the token/permission limitation, and the caching/scraping side effect of publishing to public repos. This is exactly the context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action in the first sentence, then constraints and warnings in descending priority. The GitHub docs link and the 'no publiques contenido sensible' aside are mildly expendable but tied to a real misuse risk, so waste is small.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation with no output schema, the description covers mechanism, limits, failure modes and alternatives well. It never says what comes back (created artifact id? confirmation?) nor that supplying artifact_id switches to update mode, which an agent calling it blind would want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% and the description fully compensates for the most consequential parameter, url: it specifies raw-content semantics, allowed hosts, and no redirects, which the schema's one-line 'URL RAW del archivo' does not. Edge concern: tipo/origen/nota/document_id remain undocumented anywhere, but with url negotiation and safety fully covered and the tool's overall contract clear, this lands solidly above baseline; dropping to 4 only if one penalizes the silent optional params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb + resource + mechanism ('Guarda un artefacto que el SERVIDOR se baja de una URL'), immediately distinguishing it from the client-side upload path. It then names the exact host allowlist and contrasts against save_artifact and the Chrome extension, so an agent can tell it apart from append_artifact / save_artifact without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use (file already published on raw.githubusercontent.com / gist / objects hosts, direct raw link without redirects), when-not (anything over 20 KB, gist writes blocked in Claude sandboxes, private repos since the server has no token), and names the concrete alternatives ('usá save_artifact', Chrome extension).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_daily_notesARead-onlyInspect
Busca texto en el contenido de todas las notas diarias del workspace (búsqueda ILIKE case-insensitive).
Usar cuando:
- El usuario quiere encontrar en qué día mencionó algo específico
- Buscar referencias a una persona, proyecto o tema en las notas históricas
- "¿cuándo hablé con Juan?", "¿en qué nota está el tema del contrato?"
Retorna: date y snippet con contexto (50 chars antes y 150 después de la coincidencia).
Para ver la nota completa: usar get_daily_note con la fecha encontrada.| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo resultados (default: 20) | |
| query | Yes | Texto a buscar en el contenido de las notas (mínimo 2 caracteres) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description still adds non-trivial behavior: case-insensitive ILIKE matching and the exact snippet window (50 chars before, 150 after). No pagination/result-cap behavior is described beyond the schema's limit field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, followed by a compact when-to-use list, then return format and a routing hint. Every sentence carries information; nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description explains the return shape (date + snippet context window) and notes how to escalate to the full note. Combined with the annotations and full schema coverage, an agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents query, limit, and workspace_id (including the useful 'omit = all workspaces' note). The description adds only the implicit workspace scoping ('del workspace'), which adds little beyond what the schema states. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (busca/buscar) and resource (texto en el contenido de todas las notas diarias) with scope and matching semantics (ILIKE case-insensitive). An agent can immediately tell this apart from siblings like get_daily_note or search_documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Usar cuando' block lists three concrete scenarios and real user phrasings, and the final line routes the agent to get_daily_note when a full note is needed. When-to-use, examples, and the alternative are all present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_documentsARead-onlyInspect
Busca en el CONTENIDO de todos los documentos del workspace usando full-text search en cascada.
Usar cuando:
- El usuario quiere encontrar un documento que habla sobre cierto tema pero no recuerda el nombre
- "¿dónde está el documento sobre X?", "buscá en mis docs algo relacionado con Y"
- Necesitas saber en qué documentos se menciona una persona, proyecto o concepto
Estrategia de búsqueda (en cascada, de más a menos estricta):
1. FTS con websearch_to_tsquery: mejor para frases naturales y multi-palabra
2. Prefix matching: para palabras parciales o términos técnicos
3. ILIKE fallback: garantiza resultados aunque sea por similitud simple
Retorna: document_id, name (título del documento), snippet (extracto con la coincidencia en contexto).
Para leer el documento completo: usar get_document(document_id).
Para navegar la estructura de documentos: usar get_documents.| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo resultados (default: 20) | |
| query | Yes | Texto a buscar en el contenido de los documentos (mínimo 2 caracteres, soporta frases) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuine value beyond that by disclosing the internal cascade strategy (websearch_to_tsquery, prefix matching, ILIKE fallback) and the returned fields (document_id, name, snippet), which is more than the annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the core purpose and organized into use-cases, strategy, return, and next-steps blocks, so each section earns its place. It is slightly long, but the structure keeps the actionable information discoverable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned fields and pointing to get_document for the full content. Combined with usage triggers, alternatives, and search behavior, an agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so query, limit, and workspace_id (including the 'omit = all workspaces' behavior) are already documented in the schema. The description adds only marginal semantic detail, so the baseline of 3 is appropriate for a schema that does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb+resource+scope: full-text search over the CONTENT of all workspace documents, using a cascading strategy. It also distinguishes itself from siblings by pointing to get_document for full reads and get_documents for structure navigation, so an agent can separate it from the other document tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit 'Usar cuando' block with three concrete user-intent triggers and quoted example requests, then routes the agent to alternatives (get_document, get_documents) for adjacent needs. This is a clear when-to-use-and-what-else map.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_entitiesARead-onlyInspect
Busca entidades en el knowledge graph por nombre (búsqueda parcial, case-insensitive sobre canonical_name).
Usar cuando:
- El usuario menciona el nombre de una persona, proyecto u organización y necesitas su ID
- Quieres verificar si una entidad ya existe antes de crearla
- Necesitas encontrar una entidad pero no tienes su ID
Busca en el nombre canónico Y en los alias, sin distinguir tildes ni mayúsculas
("tokenizacion" encuentra "Tokenización"). Ordena: coincidencia exacta, después
las que empiezan igual, después por apariciones.
Retorna: id, canonical_name, type, description, occurrence_count (en cuántas fuentes
aparece), aliases, has_wiki (si tiene artículo: leerlo con get_entity_wiki).| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filtrar por tipo (omitir para buscar en todos) | |
| limit | No | Máximo resultados (default: 10) | |
| query | Yes | Texto a buscar en el nombre canónico de la entidad (parcial, ej: 'Agus' encuentra 'Agustín García') | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing search semantics: it searches canonical names and aliases, ignores accents and case, and orders results by exact match, prefix match, then occurrence count. It also lists returned fields and explains that has_wiki should be followed up with get_entity_wiki, which is especially valuable because no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the primary purpose, then uses short bullets and compact follow-up paragraphs for usage, matching behavior, ordering, and return fields. It is appropriately sized for a search tool with no output schema, and every section contributes actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering read-only and non-destructive behavior, the description completes the picture by explaining search scope, matching rules, ordering, and returned fields. Because no output schema is provided, its explicit return-value summary is necessary and sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description still adds useful meaning for the query parameter by clarifying alias matching, accent-insensitive matching, and result ordering, though it does not add further semantics for type, limit, or workspace_id beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: search entities in the knowledge graph by name, with partial case-insensitive matching over canonical_name. This clearly distinguishes it from sibling document/workspace search tools and from entity detail or suggestion tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes an explicit 'Usar cuando' section covering three concrete scenarios: needing an entity ID, checking existence before creation, and finding an entity without its ID. It does not explicitly state when not to use it or name alternative entity-search approaches, so it falls short of a full when/when-not/alternatives treatment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_workspaceARead-onlyInspect
Búsqueda GLOBAL en TODO el workspace de una sola vez: documentos (contenido), notas diarias, entidades del knowledge graph / Atlas (nombre y contexto), reuniones (recaps) y tareas.
Para cuando el usuario pide encontrar algo y no se sabe en qué sección vive:
- "buscá X en todo", "¿dónde mencioné Y?", "encontrá todo lo relacionado con Z"
- Cuando querés una vista completa de dónde aparece un tema/persona/proyecto en el workspace.
Búsqueda HÍBRIDA: combina significado (embeddings) con coincidencia de texto, así que encuentra
también lo que NO comparte palabras con la consulta — "tokenización de tarjetas" trae la reunión
donde se habló de "PCI-PIN". No hace falta adivinar el término exacto que usó el usuario.
Devuelve un objeto con secciones:
documents → [{ document_id, name, snippet }]
daily_notes → [{ date, snippet }]
entities → [{ id, canonical_name, type, description }]
meetings → [{ id, name, date, snippet }]
tasks → [{ id, title, status, due_date }]
reports → [{ id, name, date, snippet }]
files → [{ id, name, snippet }]
Para el detalle completo de cada resultado usar la tool específica: get_document(document_id), get_daily_note(date), get_entity_details(id), get_meeting(id), get_task_detail(id).| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Máximo resultados por sección (default: 8) | |
| query | Yes | Texto a buscar en TODO el workspace (mínimo 2 caracteres) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir = TODOS los workspaces de la persona, en una sola llamada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/destructive/openWorld annotations by disclosing non-obvious behavior: the search is hybrid (embeddings + text match), so it retrieves results that share no literal words with the query, illustrated with a concrete example. It also describes the multi-section result envelope and routes to specific detail tools, none of which is derivable from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core definition before guidance and the return listing, and every block is purposeful. The verbose return-object enumeration is long but justified because there is no output schema; otherwise structure is clean and skimmable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by spelling out the return sections and their fields, and by directing the agent to the per-entity detail tools for full content. Nothing needed to invoke it correctly or interpret its output is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so query, limit, and workspace_id are already fully documented in the schema, including the 'omit = all workspaces' behavior. The description adds no syntax or format guidance beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource with explicit scope: 'Búsqueda GLOBAL en TODO el workspace de una sola vez' and enumerates the exact content types covered (documents, daily notes, entities, meetings, tasks, reports, files). This clearly distinguishes it from the section-specific search_* siblings an agent would otherwise have to guess between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit trigger scenario ('cuando el usuario pide encontrar algo y no se sabe en qué sección vive') plus concrete example phrasings, and names follow-up detail tools. It stops short of explicitly naming the section-scoped search alternatives (search_documents, search_entities, search_daily_notes), which the 'when you don't know the section' framing only implies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_artifact_uploadAInspect
Guarda un artefacto sin retipearlo: el archivo va del disco a Secondbrain sin pasar por el modelo.
Para cuando el archivo ya existe en disco. **Sólo artefactos LIVIANOS: hasta 20 KB.** Medí el archivo ANTES (`wc -c ARCHIVO`) y pasalo en `bytes`. Si pasa de 20 KB no lo intentes por ningún camino del MCP: decile al usuario que lo guarde con la extensión de Chrome de Secondbrain (pestaña «Artefactos» → «Sincronizar»).
Devuelve una upload_url. El PUT la termina: sube el archivo Y crea la versión de una. NO hay segundo llamado.
curl -X PUT "<upload_url>" --data-binary @mi-artefacto.html
Con artifact_id agrega una versión nueva a uno que ya existe; sin él crea uno nuevo.| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nombre del artefacto | |
| tipo | No | Qué es el contenido del archivo (default: html) | |
| bytes | Yes | Cuánto pesa el archivo, en bytes (`wc -c ARCHIVO`). Se valida ANTES de subir: arriba del tope no se guarda. | |
| origen | No | ||
| artifact_id | No | Para actualizar uno existente | |
| document_id | No | Documento del que cuelga | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which only say not-readOnly, not-destructive, closed-world), the description discloses the return value (upload_url), that the PUT both uploads and creates the version in one call with no second call, and that bytes is validated before upload. That is exactly the non-obvious flow an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then conditions, then the curl example, then the create-vs-update rule — a good ordering. The 20 KB limit is stated twice (bold rule plus the 'si pasa de 20 KB' branch), which costs a little tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description covers what is returned (upload_url), how to finish the operation, and that no follow-up call is needed. Combined with the 86% schema coverage, an agent has everything required to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 86%, yet the description still adds meaning: how to obtain `bytes` (`wc -c`), that exceeding the cap aborts the upload, and that `artifact_id` switches from 'create new' to 'add a new version to an existing artifact'. Minor fields (tipo, origen, document_id) are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource (guarda un artefacto desde disco, sin pasar por el modelo) with the key differentiator 'sin retipearlo' against sibling save_artifact. It doesn't name the siblings explicitly, but an agent can tell it starts an upload flow rather than completing one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('Para cuando el archivo ya existe en disco'), a hard precondition (≤20 KB, measure with `wc -c` first), and an explicit when-NOT plus redirect to the Chrome extension if the file is too big. It even warns not to try any other MCP path, which routes the agent away from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_document_uploadADestructiveInspect
Escribe un documento SUBIENDO UN ARCHIVO, sin que el contenido pase por el modelo. Es la forma rápida para contenido largo (más de ~20 KB) o que ya está en un archivo.
Devuelve `upload_url`. Subí el archivo (markdown o HTML) con UN comando y listo — el PUT escribe el documento:
curl -X PUT "<upload_url>" --data-binary @documento.md
La respuesta del curl trae el `resumen` (bytes, bloques, tablas, títulos, sha256): no hace falta llamar a nada más.
Con document_id: REEMPLAZA el contenido de ese documento (base_version opcional, igual que update_document).
Con name (sin document_id): crea un documento nuevo, ya, y la subida le pone el contenido.
El permiso vence en 2 horas y sirve para ese documento solo.| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Nombre de un documento NUEVO (sin document_id) | |
| document_id | No | Documento a reemplazar | |
| base_version | No | Con document_id: updated_at con el que se leyó | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| parent_document_id | No | Con name: documento padre del nuevo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description goes further: it explains the full out-of-band workflow (returns upload_url, PUT writes the document), the permission lifetime (2 hours) and its scope (single document), and that the curl response itself carries the summary (bytes, blocks, tables, headings, sha256). This is behavioral context the annotations cannot provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and the key differentiator, then the workflow, then the mode branch. Slightly long with a mixed prose/command layout, but each section (return value, curl usage, mode semantics, permission scope) carries distinct information rather than repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description describes the return (upload_url) and the payload returned by the subsequent PUT, so an agent needs nothing else. The permission expiry and scoping are also covered, making this fully self-contained for a two-step upload flow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description adds real meaning: it explains the document_id vs name interaction as an either/or mode switch, and that base_version is optional exactly as in update_document. It leaves workspace_id and parent_document_id to the schema, which is reasonable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (escribir/subir) and resource (documento) and immediately distinguishes the mechanism: the content never passes through the model, unlike create_document/update_document. The reader knows exactly what this tool does and why it exists alongside its siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the selection condition (fast path for content >~20 KB or already in a file) and disambiguates the two modes: document_id replaces an existing document, name-without-document_id creates a new one. It even cross-references update_document for the concurrency semantics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_canvasBDestructiveInspect
Actualiza nombre y/o contenido de un canvas
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| content | No | Contenido del canvas: el objeto JSON de la escena (nodos y edges) | |
| canvas_id | Yes | ID del canvas | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is sparse and does not add significant behavioral context beyond the action itself. The annotations already cover the necessary behavioral trait (destructiveHint: true), so the description provides only the minimum required confirmation of intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, highly focused sentence. It is concise, direct, and front-loaded, achieving zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since this is a complex mutation tool involving arbitrary JSON content, the description is too brief. It fails to mention failure modes, required permissions beyond the hint, or how the update handles partial field changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is moderate (75%), setting a baseline of 3. The description reiterates that the tool accepts 'nombre y/o contenido,' which is already detailed in the schema properties, providing no crucial semantic depth.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Actualiza' / Updates) and clearly identifies the resource ('canvas'), specifying the scope of the modification (name and/or content). It provides clear intent for the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description focuses only on what the tool does, not when it should be used. It offers no guidance on why an agent should choose this update function over the `create_canvas` or `get_canvas` sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_clipADestructiveInspect
Edita un clip: título, nota propia, resumen o el documento del que cuelga (null lo suelta). Sólo se toca lo que se manda.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| title | No | ||
| clip_id | Yes | ID del clip (de get_clips) | |
| summary | No | ||
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| parent_document_id | No | Documento padre, o null para soltarlo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds real behavioral context beyond them: it is a partial update where only supplied fields change, and passing null for parent_document_id detaches the clip from its document. This directly explains the destructive surface the annotation only flags. It still omits permission requirements or what happens to unsent fields' side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler: the first names the resource and the mutable fields, the second states the patch guarantee. The field list and the scoping rule are both front-loaded with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with annotations and no output schema, the description covers the mutable surface and the partial-update contract, which is what an agent needs to call it correctly. Gaps are minor: no mention of auth/workspace scoping or whether title can be cleared, though workspace_id is documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema description coverage, the description usefully compensates: it maps the meaningful fields (title, note, summary, parent_document_id) and explicitly defines the null semantics for the parent link ('null lo suelta'), which the schema only hints at. It does not mention clip_id or workspace_id, but those carry their own schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (edita) plus resource (clip) and enumerates the editable fields (título, nota, resumen, documento padre), so an agent can distinguish it from update_document/update_canvas/update_task by the resource alone. It does not explicitly name a sibling or draw the boundary against delete_clip or update_document, which keeps it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the tool is clearly the edit path for clips, and 'Sólo se toca lo que se manda' signals patch semantics, but there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. delete_clip for removal, get_clip for reading). Adequate but leaves the agent to infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_deliverableCDestructiveInspect
Cambia el nombre, el estado o la fecha de entrega de un entregable.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| status | No | ||
| delivered_at | No | Cuándo se entregó (ISO), o null | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| deliverable_id | Yes | ID del entregable |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=false, so the safety profile is covered. The description adds only a field list and does not disclose partial vs. full update behavior, overwrite semantics, permission needs, or whether omitted fields remain unchanged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler that states the action immediately. It is structurally efficient, though its brevity leaves important behavior unspecified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with 5 parameters (only 1 required), 60% schema coverage, and no output schema, one sentence is insufficient. Key details such as partial-update behavior, status semantics, and workspace scoping are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, with name and status undocumented anywhere. The description names those fields but adds no format, allowed values, or meaning beyond their names, and it ignores workspace_id and deliverable_id, so it does not compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Cambia) and resource (entregable) plus the fields it can modify (nombre, estado, fecha de entrega), so the action is understandable. However, it does not distinguish this tool from siblings such as create_deliverable, get_deliverables, or update_task, so an agent could still confuse create vs. update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives no when-to-use, when-not, or alternative guidance; it merely lists editable fields. It never states prerequisites or explains when to choose update_deliverable over create_deliverable or another update tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_documentADestructiveInspect
Actualiza nombre y/o contenido de un documento (el contenido REEMPLAZA todo lo anterior). Acepta markdown (títulos, negritas, listas, tablas, citas, código) y lo convierte a formato del editor; si el contenido ya viene en HTML se guarda tal cual. Cada renglón es un bloque: los renglones seguidos NO se juntan en un párrafo. Un bloque ```mermaid es un DIAGRAMA: se dibuja solo al abrir el documento.
Si el contenido ya existe como ARCHIVO (lo bajaste, lo generó un script) o pesa más de ~20 KB, no lo mandes en content: start_document_upload lo sube por curl sin pasar por el modelo. Para cambiar una parte, patch_document; para agregar al final, append_document.
base_version: el updated_at con que leíste el documento (get_document lo devuelve). Si alguien lo cambió en el medio, falla en vez de pisar.
Si el documento está abierto en la app, el editor recarga solo con lo nuevo. La versión anterior queda en get_document_versions.
Devuelve un resumen (bytes, bloques, tablas, títulos en orden, sha256) para verificar sin releer.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| content | No | Contenido nuevo en markdown (o HTML ya armado, que pasa intacto). Reemplaza todo el contenido anterior. | |
| document_id | Yes | ID del documento | |
| base_version | No | updated_at con el que se leyó el documento; si cambió desde entonces, no se escribe | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare destructiveHint=true; the description adds substantial context beyond that: content fully replaces prior text, markdown is converted, HTML passes through, per-line block semantics, mermaid renders as a diagram, base_version prevents clobbering via optimistic locking, open editor hot-reloads, and prior version stays in get_document_versions. This richly exceeds the annotation bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the core replacement behavior and format handling lead, then alternatives, then base_version, then side-effects, then return summary. Nearly every sentence carries a distinct fact, though the volume is heavy for a single field.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description explains the returned resumen (bytes, blocks, tables, heading order, sha256) for verification. Combined with the concurrency and side-effect notes, an agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so much is already documented, but the description adds real meaning to base_version (the updated_at from get_document, causing failure on concurrent change) and to content's replacement/conversion semantics. workspace_id is left to the schema, keeping it just under top marks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (actualiza) and resource (documento), clarifying it rewrites name and/or content with full replacement. The following sentences distinguish it operationally from siblings like patch_document and append_document, so an agent can select it confidently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names alternatives and the conditions that select them: start_document_upload for large/preexisting file content, patch_document for partial changes, append_document for appending. This is textbook when-to-use-vs-alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_entityCDestructiveInspect
Actualiza campos de una entidad existente por ID
| Name | Required | Description | Default |
|---|---|---|---|
| aliases | No | ||
| context | No | ||
| entity_id | Yes | ID de la entidad | |
| description | No | ||
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| canonical_name | No | Nuevo nombre canónico |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and readOnlyHint=false, so the agent already knows this mutates data. The description adds nothing beyond the annotations: it does not say whether omitted fields are cleared, whether aliases replace or append, or what the destructive behavior actually consists of — for a tool flagged destructive, that silence is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the key scoping element ('por ID') stated up front. Efficient, though its brevity borders on under-specification rather than true economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A six-parameter destructive mutation with no output schema and half its parameters undocumented in the schema needs the description to carry weight, and it does not. An agent cannot learn from it what the update returns, how partial updates behave, or how it differs from upsert_entity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%; aliases, context, and description have no schema documentation. The description says only 'campos' generically and adds no meaning about whether aliases append or replace, or how workspace_id scoping affects the update, so the coverage gap is not compensated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Actualiza campos de una entidad existente por ID'), so the basic operation is clear. However, it never distinguishes itself from closely related siblings like upsert_entity (which also creates-or-updates an entity by ID) or merge_entities, leaving the agent to infer which to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus upsert_entity or merge_entities, and no prerequisites or constraints stated. The only implicit cue is 'existente', which hints the entity must already exist but does not say what happens if it doesn't.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_eventADestructiveInspect
Cambia un evento LOCAL, o lo MUEVE de un calendario a otro con calendar.
Mover: `calendar` = 'Outlook', 'Google', el nombre o el mail del calendario
sincronizado, o 'local' para volver al calendario del workspace. Sirve para
local → sincronizado, sincronizado → local y de uno sincronizado a otro: se
crea en el destino y después se borra del origen. No mueve eventos con
invitados, ni de otra persona, ni una ocurrencia suelta de una serie.
Un evento sincronizado (Google, Outlook o Apple) no se edita acá: el cambio
tiene que viajar al proveedor y eso lo hace la app.| Name | Required | Description | Default |
|---|---|---|---|
| color | No | Nombre ('blue') o hex ('#3b82f6') | |
| title | No | ||
| calendar | No | MOVER el evento a este calendario: 'Outlook', 'Google', nombre o mail del calendario sincronizado, o 'local' | |
| end_date | No | ||
| end_time | No | ||
| event_id | Yes | UUID del evento | |
| start_date | No | ||
| start_time | No | ||
| description | No | ||
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=false, but the description adds real substance: it explains the destructive MECHANISM ('se crea en el destino y después se borra del origen') and the permission boundaries. It does not state whether omitted fields are preserved on edit, a minor gap against an otherwise strong disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then the move mechanics, then the exclusions. Well-organized into short paragraphs with no filler, though a touch verbose for the value delivered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation with 40% schema coverage and no output schema, the description covers the moving/exclusion semantics well but omits how the date/time fields behave and whether the response is the updated event. Adequate for the move use case, incomplete for the edit use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40% (10 params, ~4 documented). The description richly explains `calendar` (accepted values and effect, beyond the schema's one-liner), but says nothing about start_date/start_time/end_date/end_time semantics or the null time handling, so the low-coverage params remain under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+scope: it EDITS a LOCAL event or MOVES it between calendars via `calendar`. The closing paragraph explicitly rules out editing synchronized events, which cleanly separates it from create_event, delete_event, and update_meeting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when/when-not conditions: it details the valid calendar transitions (local → synced, synced → local, synced → synced) and enumerates exclusions (events with guests, someone else's event, a single occurrence of a series). Nothing about applicability is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_meetingCDestructiveInspect
Actualiza campos de una reunión existente
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| name | No | ||
| summary | No | ||
| meeting_id | Yes | ID de la reunión | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| transcription | No | ||
| meeting_type_id | No | ||
| meeting_group_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, yet the description never explains what is destructive about updating fields or which updates are irreversible. Beyond announcing a mutation, the description adds nothing about required permissions, side effects, or behavior when fields are omitted, so it is redundant against the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. Its brevity is clean structurally, though it verges on under-specification rather than genuine economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with destructive behavior, no output schema and sparse annotations, the description omits what fields can be updated, the meaning of destructive, and usage routing. It is not complete enough for an agent to invoke correctly with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (just meeting_id and workspace_id are documented), leaving date, name, summary, transcription, meeting_type_id and meeting_group_id unexplained. The description generically references 'campos' without naming or clarifying a single parameter, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Actualiza campos de una reunión existente'), clearly distinguishing it from create_meeting, delete_meeting or get_meeting. It does not, however, differentiate itself from close siblings such as update_meeting_type or update_event, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives (e.g., update_meeting_type for type changes, update_event for calendar entries). The agent gets no condition that selects this tool over its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_meeting_typeBDestructiveInspect
Actualiza nombre o descripción de un tipo de reunión
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| description | No | ||
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| meeting_type_id | Yes | ID del tipo de reunión |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=false, so the safety profile is known. The description adds nothing beyond the annotations: it does not say whether editing is partial or full, whether renaming affects existing meetings using the type, how collisions with existing names are handled, or whether extra permissions are needed for a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the verb/resource is front-loaded. It is efficient, though it is terse enough that the terseness shades into under-specification rather than economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter destructive mutation with no output schema, the description omits too much: no permissions, no statement of whether unlisted fields are preserved, no effect on meetings already using the type, and no confirmation of what is returned. An agent could invoke it but not predict its consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, and the description compensates precisely where the schema is silent: it names "nombre" and "descripción" as the mutable fields, which are exactly the two parameters lacking schema descriptions (meeting_type_id and workspace_id are documented in the schema). It adds no format or constraint detail beyond that, but the coverage gap is largely closed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ("Actualiza") and resource ("tipo de reunión") and enumerates the fields it edits (name, description), which distinguishes it from create_meeting_type, delete_meeting_type and get_meeting_types. It stops short of explicitly naming those siblings, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as create_meeting_type or delete_meeting_type, nor any prerequisite (e.g. the meeting type must already exist). The only implied usage is the meaning of the verb itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_reminderAInspect
Mueve un recordatorio a otra hora: el «posponer» del aviso, o cambiarlo de día. Mueve las cuatro piezas a la vez (la línea de la nota, su segmento, el aviso del cron y la tarea si colgaba de una), como el botón de la app; sin eso la nota deshace el cambio.
Dos formas: `snooze_minutes` ("posponelo 30 minutos", desde ahora) o
`date` y/o `time` ("pasalo a mañana a las 9"; lo que falta queda como
estaba). Hora en la zona del usuario. Funciona también con uno que ya sonó:
vuelve a quedar pendiente. Para darlo de baja, cancel_reminder.| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Nuevo día, YYYY-MM-DD | |
| time | No | Nueva hora, 'HH:MM' | |
| reminder_id | Yes | ID del recordatorio (de get_reminders) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| snooze_minutes | No | Posponer tantos minutos desde ahora (máx. 24 h) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations by disclosing that four linked pieces (note line, segment, cron alert, task) are moved atomically and that skipping this causes the note to revert the change, plus that a fired reminder becomes pending again. The annotations already cover the safety profile (readOnly=false, destructive=false, openWorld=false), so this adds genuine behavioral context rather than repeating it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, then the atomicity caveat, then the two input modes and the alternative – a sensible order. It is slightly dense with parenthetical clauses, but each sentence carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the mutation's scope, both parameter modes, timezone handling, idempotence on already-fired reminders, and the sibling alternative, which is sufficient for a 5-param mutation tool with only annotations and no output schema. Minor gap: no mention of error cases if the reminder_id is invalid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema lacks: snooze_minutes counts from now, date/time are relative to the user's timezone, unspecified fields stay as they were, and the two modes are mutually exclusive deployment patterns with natural-language examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Mueve un recordatorio a otra hora') and immediately frames it as the snooze/reschedule operation, distinguishing it from the app's other reminder action. It also names cancel_reminder as the sibling for a different intent, so an agent can route correctly without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use guidance for both input modes ('snooze_minutes' desde ahora vs 'date'/'time'), states that omitted fields keep their current value, notes it works on a reminder that already fired, and names the alternative (cancel_reminder) for cancelling. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_settingsAInspect
Cambia ajustes, sólo los que se pasan (lo demás queda igual). Las mismas reglas que la pantalla de Ajustes: · avisos: { reminders, recaps, tasks, shares, calendar, colgados, colgados_reunion, colgados_weekends, informe_vos } → true prende, false apaga. minutos_antes_de_eventos (hasta 5), hora_de_lo_pendiente "HH:MM", informe_vos_dias 7 | 15 | 30. · idioma es | en, tema_oscuro dark-blue | dark-gray | black, pomodoro { foco_min, descanso_min }. · Del workspace (dueño o admin): zona_horaria (IANA), cierre_automatico, digest { activo, hora "HH:MM" en la zona de la persona, tipo daily | weekly | monthly, sin_fines_de_semana }. Confirmá con la persona antes de apagar avisos. Devuelve cómo quedó todo.
| Name | Required | Description | Default |
|---|---|---|---|
| avisos | No | true prende, false apaga | |
| digest | No | ||
| idioma | No | ||
| pomodoro | No | ||
| tema_oscuro | No | ||
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| zona_horaria | No | Zona IANA del workspace, p. ej. America/Argentina/Buenos_Aires | |
| informe_vos_dias | No | ||
| cierre_automatico | No | Cerrar solos los días pasados del Daily | |
| hora_de_lo_pendiente | No | Hora local del aviso diario de lo que requiere atención, HH:MM | |
| minutos_antes_de_eventos | No | Minutos antes de cada evento con hora, p. ej. [10] o [60, 10] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare non-readOnly, non-destructive; the description adds genuinely new behavioral context: merge semantics (unspecified fields are left unchanged), the owner/admin authorization gate for workspace settings, the confirmation requirement before turning off alerts, and that it returns the resulting state ('Devuelve cómo quedó todo'). This goes well beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The group-by-bullets structure is front-loaded and scannable, and the length is justified by 11 parameters with nested objects. Only minor redundancy between the group headers and the field enumeration keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex partial-update tool with nested objects and no output schema, it covers the essentials: merge behavior, permission tiers, confirmation caution, value constraints, and the fact that the full resulting state is returned. Only the read/write round-trip with get_settings is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 55% schema description coverage and 11 params (including nested objects), the description carries real weight: it enumerates the avisos keys, caps minutos_antes_de_eventos at 5 (matching maxItems), documents informe_vos_dias 7|15|30, idioma es|en, tema_oscuro values, pomodoro fields, digest fields with 'hora en la zona de la persona', and IANA zona_horaria. It adds semantics the schema doesn't, though not every nested field is individually explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Cambia ajustes') and immediately scopes it as a partial update ('sólo los que se pasan, lo demás queda igual'), which is the key behavior an agent needs. It does not explicitly name the read counterpart get_settings, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real usage context: workspace-scoped settings require owner/admin ('Del workspace (dueño o admin)'), and it instructs to confirm with the person before disabling notifications. It lacks an explicit 'use get_settings to read first' pointer, but the conditions for correct use are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskADestructiveInspect
Cambia una tarea: título, descripción, fecha, urgencia, estado, tramo, responsable, backlog, entregable.
Sólo se toca lo que mandás: un campo omitido queda como estaba. Para vaciar
uno, mandá `null` explícito donde el campo lo admita.
ESTADO — pasar a `completed` escribe `completed_at`; volver a `pending`
o `wip` lo limpia. Para reabrir algo cerrado es mejor rollback_task, que
además valida que estuviera cerrado.
TRAMO — mover `end_date` mueve también `due_date`: son la misma fecha
vista de dos maneras y separarlas deja las vistas contradiciéndose.
BACKLOG no es un estado: `backlog: true` con `status: 'pending'` es una
tarea pendiente apartada del radar, y es la combinación normal.
DÓNDE VIVE — `jira_project` / `clickup_list` la mandan a ese proyecto o
lista (si todavía no estaba en ninguna herramienta, la crea allá; si ya
estaba en otra, la MUEVE), y `solo_en_secondbrain: true` evita que suba.
Se pasa UNO; get_task_destinations lista los destinos. No se puede sacar
de ClickUp/Jira una tarea que ya vive allá: eso se borra con delete_task.| Name | Required | Description | Default |
|---|---|---|---|
| owner | No | Si está delegada o no | |
| title | No | ||
| status | No | ||
| urgent | No | Marca de urgente a mano | |
| backlog | No | Apartar del radar / traer de vuelta | |
| private | No | Sacarla o devolverla a lo compartible | |
| task_id | Yes | ID numérico de la tarea | |
| urgency | No | ||
| assignee | No | Responsable: nombre canónico o id del Atlas; null lo quita | |
| due_date | No | YYYY-MM-DD, o null para quitar | |
| end_date | No | Fin del tramo, YYYY-MM-DD o null (arrastra due_date) | |
| start_date | No | Inicio del tramo, YYYY-MM-DD o null | |
| description | No | ||
| clickup_list | No | Mandarla a esta lista de ClickUp: nombre o id. Ver get_task_destinations | |
| jira_project | No | Mandarla a este proyecto de Jira: clave («SB»), nombre o id. Ver get_task_destinations | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| deliverable_id | No | Entregable al que pertenece, o null | |
| solo_en_secondbrain | No | Que no suba a ClickUp ni a Jira (sólo si todavía no está en ninguna) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the destructiveHint/readOnlyHint annotations: status transitions write/clear completed_at, moving end_date also moves due_date, destination fields move the task between tools or create it there, and solo_en_secondbrain prevents sync. These are exactly the side effects an agent needs before a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Organized into labeled blocks (ESTADO, TRAMO, BACKLOG, DÓNDE VIVE) with the core mutation rule front-loaded. Dense but every section carries distinct behavioral information; minor length cost from repetition of field lists already in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter destructive mutation tool with no output schema, the description covers the tricky interactions (status/date coupling, cross-tool moves, exclusivity of destination params) and points to sibling tools for adjacent operations, leaving nothing critical unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 78%, and the description still adds substantial semantics the schema lacks: backlog is not a status but a pending-plus-backlog combination, tramo ties start/end/due together, only ONE destination field should be passed, and null semantics for clearing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with a specific verb ('Cambia') and resource ('una tarea') and enumerates exactly which fields it touches. It also distinguishes itself from siblings by naming rollback_task for reopening and delete_task for removal from ClickUp/Jira.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing rules: reopening closed tasks should use rollback_task, destinations are listed via get_task_destinations, and removing a task from ClickUp/Jira requires delete_task instead. It also states that only explicit fields are changed and null clears them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_user_profileADestructiveInspect
Actualiza el perfil del usuario autenticado (nombre completo, descripción). No disponible para tokens sb_*.
| Name | Required | Description | Default |
|---|---|---|---|
| full_name | No | Nombre completo | |
| description | No | Descripción / bio del usuario |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation/in-place-overwrite character is conveyed. The description adds the useful auth caveat about sb_* tokens, but offers nothing about partial-vs-full update semantics or what happens to unspecified fields. Marginal added value over annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight clauses, zero waste, with the core action front-loaded and the access restriction second. Nothing redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter, no-required-field mutation with annotations covering the safety profile and no output schema, the description is largely sufficient and adds the sb_* token restriction. It leaves partial-update behavior unstated, which is a minor gap for an update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented in the schema. The description merely restates the same two fields (nombre completo, descripción) without adding format or merge semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Actualiza) and resource (perfil del usuario autenticado) and enumerates the affected fields. It is clearly distinguishable from the read-side sibling get_user_profile without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit availability constraint ('No disponible para tokens sb_*'), which is genuine when-not-to-use guidance. It does not name the read alternative (get_user_profile) or other exclusions, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_workspaceCDestructiveInspect
Actualiza nombre y/o configuración del workspace
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Nuevo nombre del workspace | |
| settings | No | Objeto de settings (merge con los existentes) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, but the description adds nothing beyond the title: it never says the change overwrites existing values, whether it is reversible, or that settings are merged rather than replaced (that detail lives in the schema, not the description). For a destructive mutation, no extra behavioral context is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the verb and resource, with no filler. It is efficient, though the extreme brevity is part of why other dimensions are thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter mutation tool with full schema coverage and annotations, the description is minimally adequate but omits routing guidance against the near-duplicate configurar_workspace and update_settings siblings, and does not warn about the destructive/overwrite nature flagged in annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters including workspace_id and the merge semantics of settings are already documented in the schema. The description only echoes 'name and/or settings' and adds no syntax, format, or semantics beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Stated verb 'Actualiza' with resource 'workspace' and named fields (nombre, configuración), so the operation is clear. However it does not differentiate itself from siblings such as configurar_workspace or update_settings, which an agent could easily confuse with this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus configurar_workspace, update_settings, or search_workspace, and states no prerequisites (e.g., needing workspace_id or a fixed token workspace). Usage must be inferred entirely by the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upsert_entityADestructiveInspect
Crea una nueva entidad en el knowledge graph, o actualiza la existente si ya hay una con el mismo canonical_name.
Usar para:
- Crear personas, proyectos, organizaciones o conceptos nuevos
- Actualizar descripción o aliases de una entidad existente por nombre
El canonical_name debe ser la forma normalizada del nombre (ej: "Juan Pérez", no "Juanpe" o "Juan").
aliases: lista de nombres alternativos o abreviaciones por los que también se conoce la entidad.
context: texto de contexto adicional (ej: "Cliente desde 2022, empresa de software en BsAs").| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Tipo: person=personas, project=proyectos, organization=empresas/orgs, category=categorías, entity=otros | |
| aliases | No | Nombres alternativos o abreviaciones (ej: ['Juan', 'JP']) | |
| context | No | Contexto adicional: rol, relación, notas sobre la entidad | |
| description | No | Descripción breve de la entidad | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo | |
| canonical_name | Yes | Nombre canónico único, normalizado (ej: 'Empresa ABC S.A.', 'Juan Pérez') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=false, so the agent knows this mutates and can destroy data. The description adds genuine behavioral context (existing entities are matched and overwritten via canonical_name) but never says what is actually replaced or lost, nor how aliases/description conflicts are resolved on an update.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core upsert behavior in the first sentence, then structured bullets for use cases and parameter hints. Slightly longer than strictly necessary (the context example restates the schema's example), but no sentence is wasted and ordering is logical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter destructive upsert with no output schema, the description covers inputs well but says nothing about the return value (whether the entity was created vs updated, what identifier comes back) and leaves alias merge/replace semantics undefined. Annotations and a fully covered schema carry most of the remaining burden, so it is adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does contribute extra meaning by requiring canonical_name to be the normalized form and illustrating it ('Juan Pérez', not 'Juanpe' or 'Juan'), plus a use-case example for context; still, it does not clarify type enum selection or workspace_id fallback beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('crea una nueva entidad en el knowledge graph, o actualiza la existente') and names the exact dedup key (canonical_name), so the upsert semantics are unambiguous. It does not, however, name the relevant sibling that performs the non-upsert path (update_entity), which is the main competitor an agent must choose against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Usar para' block gives two concrete usage cases: creating new people/projects/orgs/concepts and updating description or aliases of a name-matched entity. It gives clear context for when to reach for this tool, but offers no explicit when-not conditions or named alternatives (e.g., update_entity when the ID is already known).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_daily_noteADestructiveInspect
Escribe o agrega contenido a la nota diaria del workspace.
Por defecto AGREGA al final de la nota existente (append=true). Usar append=false solo para reemplazar todo el contenido.
Acepta markdown (títulos, negritas, listas, tablas, citas, código) y lo convierte a formato del editor.
Cada renglón es un bloque propio: dos renglones seguidos NO se juntan en un párrafo, así que
un recordatorio (⏰ 15:30 — …) o una tarea (✅ …) por renglón se siguen leyendo uno por uno.
Si la nota no existe para esa fecha, se crea nueva.
Usar para: registrar lo que pasó hoy, anotar ideas, documentar reuniones, agregar tareas al log del día.| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Fecha YYYY-MM-DD (default: hoy) | |
| append | No | true (default) = agrega al final de la nota existente. false = reemplaza todo el contenido | |
| content | Yes | Texto a escribir en la nota (markdown; un bloque por renglón) | |
| workspace_id | No | UUID del workspace, o su nombre tal como lo dice el usuario ('Acme', 'el personal'). Omitir si el token ya tiene workspace fijo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses specific internal system behavior beyond the annotations (destructiveHint: true). It details how line breaks function (blocks are separate paragraphs) and informs the agent that the system automatically creates the note if it doesn't exist for that date.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The structure is highly efficient. It starts with the primary function, immediately details the critical operational modes (append vs. replace), and ends with clear use-case examples, ensuring maximum value per sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a writing/mutation tool (handling creation, formatting, and state changes like appending), the definition is complete. It informs the agent not just how to call it, but how the underlying system will process the input content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds crucial operational semantics to the 'content' parameter by detailing that it accepts Markdown and 'lo convierte a formato del editor.' It also reinforces the append logic outside of the boolean parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action: 'Escribe o agrega contenido a la nota diaria del workspace.' This distinguishes it from read operations (like get_daily_note) and focuses entirely on mutation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on *when* to use the tool ('registrar lo que pasó hoy, anotar ideas, documentar reuniones, agregar tareas...') and, more critically, guides the user on the usage difference between append=true (default) and append=false (replacement).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
start_artifact_upload2 fields changed- added
Input schema / properties / bytesAdded value: +{ + "description": "Cuánto pesa el archivo, en bytes (`wc -c ARCHIVO`). Se valida ANTES de subir: arriba del tope no se guarda.", + "minimum": 1, + "type": "integer" +} - changed
Input schema / requiredPrevious value: -[ - "name" -]New value: +[ + "name", + "bytes" +]
2 tool updates
- Changed
create_event2 fields changed- added
Input schema / properties / calendarAdded value: +{ + "description": "En qué calendario sincronizado: 'Outlook', 'Google', el nombre o el mail del calendario. Omitir = el destino por defecto de la persona (nunca el local si hay uno sincronizado)", + "type": "string" +} - changed
Input schema / properties / color / descriptionPrevious value: -"Color del evento: un nombre como 'blue' (el default de la app) o un hex '#3b82f6'"New value: +"Color del evento si queda local: un nombre como 'blue' o un hex '#3b82f6'. En un calendario sincronizado manda el color del calendario"
- Changed
update_event1 field changed- added
Input schema / properties / calendarAdded value: +{ + "description": "MOVER el evento a este calendario: 'Outlook', 'Google', nombre o mail del calendario sincronizado, o 'local'", + "type": "string" +}
131 tool updates
- First observed
add_entity_relation - First observed
add_task_comment - First observed
append_artifact - First observed
append_document - First observed
associate_document_entity - First observed
bienvenida - First observed
cancel_reminder - First observed
change_entity_relation_type - First observed
close_day_note - First observed
complete_task - First observed
configurar_workspace - First observed
confirm_meeting_actionable - First observed
copy_document - First observed
create_canvas - First observed
create_clip - First observed
create_deliverable - First observed
create_document - First observed
create_event - First observed
create_meeting - First observed
create_meeting_type - First observed
create_task - First observed
delete_artifact - First observed
delete_canvas - First observed
delete_clip - First observed
delete_document - First observed
delete_document_file - First observed
delete_entity - First observed
delete_entity_relation - First observed
delete_event - First observed
delete_meeting - First observed
delete_meeting_type - First observed
delete_report - First observed
delete_task - First observed
dismiss_meeting_actionable - First observed
dissociate_document_entity - First observed
find_documents - First observed
finish_artifact_upload - First observed
generate_report - First observed
get_agenda - First observed
get_all_files - First observed
get_artifact - First observed
get_board_tasks - First observed
get_boards - First observed
get_canvas - First observed
get_canvases - First observed
get_clip - First observed
get_clips - First observed
get_completed_tasks - First observed
get_daily_note - First observed
get_declared_tasks - First observed
get_definitions - First observed
get_deliverables - First observed
get_document - First observed
get_document_entities - First observed
get_document_files - First observed
get_document_versions - First observed
get_documents - First observed
get_documents_by_entity - First observed
get_entity_details - First observed
get_entity_relations - First observed
get_entity_suggestions - First observed
get_entity_tasks - First observed
get_entity_wiki - First observed
get_events - First observed
get_guide - First observed
get_knowledge - First observed
get_last_report - First observed
get_me - First observed
get_meeting - First observed
get_meeting_actionables - First observed
get_meeting_types - First observed
get_meetings - First observed
get_meetings_groups - First observed
get_playbook - First observed
get_recent_notes - First observed
get_reminders - First observed
get_report - First observed
get_reports - First observed
get_settings - First observed
get_storage_usage - First observed
get_task_comments - First observed
get_task_destinations - First observed
get_task_detail - First observed
get_tasks - First observed
get_token_usage - First observed
get_trash - First observed
get_user_plan - First observed
get_user_profile - First observed
get_working_log - First observed
get_workspace - First observed
get_workspace_relations - First observed
how_to_in_app - First observed
link_event_task - First observed
list_artifacts - First observed
list_workspaces - First observed
merge_entities - First observed
move_document - First observed
patch_artifact - First observed
patch_document - First observed
recall - First observed
refine_entity_wiki - First observed
rename_document_file - First observed
reopen_day_note - First observed
resolve_entity_suggestion - First observed
restore_artifact_version - First observed
restore_document_version - First observed
restore_from_trash - First observed
rollback_task - First observed
save_artifact - First observed
save_artifact_from_url - First observed
search_daily_notes - First observed
search_documents - First observed
search_entities - First observed
search_workspace - First observed
start_artifact_upload - First observed
start_document_upload - First observed
update_canvas - First observed
update_clip - First observed
update_deliverable - First observed
update_document - First observed
update_entity - First observed
update_event - First observed
update_meeting - First observed
update_meeting_type - First observed
update_reminder - First observed
update_settings - First observed
update_task - First observed
update_user_profile - First observed
update_workspace - First observed
upsert_entity - First observed
write_daily_note
Publisher details
- Operator
- Unknown
- Operator website
- Unknown
- Vendor relationship
- Unknown
- Documentation
- Unknown
- Trust center
- Unknown
- Restrictions
- Unknown
Related MCP Connectors
One memory for all your AI tools: Claude, ChatGPT, Cursor and any MCP client share the same notes.
Cobrain is a hosted Markdown brain your AIs share. Connect Claude, ChatGPT, Claude Code, Codex or any MCP client once (remote MCP with OAuth, no API keys to paste) and they all read and write the same notes. Share one folder with a teammate, read-only or read-write, and their AI reads it too. Permissions are enforced in the database, the same for the web app and for AIs; writes are version-checked so two AIs can't silently overwrite each other. Plain .md, exportable, EU-hosted. Free plan available.
- LogRackOAuthai.lograck
Shared memory for your AI tools: tasks, notes and context every tool can read and write over MCP.
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAI-native productivity backend that gives your AI assistant persistent memory, pattern awareness, and computed intelligence about your work. 14 MCP tools for task management, daily planning, weekly review, and personal context.MIT
- AlicenseNot gradedqualityCmaintenanceEnd-to-end agent-managed company brain. Humans and any MCP agent co-author living docs (Markdown + extensions), 40+ visual diagrams (Mermaid, BPMN, D2, PlantUML, ELK, Excalidraw), plans, and a self-learning Knowledge Graph. 163 tools across 16 categories. Auth: OAuth 2.1 or API key. Lean, secure, affordable — from individuals to enterprise.MIT
- FlicenseNot gradedqualityAmaintenanceEnables users to create timestamped atomic notes in Markdown, bidirectionally link and tag them into a searchable knowledge graph, and explore, synthesize, or discover relationships among ideas through Claude and other MCP-compatible clients. Notes are stored as human-readable files with an SQLite index that supports finding similar, central, and orphaned notes.-
- FlicenseNot gradedqualityAmaintenanceEnables users to create, link, explore, and synthesize atomic notes as a knowledge graph through Claude and other MCP-compatible clients. It supports tagging, search, note types, semantic link types, and Markdown-file storage indexed by SQLite.-
Glama MCP Gateway
Add one secure layer between your agents and this server.