Skip to main content
Glama

Server Details

Turn calls and notes into process flow diagrams in Claude, ChatGPT, VS Code, Cursor, and Teams.

Ownership verified
Status
Healthy
Uptime
77.4% over 22 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.6/5.0

Scored across 106 tools

Disambiguation3/5

Most tools are separated by resource or target integration, but there is real overlap among flow-creation/import tools (create_flow_from_text, notes_to_flow, add_to_flow) and among analysis tools (review_flow, suggest_followups, summarize_flow, write_recaps). With 106 tools, agents must lean heavily on the long descriptions to choose correctly.

Naming Consistency4/5

Nearly all names use snake_case with predictable verb-first patterns such as create_, list_, get_, send_, remove_, and update_. Minor deviations like crm_status and notes_to_flow keep it from being perfectly uniform, but the set remains readable and consistent overall.

Tool Count1/5

106 tools far exceeds an appropriate agent-facing surface, even for a broad platform. This is an extreme tool count that increases context load and makes tool selection costly, matching the rubric's 50+ threshold for an extreme mismatch.

Completeness4/5

The surface covers flow CRUD, graph editing, versions, sharing, collaboration, approvals, check-ins, folders, organizations, teams, security, audit, usage, and many integrations/imports/exports. Minor lifecycle gaps remain, such as team deletion/update, approval cancellation, and loop update, but agents can mostly work around them.

Available Tools

106 tools
add_collaboratorAdd collaboratorA
Destructive
Inspect

Invite a collaborator to a Wavelength flow by email, with role editor or viewer (default editor). Collaboration needs the Pro plan. Calling add_collaborator again for the same email with a new role changes the collaborator's role. Returns the new collaborator.

NameRequiredDescriptionDefault
roleNoThe collaborator role. Defaults to editor. Calling again with a new role changes the role.
emailYesThe email of the person to invite.
flow_idYesThe id of the flow.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive=true, idempotent=false, and openWorld=true; the description adds genuinely new context — the Pro-plan prerequisite, the upsert behavior on repeat calls, and the fact that the new collaborator is returned. It doesn't explain what access is granted or how to revoke it, but it meaningfully extends 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero padding, with purpose and the Pro-plan constraint front-loaded. Slight redundancy in restating the role default that the schema already documents keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 3 parameters fully documented in the schema and safety traits covered by annotations, the description supplies the remaining needed pieces: plan prerequisite, repeat-call semantics, and return value (notably useful since there is no output schema). Only the lack of sibling/alternative routing keeps it below 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the only semantics the description adds (default editor, role-change on re-call) are already present verbatim in the role parameter's schema description. Baseline 3 is appropriate when the schema carries the parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Invite/add), resource (collaborator to a Wavelength flow), and mechanism (by email with an editor/viewer role). This implicitly separates it from invite_member, add_team_member, and share_flow, but it never names those siblings to make the boundary explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: collaboration requires the Pro plan, and re-calling with a new role changes the existing collaborator's role rather than erroring or duplicating. It offers no explicit when-not-to-use guidance or alternative tools (e.g., add_team_member for team-level access), 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.

add_edgesAdd edgesAInspect

Connect nodes in a Wavelength flow. Edge kinds: sequence, data, conditional, reports_to. An edge with a missing source or target is rejected in the result. No AI call. Saves a versioned snapshot labeled 'Edited by AI agent (exact)'. Returns the applied count, a rejected list with reasons, node and edge counts, and a link to open it.

NameRequiredDescriptionDefault
itemsYesThe items to apply, in order.
flow_idYesThe id of the flow to edit.

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond annotations: versioned snapshot creation with exact label, no AI call, rejection of edges with missing endpoints, and a detailed return contract including applied count and rejection reasons. This is unusually rich disclosure 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then layers enum, behavior, and return details in tight sentences. Every sentence contributes distinct information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description compensates by describing the return shape. With annotations covering the safety profile and the description covering purpose, rejection behavior, versioning, and returns, an agent has enough to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are fully documented structurally. The description repeats the edge-kind enum and mentions source/target rejection, but adds no new semantic meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb and resource: connecting nodes in a Wavelength flow. The edge kinds enumeration reinforces that this is about edges, distinguishing it implicitly from add_nodes or update_edges, but 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no when-to-use guidance or alternatives. It does not say when to prefer add_edges over update_edges or add_nodes, leaving the agent to infer usage 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.

add_nodesAdd nodesAInspect

Add nodes to a Wavelength flow. Node types: start, step, decision, data, system, actor, end. status (warning, error, or none) sets conditional formatting. New nodes are auto-placed. No AI call. Saves a versioned snapshot labeled 'Edited by AI agent (exact)'. Returns the applied count, a rejected list with reasons, node and edge counts, and a link to open it.

NameRequiredDescriptionDefault
itemsYesThe items to apply, in order.
flow_idYesThe id of the flow to edit.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly=false, idempotent=false, destructive=false). The description adds meaningful behavioral context beyond that: nodes are auto-placed, a versioned snapshot labeled 'Edited by AI agent (exact)' is saved, and no AI call is made. This is rich side-effect disclosure, though it does not spell out error/permission conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five short sentences, purpose front-loaded, then types, formatting, placement behavior, and return shape in order of relevance. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 compensates by enumerating the return payload (applied count, rejected list with reasons, node/edge counts, link). Combined with the 100% schema coverage, an agent has enough to call it correctly, though permission or failure conditions are not addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents flow_id and every item field. The description restates the node types and the warning/error/none status meaning, adding only the 'auto-placed' placement note 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Add) plus resource (nodes) and scopes it to a 'Wavelength flow'. Combined with the enumerated node types and 'New nodes are auto-placed', an agent can immediately distinguish this from update_nodes, remove_nodes, and add_edges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage through behavioral cues like 'No AI call' and auto-placement, which steer it away from the AI-driven siblings (ask_flow, edit_flow). However, it never explicitly says when to reach for add_nodes versus update_nodes or remove_nodes, leaving the choice to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_team_memberAdd team memberA
Idempotent
Inspect

Add one person to a team with a role. Roles: team_admin (manages the team), editor (edits team flows), viewer (opens team flows only). Only a team admin, the team owner, or an organization owner or admin can do this. For an organization team, the person must be in the organization.

NameRequiredDescriptionDefault
roleNoTeam role for add or set_role. Default editor.
emailYesThe person's email address.
team_idYesTeam id from list_teams.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond them: the permission model and the org-membership requirement. It does not address what happens on re-adding an existing member or whether an invitation is dispatched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences: the operation first, then role semantics, then authorization, then the org precondition. No filler and nothing redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, return values need not be explained, and annotations cover safety. For a mutation tool the description supplies permissions and preconditions, but leaves open whether the person must already have an account or is invited, which matters given the sibling invite_member.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 goes further by defining the semantics of each role value (team_admin manages the team, editor edits flows, viewer only opens flows) rather than just listing the enum. team_id and email are left to the schema, which is acceptable given its descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('add'), a specific resource ('one person to a team') and the scoping attribute ('with a role'), which cleanly separates it from flow-level siblings like add_to_flow and add_collaborator. 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the authorization prerequisites explicitly ('Only a team admin, the team owner, or an organization owner or admin can do this') and the org-team precondition. It gives clear when-you-may-use context but never names an alternative sibling (e.g. invite_member for someone not yet in the org), so there is no explicit when-not routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_to_flowAdd to flowAInspect

Add new notes or transcript from a follow-up call to an existing flow. Gets the flow, asks the AI to merge the new notes into the graph reusing existing nodes, saves a versioned snapshot labeled 'Added notes by AI agent', and appends the text to the stored transcript. Returns the new node and edge counts and a link to open it.

NameRequiredDescriptionDefault
textYesThe new notes or transcript to merge into the flow.
flow_idYesThe id of the flow to add to.

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations only declare the safety profile (readOnly=false, idempotent=false, destructive=false, openWorld=false); the description goes well beyond that by disclosing the full execution pipeline — fetch flow, AI-merge reusing existing nodes, versioned snapshot labeled 'Added notes by AI agent', and transcript append. This is exactly the additive behavioral context the 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense sentence, front-loaded with the purpose and then the pipeline steps in execution order. Nearly every clause earns its place by describing a distinct side effect, though it is on the long side for one sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-step, non-idempotent mutation with no output schema, the description supplies return values (new node and edge counts plus an open link) and side effects, so an agent can call it and interpret results. The one real gap is the absence of any disambiguation from the near-identical sibling 'notes_to_flow'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for both parameters, so the schema already documents flow_id and text. The description only restates that text is follow-up notes merged into the flow and that flow_id must be existing, adding marginal meaning 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('add new notes or transcript... to an existing flow') and even details the multi-step outcome (merge, snapshot, transcript append). It is clear what the tool does, but it never distinguishes itself from the very similarly named sibling 'notes_to_flow', leaving the agent unable to tell them apart from the text alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied through the phrase 'from a follow-up call', which hints at the scenario but gives no explicit when-to-use, prerequisites, or when-not-to-use conditions. It names no alternative, so the agent must guess whether this or 'notes_to_flow'/'edit_flow' is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ask_flowAsk about a flowA
Read-only
Inspect

Ask a question about one saved Wavelength flow. The answer comes only from the steps, owners, systems, and links in the flow. If the flow does not say, the answer says so and names what is missing. Uses one AI help call from the plan.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.
questionYesThe question about the flow, up to 1000 characters.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, non-destructive, non-open-world), and the description adds real value beyond them: the answer is grounded only in the flow's steps/owners/systems/links, unsupported questions are answered with an explicit 'not stated' plus what is missing, and it consumes one AI help call from the plan. The quota/cost disclosure and grounding limits are meaningful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly scoped sentences with no filler, front-loaded with the core action before the grounding and cost details. Every sentence carries information the agent can act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, no-output-schema tool, the description covers the action, the grounding source, failure behavior, and the AI-call cost. The main omission is how the answer is shaped/returned and how it differs from the other flow-analysis siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (flow_id, question) are already documented, including the 1000-character limit. The description adds only the implicit notion that flow_id identifies a saved flow, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('ask a question') and resource ('one saved Wavelength flow'), making the Q&A nature clear. It is distinguishable from list/query siblings by the singular 'one saved flow' scope, though it does not explicitly contrast itself with summarize_flow or review_flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose implies when to use it (asking a natural-language question about a flow), but there is no explicit guidance on when to pick this over siblings like summarize_flow, review_flow, query_flows, or suggest_followups. Usage is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

attach_flow_to_crmAttach flow to CRMAInspect

Attach a Wavelength flow to a HubSpot deal as a note, with the flow title, an optional summary, and a share link. If the flow is public, the public link is used; otherwise the open_url is used. If HubSpot is not connected, returns an error telling the user to connect HubSpot in Wavelength settings.

NameRequiredDescriptionDefault
deal_idYesThe HubSpot deal id to attach the flow to.
flow_idYesThe id of the flow to attach.
summaryNoOptional summary to include in the note, up to 1000 characters.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare write (readOnlyHint=false), open-world, and non-idempotent behavior. The description adds value beyond them: it explains link-selection logic (public link vs open_url) and the connection-failure error path. It does not cover duplicate/repeat-attach behavior, which is relevant given idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the primary action front-loaded, followed by link-selection and error behavior. No filler or repetition, and each sentence adds usable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write tool with annotations and no output schema, the description covers the destination, the link rule, and the failure mode. It omits success/return behavior and repeat-attach semantics, which is a minor gap given the annotations already flag non-idempotency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (deal_id, flow_id, summary with its 1000-char limit) are already documented. The description restates the summary and link concept but adds no syntax or format detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: attaches a Wavelength flow to a HubSpot deal as a note. It distinguishes itself from the many send_flow_to_* siblings by naming the concrete destination (HubSpot deal / note) rather than a generic 'send'. An agent can identify the tool 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the CRM/HubSpot framing, and a precondition is given (HubSpot must be connected or an error is returned). However, there is no explicit when-to-use vs alternatives guidance, e.g. how this differs from the send_flow_to_salesforce/servicenow siblings or from search_crm_deals/crm_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_versionsCompare versionsA
Read-onlyIdempotent
Inspect

Compare two saved versions of a Wavelength flow, or one version against the current graph. Nodes are matched by id; edges by source, target, and kind. Returns added, removed, and changed nodes (with the fields that changed), added and removed edges (with labels), and a one line summary.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.
version_aYesThe id of the first version to compare.
version_bNoOptional id of the second version. Omit to compare against the current graph.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds meaningful behavior: how nodes/edges are matched (by id; by source/target/kind) and exactly what the diff reports, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly written sentences with zero filler; the primary purpose is front-loaded and the matching/return semantics follow logically. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 return values, and it does so precisely (added/removed/changed nodes with changed fields, added/removed edges with labels, one-line summary). Nothing an agent needs to invoke or interpret the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 flow_id, version_a, and version_b (including the omit-to-use-current-graph semantics). The description reinforces the comparison mode but adds no syntax or format detail beyond the structured fields, so baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (compare) and resource (saved versions of a Wavelength flow / the current graph), and clarifies the two comparison modes. It is easily distinguishable from siblings like list_versions and restore_version, which enumerate or revert rather than diff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly frames the two use cases: comparing two saved versions, or comparing one version against the current graph via the optional version_b. It does not explicitly name alternative tools (e.g., list_versions to discover ids, restore_version to act on a diff), so it stops 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.

create_flow_from_graphCreate flow from graphAInspect

Create a saved Wavelength flow from an explicit node and edge structure, with no AI call. Use this when the client already has the graph. Node types must be one of start, step, decision, data, system, actor, end. Edge kinds must be one of sequence, data, conditional, reports_to. Edges that point at a missing node are dropped. Nodes are auto-laid out. Returns the new flow id, node and edge counts, and the number of dropped edges.

NameRequiredDescriptionDefault
edgesNoThe edges in the graph.
nodesYesThe nodes in the graph.
titleYesThe title for the new flow.
team_idNoOptional team id to assign the flow to.
directionNoOptional layout direction. vertical stacks ranks top-down (default); horizontal advances left-to-right.
folder_idNoOptional folder id to create the flow in.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare it is a non-read-only, non-idempotent, non-destructive create. The description adds genuine behavioral context beyond them: edges targeting missing nodes are silently dropped, nodes are auto-laid out, and the response reports flow id, node/edge counts, and dropped-edge count. That dropped-edge disclosure is exactly the kind of side effect 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose, then constraints, then return values, in four tight sentences. No filler or repetition despite covering a fair amount of ground.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 return payload (flow id, counts, dropped edges), and the drop/auto-layout semantics round out the mutation behavior. Nothing an agent needs to call this correctly appears missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 every parameter and both enums. The description restates the node-type and edge-kind enumerations (already in the schema) and adds no per-parameter guidance, so it lands at the baseline rather than adding value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a saved Wavelength flow from an explicit node and edge structure') and immediately differentiates itself from the sibling create_flow_from_text via 'with no AI call.' An agent can distinguish it from the graph-building siblings 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this when the client already has the graph' gives an explicit triggering condition that routes the agent away from the text/AI path. It stops short of naming create_flow_from_text directly as the alternative, but the 'no AI call' framing makes the boundary clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_flow_from_textCreate flow from textAInspect

Turn a transcript, call notes, or a spoken description of a process into a saved Wavelength flow. Nodes are auto-laid out. Returns the new flow id, title, node and edge counts, a short list of node labels, and a link to open it.

NameRequiredDescriptionDefault
textYesA transcript, call notes, or a spoken description of the process to diagram.
titleNoOptional title for the flow. If omitted, the first line of the text is used.
org_idNoOptional organization id (from list_organizations). The flow is saved in that organization, where every member can open it.
team_idNoOptional team id to assign the flow to.
directionNoOptional layout direction. vertical stacks ranks top-down (default); horizontal advances left-to-right.
folder_idNoOptional folder id to create the flow in.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, covering the safety/mutation profile. The description adds genuine context beyond that: nodes are auto-laid out, and the return payload is enumerated (id, title, node/edge counts, labels, link). It stops short of noting that repeated calls create duplicate flows, which the non-idempotent hint implies but does not spell out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose first, then the auto-layout behavior, then the return summary. No filler, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 compensates by summarizing the return values an agent would see. Combined with 100% parameter coverage in the schema and entity annotations, an agent has what it needs to invoke this correctly; only the sibling routing is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 text, title, org_id, team_id, direction, and folder_id. The description adds no parameter-level meaning beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Turn ... into a saved Wavelength flow') and enumerates the accepted input sources (transcript, call notes, spoken description). It does not name its closest sibling create_flow_from_graph, so the agent must infer differentiation from the input type alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells the agent what kinds of input fit (natural-language process descriptions), which implies usage, but it never says when to prefer this over create_flow_from_graph or notes_to_flow, nor any exclusions or prerequisites. Usage is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_folderCreate folderAInspect

Create a new folder. Personal folders need a paid plan. Pass team_id for a team folder, or org_id (from list_organizations) for an organization folder that every member of the organization can use. Only organization flows can go in an organization folder. Returns the new folder.

NameRequiredDescriptionDefault
nameYesThe folder name.
org_idNoOptional organization id. Creates an organization folder.
team_idNoOptional team id to create a team folder.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (not read-only, not destructive, not idempotent), so the description's added value is the paid-plan prerequisite and the business rule about which flows an organization folder accepts, plus the return value. It does not cover behavior on duplicate names or on supplying both team_id and org_id, which are the remaining behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, zero filler, front-loaded with the core action and then the routing constraints. Each sentence carries distinct information (action, prerequisite, routing, return).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description helpfully states it returns the new folder, and it covers prerequisites and folder-type routing. Missing only edge-case behavior such as duplicate-name handling or id combination, which an agent might still need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 tells the agent that org_id comes from list_organizations and frames team_id/org_id as alternative routing keys rather than independent flags. It stops short of stating whether they are mutually exclusive or combinable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb plus resource ("Create a new folder") followed by a taxonomy of the three folder kinds this tool produces, which cleanly separates it from delete_folder, rename_folder, and move_flow_to_folder. An agent can identify the operation and its scope 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit conditional routing: pass team_id for a team folder, org_id for an organization folder, otherwise a personal folder, plus the prerequisite that personal folders require a paid plan and the constraint that only organization flows belong in an organization folder. No sibling is named as an explicit alternative, and conflicts (both ids supplied) are unaddressed, 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.

create_loopSchedule recurring flow reportAInspect

Schedule a report on a Wavelength flow. kind: changes (what changed since the last report), open_items (open comments, pending approvals, steps with no owner, AI guesses), or ai_review (AI summary and gaps, Pro). Times are UTC. channel is email or a webhook: from list_loops.

NameRequiredDescriptionDefault
kindYes
cadenceYes
channelNoemail (default) or webhook:<id>.
flow_idYesThe id of the flow.
hour_utcYesHour of the day in UTC, 0 to 23.
weekday_utcNo0 is Sunday. Weekly only.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly=false, destructive=false, openWorld=true, idempotent=false), so the bar is lower. The description adds real value by disclosing the Pro gating on ai_review and the UTC time convention, but it does not warn that this creates a recurring, non-idempotent side effect (duplicate schedules) 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense but front-loaded sentence-pair: purpose first, then per-parameter semantics, then the list_loops dependency. No filler, though the kind clause is heavy and could be scanned more easily as a list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter creation tool with no output schema, the description omits what is returned (e.g., a loop id) and does not address duplicate/update behavior on repeat calls. The core invocation info is present, but these gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, and the description compensates well: it defines each kind value, states times are UTC (reinforcing hour_utc/weekday_utc), and explains that channel is either email or a webhook:<id> sourced from list_loops. It adds genuine meaning beyond the enum lists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Schedule a report on a Wavelength flow") and enumerates the three report kinds, so an agent knows exactly what it creates. It does not explicitly contrast with siblings like list_loops or delete_loop, hence not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the kind enumeration (changes vs open_items vs ai_review) and by the note that channel must come from list_loops, which tells the agent a prerequisite call. However there is no explicit when-to-use / when-not guidance or stated alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_organizationCreate organizationAInspect

Create a new organization. You become its owner. To invite people, the owner buys Pro seats in Wavelength Settings, Organization, Billing. You can own up to 5 organizations.

NameRequiredDescriptionDefault
nameYesThe organization name.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-readonly, non-destructive, non-idempotent, closed-world, so the safety profile is covered. The description adds genuinely useful context beyond them: caller becomes owner, the per-owner cap of 5 organizations, and the seat-purchase path for inviting members.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action and with no filler. The billing-settings sentence is slightly tangential but still actionable, keeping it just shy of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter create tool with annotations covering the mutation profile and no output schema, the description supplies the ownership semantics and quota limit an agent would otherwise lack. Nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'name' parameter, so the schema carries the load. The description adds no syntax, constraints or format for the name, so it sits at the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource ('Create a new organization') with an added side-effect ('You become its owner'), so the purpose is unambiguous. It does not explicitly contrast itself with nearby siblings like create_organization_team or create_org_api_key, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the resource itself, and it does describe a follow-on flow ('To invite people, the owner buys Pro seats in Wavelength Settings, Organization, Billing'). However, there is no explicit when-to-use/when-not or named alternative, so guidance remains implied rather than directive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_organization_teamCreate an organization teamAInspect

Create a team inside an organization. Only an organization owner or admin can do this. Then add people with add_team_member. Only members of the organization can join its teams.

NameRequiredDescriptionDefault
nameYesThe team name.
org_idYesOrganization id from list_organizations.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the description's added value is the authorization requirement and the membership constraint on teams, both of which are genuinely useful beyond the structured metadata. It stops short of noting failure modes such as duplicate team names or what happens on permission denial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler; the core action is front-loaded and each subsequent sentence adds a distinct constraint or routing hint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation with no output schema, the description covers purpose, permissions, membership constraint, and the logical next step. It doesn't say whether the response returns a team id needed by add_team_member, which would be the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both required parameters are documented in the schema, including the note that org_id comes from list_organizations. The description adds no further 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create a team inside an organization'), scoping it clearly apart from siblings like create_organization and add_team_member. An agent can tell immediately which tool creates a team versus which one adds people to it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the required permission ('Only an organization owner or admin can do this') and routes the agent to the follow-up tool ('Then add people with add_team_member'), plus the constraint that only org members can join. There is no explicit when-not-to-use, but the precondition and next-step routing are concrete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_org_api_keyCreate organization API keyAInspect

Make an organization API key for the Wavelength REST API (docs: https://wavelengthflow.com/developers.html). The key is returned only once; Wavelength keeps only a hash. The key acts as you and stops working if you are no longer an owner or admin. Scopes: flows:read, flows:write, audit:read, usage:read. Up to 10 active keys. Only an owner or an admin can do this.

NameRequiredDescriptionDefault
labelNoA name for the key, for example Data warehouse sync.
org_idYesOrganization id from list_organizations.
scopesNoWhat the key can do. Default ["flows:read"].
expires_in_daysNoOptional. The key stops working after this many days (1 to 730).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (which only mark it non-readonly, non-destructive, non-idempotent). It discloses the critical one-time return behavior ('returned only once; Wavelength keeps only a hash'), the lifecycle caveat that the key stops working if you lose owner/admin status, available scopes, and the 10-key cap. This is exactly the behavioral context an agent needs before an irrevocable creation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action, followed by short sentences each carrying a distinct fact (one-time return, persistence, lifecycle, scopes, quota, permissions). Slightly repetitive in re-listing the scopes already present in the enum, but otherwise efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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, and it does so precisely (key shown only once, only a hash retained). Combined with permissions, quota, and scope details, nothing an agent needs to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (label, org_id, scopes, expires_in_days) are already documented in the schema. The description restates the scope values, which duplicates the schema enum rather than adding new meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Make an organization API key for the Wavelength REST API') and clearly differentiates from siblings like create_organization and revoke_org_api_key. 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives real context: 'Only an owner or an admin can do this' establishes the permission prerequisite, and 'Up to 10 active keys' signals a quota constraint. It stops short of explicitly naming alternatives (e.g. revoke_org_api_key) or stating when not to use it, so it falls just 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.

crm_statusCRM statusA
Read-onlyIdempotent
Inspect

Read the connected CRM (HubSpot) status for the signed-in user. Returns whether HubSpot is connected and the provider.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description only needs to add context. It does add two real facts: the check is scoped to the signed-in user, and it reports connection state plus provider. It stops short of saying what happens when nothing is connected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the action and scope come first, the return summary second. Nothing is redundant or padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 the return, and it does name the two returned values (connected flag and provider). It omits edge cases such as what the response looks like when no CRM is linked, which is a minor gap for a no-arg status tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. The only scoping detail, that the result is for the 'signed-in user', is stated, but there are no parameters to document beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a concrete verb (Read) plus resource (connected CRM status) and even names the specific provider, HubSpot. It is easily distinguished from search_crm_deals and attach_flow_to_crm by the 'status' resource, though it never explicitly contrasts 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: a reader infers this is the pre-flight check to see if HubSpot is connected before invoking CRM-dependent tools. There is no explicit when-to-use statement, no when-not-to-use, and no mention of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decide_approvalApprove or ask for changesAInspect

Approve a flow, or ask for changes, when it is the signed-in person's turn in an approval. Get approval_id from get_inbox or list_approvals.

NameRequiredDescriptionDefault
commentNoOptional comment for the requester.
decisionYesapprove, or changes to ask for changes.
approval_idYesThe approval id.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false, so the safety profile is largely covered. The description usefully adds the authorization precondition (must be your turn) and the id's provenance, but says nothing about what happens after a decision is recorded or that a repeat call is not idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the action and its precondition, then the id source. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description could say more about the consequence of approval/changes (e.g., that the flow advances or is sent back to the requester), but for a 3-parameter decision tool the coverage is otherwise sufficient to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description goes beyond the schema by naming get_inbox and list_approvals as the sources for approval_id, which is real added meaning for how to fill the required parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('approve') and alternative action ('ask for changes') on the 'flow' resource in an approval context, which cleanly separates it from request_approval, list_approvals, and get_inbox among the siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the gating condition explicitly ('when it is the signed-in person's turn') and tells the agent where to obtain approval_id, so invocation context is clear. It does not say what to do if it is not your turn or contrast with request_approval for the requester side.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_flowDelete flowA
DestructiveIdempotent
Inspect

Permanently delete a saved Wavelength flow by id. This cannot be undone. Only the owner can delete a flow. Returns {deleted: true, flow_id} on success.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow to delete.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the description's 'Permanently ... cannot be undone' reinforces rather than pioneers. It does add value beyond annotations by disclosing the authorization requirement ('Only the owner can delete a flow') and describing the success 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences with zero filler, and the irreversible consequence is front-loaded immediately after the purpose. Because no output schema exists, the return-value sentence earns its place rather than repeating structured data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the essentials for an irreversible mutation: what is destroyed, who may do it, and the return payload, with no output schema available to carry the latter. It stops short of noting cascade effects (collaborators, folder membership, active shares) that an agent might reasonably wonder about.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a single parameter whose schema text ('The id of the flow to delete') is fully self-explanatory. The description's 'by id' adds no syntax, format, or sourcing detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (delete), resource (saved Wavelength flow), identifier (by id), and a distinguishing scope. Among siblings like delete_folder, delete_organization, and delete_portal, the resource named here makes the target unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The owner-only constraint functions as a prerequisite, which is useful usage guidance. However, there is no explicit when-to-use vs. alternatives guidance (e.g. delete_folder vs. delete_flow, or restore_version for recovery); usage is implied by the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_folderDelete folderA
DestructiveIdempotent
Inspect

Delete a folder. Flows inside the folder are moved back to unfiled; they are not deleted. Returns {deleted: true}.

NameRequiredDescriptionDefault
folder_idYesThe id of the folder to delete.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and idempotentHint=true, but the description adds the critical non-obvious behavior: contained flows are preserved and re-parented to unfiled, not cascaded. It also discloses the return payload {deleted: true}, which is essential since 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero waste. Purpose first, then the surprising behavior, then the return shape. Front-loaded and complete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A single-param destructive tool with no output schema needs exactly this: what is destroyed (the folder), what survives (flows, re-parented), and what comes back ({deleted: true}). 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the folder_id parameter is fully documented in the schema. The description doesn't need to repeat it, and correctly doesn't. A 4 rather than a 3 because the description implies the identifier targets a specific folder whose contents survive, connecting the parameter to the safety semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb 'Delete' plus resource 'folder', immediately distinguishing it from create_folder, list_folders, and rename_folder.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clarifies the consequence (flows moved back to unfiled, not deleted), which implicitly tells an agent when this is safe to use. But it doesn't name alternatives like rename_folder or list_folders, nor does it state prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_loopDelete loopA
DestructiveIdempotent
Inspect

Delete one of the signed-in person's loops. Get loop_id from list_loops.

NameRequiredDescriptionDefault
loop_idYesThe loop id.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description adds real context beyond that: the tool only deletes loops owned by the signed-in person, an authorization boundary an agent needs before calling it. It stops short of describing any recovery path or confirmation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, action first, prerequisite second. Every clause carries information and nothing is repeated from the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter destructive tool with full annotation coverage and no output schema, the description supplies the ownership scope and the id source. Missing only irreversibility/permission specifics, which the annotations largely imply.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single required parameter, so the baseline is 3, but the description adds value by telling the agent where the loop_id comes from (list_loops), which the schema does not. It still gives no format hints (UUID, numeric string) beyond the schema's 'The loop id.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Delete ... loops') and adds an ownership scope ('signed-in person's'), which is more than the name conveys. It does not explicitly contrast with the other delete_* siblings (delete_flow, delete_folder, delete_organization, delete_portal), but the resource noun makes the distinction obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives a workflow prerequisite ('Get loop_id from list_loops'), which is genuinely useful for invocation ordering. However, it offers no when-not guidance, no mention of permissions or consequences, and no alternative to consider, so usage is only implied rather than framed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_organizationDelete organizationA
DestructiveIdempotent
Inspect

Permanently delete an organization. This cannot be undone. Only an owner can do this, and only after the organization subscription is cancelled. confirm_name must equal the organization name exactly. Members lose the organization's Pro seats. Organization flows go back to their creators as personal flows.

NameRequiredDescriptionDefault
org_idYesOrganization id from list_organizations.
confirm_nameYesThe exact organization name, to confirm.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (destructiveHint/idempotentHint) by disclosing irreversibility, the owner-only authorization requirement, the cancelled-subscription precondition, the exact-match confirmation gate, and downstream effects on members' Pro seats and reverted flows.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five short sentences, all load-bearing; permanence and the confirmation requirement are front-loaded where an agent will read them first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive two-parameter mutation with no output schema, the description covers irreversibility, auth, preconditions, and side effects — everything needed to call it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 only restates the exact-match requirement for confirm_name, adding little semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Permanently delete an organization') and immediately signals permanence, which distinguishes it from the sibling leave_organization and update_organization. An agent can identify 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-conditions: only an owner, only after the subscription is cancelled, and confirm_name must match exactly. It does not explicitly name alternatives such as leave_organization for non-owners, leaving some routing inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_portalDelete a client portalA
DestructiveIdempotent
Inspect

Delete a client portal. The public portal link stops working for everyone. The flows on it are not deleted.

NameRequiredDescriptionDefault
portal_idYesThe portal id from list_portals.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description goes further by disclosing the concrete blast radius – the public link stops working for everyone – and an important non-effect, that the flows on it are not deleted. That is exactly the kind of 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero padding, and the core action is front-loaded ahead of the side-effect and non-effect clauses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive single-parameter delete with an annotation set that already flags destructiveness and idempotency and with no output schema, the description carries its weight by explaining what breaks and what survives. It leaves out whether the operation is reversible/recoverable, which would be the final useful detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter, and the schema even states the source of the id ('from list_portals'). The description adds nothing about portal_id, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Delete a client portal') on the very first sentence, and the resource 'client portal' is plainly distinct from sibling deletes like delete_flow, delete_folder, and delete_organization. It stops short of the top score because it never explicitly contrasts 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use or when-not-to-use guidance and names no alternative. An agent gets no help deciding between delete_portal and save_portal or the various delete_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

duplicate_flowDuplicate flowAInspect

Copy a saved Wavelength flow into a new flow with the same transcript and graph. The new title defaults to ' (copy)'. Plan flow limits apply. Returns the new flow id, title, node and edge counts, and a link to open it.

NameRequiredDescriptionDefault
titleNoOptional title for the copy. Defaults to '<old title> (copy)'.
flow_idYesThe id of the flow to copy.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a write (readOnlyHint=false) that is neither destructive nor idempotent, so the safety profile is covered. The description adds genuine value beyond that: the default title behavior, the plan-limit constraint, and the exact return contents (id, title, node/edge counts, link) despite no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: action and scope first, then default naming and constraint, then return values. Nothing redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation tool with full annotation coverage, the description is nearly complete: it covers behavior, naming default, a constraint, and return values even without an output schema. Only the explicit routing against other creation siblings is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the description largely restates the title parameter's default verbatim from the schema. No additional syntax or edge-case meaning is added, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Copy a saved Wavelength flow into a new flow') plus the preserved scope ('same transcript and graph'). This clearly distinguishes it from siblings like create_flow_from_graph, create_flow_from_text, and import_* which build flows from other sources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied — duplicate an existing flow rather than creating or importing one — and 'Plan flow limits apply' hints at a precondition. However, it never explicitly says when to choose this over create_flow_from_graph or other creation siblings, nor states what happens when limits are hit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_flowEdit flowAInspect

Apply a plain-language edit instruction to an existing Wavelength flow, for example 'add Snowflake after Fivetran'. Saves a versioned snapshot labeled 'Edited by AI agent'. Returns the new node and edge counts and a link to open it.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow to edit.
instructionYesA plain-language edit instruction, for example 'add Snowflake after Fivetran'.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare the mutation profile (readOnly=false, idempotent=false, destructive=false), and the description adds genuinely non-obvious behavior: it saves a versioned snapshot labeled 'Edited by AI agent'. That versioning side effect is exactly the kind of trait annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences ordered purpose, behavior, return payload. The example 'add Snowflake after Fivetran' is duplicated verbatim from the schema, which is minor waste but everything else earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully names the return values (new node and edge counts, plus a link). For a non-idempotent mutation it could say more about failure modes (e.g., ambiguous instructions), but the core call contract is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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, and the description largely restates the schema's own example for 'instruction'. No additional format, length, or constraint guidance is added beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (apply) and resource (an existing Wavelength flow) plus the modality that separates it from siblings: a 'plain-language edit instruction' rather than structured node/edge operations like add_nodes or update_nodes. The concrete example makes the operation unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The example instruction implies how the tool is used, but there is no explicit when-to-use guidance versus the node-level siblings (add_nodes, add_edges, update_nodes, remove_nodes) or format_flow. Usage is inferable but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_flowExport flowA
Read-onlyIdempotent
Inspect

Export a saved Wavelength flow in the requested format. mermaid returns a Mermaid flowchart string. json returns the title, graph_nodes, and graph_edges. svg returns a self-contained SVG with node shapes, colors, and arrows. drawio returns a valid mxfile/mxGraphModel XML for draw.io. SVG and drawio use stored node positions, or auto-layout when the flow has none. No flow content is sent to any third-party service.

NameRequiredDescriptionDefault
formatYesThe export format: mermaid, json, svg, or drawio.
flow_idYesThe id of the flow to export.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuine behavioral context beyond them: SVG/drawio use stored node positions or fall back to auto-layout, and no flow content leaves to a third party, which is a meaningful data-handling disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then one tight sentence per format, then the layout caveat and the privacy note. No sentence is redundant and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 returns and does so format by format. With annotations covering safety and the schema covering both parameters, an agent has everything needed to invoke this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3), and the description goes beyond the bare enum by explaining what each format value actually produces, including the JSON payload contents (title, graph_nodes, graph_edges) and the auto-layout caveat. flow_id gains no extra meaning but the schema already documents it adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Export) and resource (a saved Wavelength flow) plus the format dimension, so an agent immediately knows this serializes a flow into another representation. It enumerates exactly what each format yields, which separates it from show_flow/format_flow in spirit, but it never explicitly contrasts 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The per-format return descriptions implicitly tell the agent which format to pick for a given need (diagram string vs JSON graph vs renderable SVG vs draw.io XML), which is useful selection guidance. However, there is no explicit when-to-use/when-not guidance relative to alternatives, and no prerequisites such as permissions or flow-state requirements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_confluence_targetsFind Confluence spaces and pagesA
Read-onlyIdempotent
Inspect

Search the connected Confluence site for spaces and pages. Use a space_key with send_flow_to_confluence to make a new page, or a page_id to add the flow to an existing page. If the app is not connected, the error tells the user where to connect it in Wavelength settings.

NameRequiredDescriptionDefault
queryNoWords in the space name or page title.
space_keyNoOptional space key to search pages in one space.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the bar is lower. The description adds genuinely new behavior: the site must be connected, and a failed connection surfaces an error pointing to Wavelength settings.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the search action followed by chaining and failure context. Minimal waste, though the page_id sentence describes a return value rather than an input.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and annotations covering the safety profile, the description supplies the connection prerequisite, the error path, and how results chain into send_flow_to_confluence. Enough for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so query and space_key are already documented. The description only restates space_key's purpose as a hand-off to send_flow_to_confluence and introduces page_id, which is not an input parameter here, so it adds little parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'Search the connected Confluence site for spaces and pages.' The Confluence scope cleanly separates it from sibling finders like find_jira_targets and find_notion_pages without needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear downstream context: pass space_key to send_flow_to_confluence to create a page, or page_id to append to an existing page. This tells the agent what to do with results, though it never states when to prefer this finder over related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_jira_targetsFind Jira projects and issuesA
Read-onlyIdempotent
Inspect

Search the connected Jira site for projects and issues. Give project_id to also get the issue types of that project. Use project_id and issue_type_id with send_flow_to_jira to make a new issue, or issue_key to comment on an existing issue. If the app is not connected, the error tells the user where to connect it in Wavelength settings.

NameRequiredDescriptionDefault
queryNoWords in the project name or issue summary, or an issue key such as ABC-12.
project_idNoOptional project id to list its issue types.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish readOnly, idempotent, non-destructive and openWorld behavior, so the bar is low. The description adds genuinely new context beyond them: the tool depends on a connected Jira app, and the failure mode is surfaced as an error that points the user to Wavelength settings. That auth/prerequisite disclosure is the kind of thing annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences with no filler: what it searches, the project_id behavior, the downstream workflow, and the not-connected failure mode. The core purpose is front-loaded in the first sentence and everything after it is actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 saying what comes back, and it does reasonably well (projects, issues, and issue types when project_id is given) plus the downstream workflow needed to use those results. It is missing detail on result shape, pagination, or how many matches are returned, and the stray issue_key reference leaves a small ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are already documented, so the schema does the heavy lifting and a 3 is the baseline. The description largely echoes the schema for project_id (issue types) and adds no syntax or format detail; it also references an issue_key that does not appear as an input parameter, which muddies rather than clarifies the parameter set.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Search the connected Jira site for projects and issues") and the word "Jira" immediately separates it from the cluster of sibling find_* tools (find_confluence_targets, find_notion_pages, find_salesforce_records). It also names the downstream sibling send_flow_to_jira, so an agent can place 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: use project_id to also enumerate issue types, and feed project_id + issue_type_id into send_flow_to_jira to create an issue, or use issue_key to comment on an existing one. That effectively defines when to call this tool (as the discovery step before writing to Jira). It stops short of any explicit exclusion or statement of 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.

find_notion_pagesFind Notion pagesA
Read-onlyIdempotent
Inspect

Search the Notion pages that the user shared with Wavelength. Use a page_id as the parent for send_flow_to_notion. If the app is not connected, the error tells the user where to connect it in Wavelength settings.

NameRequiredDescriptionDefault
queryNoWords in the page title. Leave empty for recent pages.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/destructive/openWorld, so the description need only add context. It usefully discloses the scope restriction (only pages shared with Wavelength) and the unconnected-app failure behavior, both of which go 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core purpose and free of filler. The error-handling sentence is arguably peripheral but still actionable, so it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 should ideally describe the return shape; it only hints at it via 'use a page_id,' which lets an agent infer page_ids are returned. Combined with the scope and error context, it is nearly complete for a one-param read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single 'query' parameter is 100% described in the schema ('Words in the page title. Leave empty for recent pages.'), so the description adds nothing beyond it. Baseline 3 applies when schema coverage is high and the description does not enrich parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) and resource (Notion pages) with a scoping qualifier ('that the user shared with Wavelength'). An agent can tell it apart from find_confluence_targets/find_jira_targets by the resource, though the description does not explicitly contrast those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use a page_id as the parent for send_flow_to_notion' names the downstream tool and the condition tying this search to it, which is clear context. It does not state when NOT to use it or name the competing find_*_targets siblings, so it stops short of explicit alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_salesforce_recordsFind Salesforce recordsA
Read-onlyIdempotent
Inspect

Search the connected Salesforce org for opportunities or accounts by name. With no query, returns the most recently changed records. Use a record_id with send_flow_to_salesforce. If the app is not connected, the error tells the user where to connect it in Wavelength settings.

NameRequiredDescriptionDefault
typeNoThe record type. Default Opportunity.
queryNoWords in the record name.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, openWorld), so the bar is lower, yet the description adds real value: the empty-query fallback to recently changed records, the connection prerequisite, and where the error directs the user. Return format remains unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with purpose and scope, then fallback behavior, then the downstream linkage. Nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-param read tool with no output schema, this covers purpose, empty-query behavior, connection prerequisite, and follow-up action. The only gap is any description of returned fields or pagination, which is minor given a read-only search.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with an enum on type and a defaulted value, so the schema does the heavy lifting. The description adds the 'name' semantics of query and the type options at a high level, but nothing beyond the schema's own documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search/find) and resource (Salesforce opportunities or accounts) plus scope by name. Distinguishes itself from siblings like search_crm_deals and get_account, and the default-when-empty behavior is made explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: search by name, empty query returns recently changed, and explicitly names the downstream pairing with send_flow_to_salesforce. Does not state when to use this instead of search_crm_deals or find_servicenow_records, so it stops 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.

find_servicenow_recordsFind ServiceNow recordsA
Read-onlyIdempotent
Inspect

Search the connected ServiceNow instance for incidents, change requests, problems, or requested items by number or description. Use a sys_id with send_flow_to_servicenow. If the app is not connected, the error tells the user where to connect it in Wavelength settings.

NameRequiredDescriptionDefault
queryNoA record number or words in the short description.
tableNoThe record type. Default incident.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context: the sys_id output is meant for send_flow_to_servicenow, and a disconnected app surfaces an error pointing to Wavelength settings. Return shape and result-count behavior are still unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the purpose front-loaded and no padding; every sentence adds workflow or precondition value. The 'Use a sys_id with send_flow_to_servicenow' clause is slightly abrupt and could be clearer about what is returned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool whose annotations carry the safety profile, the description covers purpose, offline handling, and downstream sys_id usage. With no output schema, the actual result shape (list of matches, returned fields) is only obliquely implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 parameters, establishing the baseline of 3. The description's 'by number or description' mirrors the query param and the record-type enumeration mirrors the table enum, but adds no format or syntax detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search/find) and resource (ServiceNow records) and enumerates the record types it covers. It clearly separates itself from find_salesforce_records, find_jira_targets, find_notion_pages, and find_confluence_targets by naming the platform.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: this finds ServiceNow records by number/description, and the resulting sys_id feeds send_flow_to_servicenow, which routes the agent through the correct workflow. It also flags the not-connected precondition. However, it never explicitly states when to prefer this over the sibling find_* tools or any exclusions, so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

format_flowColor steps by a ruleAInspect

Mark steps of a flow yellow (warning) or red (error) from a plain-language rule, or clear the marks. Examples: "flag every step that waits more than a day", "mark steps with no owner red", "clear all highlights". Only the step status changes. Labels, links, and positions stay the same. A version is saved first, so restore_version can undo it. Uses one AI build or edit from the plan.

NameRequiredDescriptionDefault
ruleYesThe formatting rule in plain language, up to 1000 characters.
flow_idYesThe id of the flow.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the exact mutation scope ('Only the step status changes. Labels, links, and positions stay the same.'), the reversibility mechanism ('A version is saved first, so restore_version can undo it'), and the cost ('Uses one AI build or edit from the plan'). These are the details an agent needs before a non-readOnly, non-idempotent call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action and its two modes, then uses a compact examples list and short declarative sentences about side effects. No sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 explains what changes, what is preserved, and how to reverse it, which covers the essential call-time unknowns. Minor gap: it doesn't say what the call returns (e.g., a new version id) or how to review the applied marks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 about the 'rule' parameter by showing three example rule phrasings, clarifying its expressive range. The 'flow_id' parameter is left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Mark steps of a flow yellow (warning) or red (error) from a plain-language rule, or clear the marks'), including the clearing variant. An agent can distinguish this from edit_flow or update_nodes 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Concrete example rules ('flag every step that waits more than a day', 'mark steps with no owner red', 'clear all highlights') make the usage context vivid, and it points to restore_version for undo. It does not, however, explicitly say when to prefer this over edit_flow or update_nodes, so there's no exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_accountGet accountA
Read-onlyIdempotent
Inspect

Return the signed-in user's current plan, saved flow count, trial end date, flows created this month, folder limit and personal folder count, and mic time usage.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds genuinely useful behavior context by enumerating exactly which account data is exposed (plan, trial end date, flow counts, folder limits, mic time), which is the only place this is documented since 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence with no filler; the enumeration is dense but every item earns its place because there is no output schema to carry the return-field contract.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read with no output schema, the description fully discharges the return-value burden by naming each field. Minor gaps remain (no note on null/empty values, units, or free-plan behavior), but nothing required 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4 by rule. The description correctly implies an implicit session-scoped target ('signed-in user') rather than requiring any identifier, matching the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb ('Return') and a precisely scoped resource ('the signed-in user's current plan...'). The 'signed-in user's' framing implicitly distinguishes it from sibling org-level tools like get_organization and get_org_usage, though it never names those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says what is returned but never states when to reach for this tool versus the many adjacent read tools (get_organization, get_org_usage, get_insights, get_checkin_status). No prerequisites or exclusions are given; usage must be inferred entirely from the field list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_checkin_statusCheck-in statusA
Read-onlyIdempotent
Inspect

Read the check-in status of one flow: when someone last confirmed it still matches the work, the check-in interval in days, the due date, and whether it is stale. Wavelength emails the owner when a flow is due.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is carried. The description adds domain behavior not in structured data: Wavelength emails the owner when a flow is due, which tells the agent this read reflects an automation-driven reminder system. It stops short of describing response shape or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the resource and scope front-loaded and no filler. The second sentence about email reminders is short and earns its place as domain context, though it could arguably be cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the returned fields (last confirmation, interval, due date, staleness), which is exactly what an agent needs. It does not cover error cases such as an unknown flow_id, keeping it short of complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single required flow_id, schema coverage 100%, so the schema already documents the parameter. The description reinforces the single-flow scope ('one flow') but adds no format, sourcing, or lookup guidance beyond that. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (Read) + resource (check-in status of one flow), and it enumerates what the status contains: last confirmation, interval in days, due date, staleness. An agent can distinguish it from the sibling update_checkin purely on read-vs-write verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'one flow' scoping and the read framing, but the description never states when to reach for this versus update_checkin, get_flow, or list_flows, nor any prerequisite (e.g., owner/org membership). 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_flowGet flowA
Read-onlyIdempotent
Inspect

Read one saved Wavelength flow by id. Returns the title, folder_id, is_owner, my_role, owner, is_public, public_url, every node with its id label type owner and note, every edge with source and target labels, a Mermaid flowchart string of the graph, and a link to open it. By default the transcript is omitted and transcript_chars (its length) is returned instead; pass include_transcript true to include the full transcript. A node includes status (warning or error) when it has conditional formatting.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow to read.
include_transcriptNoOptional. When true, include the full transcript. When false (default), omit it and return transcript_chars instead.

TDQS

A3.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description is free to add operational context — and it does: it enumerates the returned fields, discloses that the transcript is omitted by default and replaced by transcript_chars, and explains the conditional status field on nodes. This is exactly the kind of behavior an agent cannot infer from 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first sentence and the return-shape detail follows. The middle is a dense comma-list of fields, which is information-dense but slightly run-on; it could be trimmed without loss, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 the return value, and it does so thoroughly — field list, transcript default behavior, and node status semantics. 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters are already documented in the schema with the same semantics (including the transcript default). The description largely restates rather than extends 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with scope: 'Read one saved Wavelength flow by id.' An agent immediately knows this is a single-item read. It does not, however, differentiate itself from close siblings like show_flow, export_flow, or summarize_flow, which a 5 would require.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 list_flows, search_flows, query_flows, show_flow, or export_flow. The only usage-adjacent content is the default behavior of include_transcript, which is invocation detail rather than tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_inboxGet inboxA
Read-onlyIdempotent
Inspect

List the signed-in person's Wavelength inbox: approvals that wait on them, and recent notifications (mentions in canvas comments, approval results, loop reports).

NameRequiredDescriptionDefault
limitNoMax notifications, 1 to 100. Default 30.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered. The description adds useful content context (mentions in canvas comments, approval results, loop reports) but says nothing about ordering, freshness windows, or what happens when limit is exceeded.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with the verb and resource, with the colon-delimited list of inbox contents adding information without padding. There is no redundant restatement of the title or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-param, read-only list tool with rich annotations and a fully documented schema, the description covers what the inbox contains. It is only thin on routing versus the sibling list_approvals and on any indication of result ordering or volume.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a single optional 'limit' parameter whose type, range (1-100) and default (30) are already documented in the schema. The description adds no parameter meaning of its own, so the baseline of 3 applies when the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('the signed-in person's Wavelength inbox') and enumerates the two content types it returns (pending approvals, recent notifications). It distinguishes itself from the generic list_* siblings by scoping to the signed-in person, but it never names the closely related list_approvals or get_checkin_status to disambiguate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: 'the signed-in person's ... inbox' suggests a personal-scope call, and the 'recent notifications' framing implies recency rather than exhaustive enumeration. There is no explicit when-to-use, when-not-to-use, or pointer to list_approvals for a full approval listing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_insightsInsights across flowsA
Read-onlyIdempotent
Inspect

Find patterns across every flow the user owns or can edit (up to 200 flows): the systems and people that appear most, steps that repeat across flows, flagged steps, the slowest steps, flows with links that AI guessed, and flows due for a check-in. Set use_ai to true to also get AI patterns with the flows as evidence and questions for the next calls. use_ai needs two or more flows and uses one AI insight run from the plan.

NameRequiredDescriptionDefault
use_aiNoAlso find AI patterns. Default false.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the description's added value is real: a hard 200-flow scope cap, a 2+ flow minimum for AI mode, and the fact that use_ai consumes one AI insight run from the plan. That cost/quota disclosure is exactly the kind of behavioral 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core behavior, then the AI mode and its constraints. Three dense sentences with no filler, though the opening enumeration of seven pattern categories is long and could be trimmed slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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-shape burden and largely meets it by naming the finding categories, plus limits and quota cost. Only minor gaps remain (e.g., what 'flagged' or 'due for a check-in' concretely mean, or any pagination/limit on results).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already states the default false, so the baseline is 3. The description goes beyond it by explaining what use_ai actually adds (AI patterns with flows as evidence plus questions for follow-up calls) and its two preconditions, which is meaningful extra semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Find patterns') over a specific, bounded resource ('across every flow the user owns or can edit, up to 200 flows'), then enumerates the exact pattern categories returned. That cross-flow aggregation scope cleanly separates it from list_flows, search_flows, query_flows, and summarize_flow without needing the sibling schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives the condition for the optional AI mode ('Set use_ai to true to also get AI patterns') and its prerequisites ('needs two or more flows'). It does not explicitly say when to prefer get_insights over search_flows/query_flows/summarize_flow, so it stops short of naming alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_organizationGet organizationA
Read-onlyIdempotent
Inspect

Show one organization: members and their roles, Pro seats, seats in use, pending invitations, settings, and the flow count. Only an owner or an admin sees pending invitations.

NameRequiredDescriptionDefault
org_idYesOrganization id from list_organizations.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely non-obvious context beyond annotations: the response is authorization-dependent, since 'Only an owner or an admin sees pending invitations' — an agent must not treat missing invitations as absence of invitations. It stops short of saying what else may be hidden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler: the first front-loads the scope and payload, the second delivers the one conditional behavior an agent most needs. Nothing is repeated from the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 carries the return-value burden by enumerating the fields returned, and it flags the permission-dependent visibility of invitations. It is close to complete for a one-parameter read tool; only the alternative read tools for the same org remain unrouted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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, including the provenance hint 'Organization id from list_organizations.' The description adds no additional parameter meaning, so the baseline of 3 applies — the schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Show one organization') and enumerates the fields returned (members/roles, Pro seats, seats in use, invitations, settings, flow count), which separates it from list_organizations and the narrower get_org_usage/get_org_security/get_org_audit_log siblings. It never names a sibling explicitly, so the differentiation is inferred from the field list rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'Show one organization' with an org_id from list_organizations suggests a detail-view call after listing. There is no explicit when-to-use vs. get_org_usage/get_org_security/get_org_audit_log guidance and no exclusion criteria, so the agent must infer routing from field overlap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_org_audit_logGet organization audit logA
Read-onlyIdempotent
Inspect

List organization events, newest first: who did what and when. Includes flow views, exports, shares, public links, deletions, members added or removed (also by SCIM), role changes, settings, two-step verification, and retention. Only an owner or an admin can see it. Use before_id from the last result to page.

NameRequiredDescriptionDefault
toNoOptional. ISO date. Events at or before this time.
fromNoOptional. ISO date. Events at or after this time.
limitNoHow many events, 1 to 500. Default 50.
actionNoOptional. Only this event type, for example flow_exported or member_deprovisioned.
org_idYesOrganization id from list_organizations.
before_idNoOptional. Return events older than this event id (from next_before_id).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent and non-destructive, so the bar is lower. The description adds real value beyond those: the authorization requirement (owner/admin), the result ordering, and the pagination mechanism using before_id from the prior result. It does not mention result caps or rate limits, but the coverage is solid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core verb and resource, then scope, then access precondition, then pagination. The long event enumeration is dense but each item is informative; nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, authorization, ordering and paging for a 6-param read tool. Since there is no output schema, the description could have sketched the shape of a returned event (fields), which is the one remaining gap for an agent deciding whether to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3), but the description adds meaning the schema cannot: that before_id should come from the last result to page through, which clarifies the intended paging workflow rather than just restating the field. Minor value-add over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (list organization events) with ordering (newest first) and enumerates exactly what is captured (flow views, exports, shares, member changes via SCIM, role changes, two-step verification). This scope is unambiguous and cannot be confused with siblings like get_org_usage or get_org_security.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the precondition ('Only an owner or an admin can see it') and a concrete paging instruction ('Use before_id from the last result to page'). It does not name an alternative tool or state when NOT to use it (e.g., versus get_org_usage), so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_org_securityGet organization security settingsA
Read-onlyIdempotent
Inspect

Read the security settings of an organization: two-step verification requirement, public links, transcript retention, sharing limits (outside collaborators and allowed email domains, with the current outside collaborators), organization API keys (never the key itself), SCIM provisioning status, and the audit log stream. Never returns tokens or secrets. Only an owner or an admin can see it.

NameRequiredDescriptionDefault
org_idYesOrganization id from list_organizations.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive, so the bar is lower. The description still adds genuine behavioral context beyond structured fields: the auth requirement (owner/admin only) and the strong safety guarantee that secrets and API key values are never returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the opening clause and the content enumeration is dense but earns its place by previewing the return shape. The two trailing sentences (no secrets, owner/admin only) are quick and high-value, though the list runs long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 returns, and it does so by enumerating the settings returned. It covers access requirements and the secrets caveat, leaving only minor gaps such as error behavior or output formatting.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter exists with 100% schema description coverage, so the schema already documents org_id fully. The description adds no syntax or format detail beyond it; baseline 3 applies 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Read) and resource (security settings of an organization) and enumerates the exact contents returned (2FA requirement, public links, retention, sharing limits, API keys, SCIM, audit log stream). This clearly distinguishes it from siblings like get_organization and get_org_audit_log.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (read security settings) and adds an access prerequisite ('Only an owner or an admin can see it'), but gives no explicit when-to-use/when-not guidance and does not name alternatives such as update_org_security or get_organization.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_org_usageGet organization usageA
Read-onlyIdempotent
Inspect

Seats used, active members, AI calls, mic minutes, flows, and two-step verification status for each member of an organization, for the last 7, 30, or 90 days. Only an owner or an admin can see it.

NameRequiredDescriptionDefault
daysNo7, 30, or 90. Default 30.
org_idYesOrganization id from list_organizations.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds genuinely non-structured context: an authorization constraint (owner/admin only) and the window over which usage is aggregated, both of which affect whether a call will succeed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences. The returned metrics are front-loaded, followed by the time window and the permission gate, 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.

Completeness5/5

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 by enumerating the six metric categories returned per member. Combined with annotations covering safety and the schema covering parameters, an agent has everything needed to select and call this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both params documented, including the enum-like days values and the org_id source (list_organizations). The description restates the 7/30/90 window but adds no format, default, or error semantics beyond what the schema already provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (get organization usage) and enumerates exactly what is returned: seats used, active members, AI calls, mic minutes, flows, and two-step verification status. This clearly separates it from siblings like get_org_audit_log, get_org_security, and get_insights without needing to open any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the supported time windows (last 7, 30, or 90 days) and a hard prerequisite: only an owner or admin can see it. It does not explicitly name an alternative tool or say when not to use it, but the context and permission gate are clear enough to invoke correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_share_statusGet share statusA
Read-onlyIdempotent
Inspect

Read the public sharing status for a Wavelength flow. Returns is_public, url, summary, views, published_at, and hide_attribution.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds value by enumerating the returned fields (is_public, url, summary, views, published_at, hide_attribution), which compensates for the absent output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the purpose and then the return fields. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status getter, the description covers purpose and return fields, while annotations cover safety and the schema covers the sole parameter. It could mention error conditions or the unshared case, but it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single flow_id parameter, so the schema fully documents its meaning. The description adds no additional parameter semantics, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read'), resource ('public sharing status for a Wavelength flow'), and the returned fields. It is clearly distinct from siblings like share_flow and unshare_flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is given. The purpose implies the tool is for checking share status, but it does not name alternatives or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

group_notesGroup notes by themeA
Read-only
Inspect

Group a list of notes (for example sticky notes from a workshop) by theme. Every note goes in exactly one group, and each group gets a short title. Nothing is saved. Uses one AI help call from the plan.

NameRequiredDescriptionDefault
notesYesThe notes, one short note per item (for example sticky notes from a workshop). Up to 300 characters each.
titleNoOptional name of the board or workshop.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry the safety profile (readOnly, non-destructive, not open-world), yet the description adds real value beyond them: non-persistence ('Nothing is saved'), a cost/plan disclosure ('Uses one AI help call from the plan'), and partitioning semantics ('Every note goes in exactly one group'). The AI-call cost note is exactly the kind of trait annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences; the core behavior leads and the constraints follow. The workshop example is repeated verbatim from the notes parameter description, which is minor waste, but nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 should carry return-format information. It hints at the shape ('each group gets a short title') but never states concretely what comes back (a list of groups with their assigned notes), leaving the response structure partly implied for a tool whose whole purpose is restructuring input.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (notes, title) are fully documented in the schema itself, including item length and count bounds. The description adds only a redundant example and nothing about format or constraints 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (group) and resource (notes) with the organizing dimension (by theme) stated explicitly, plus a concrete example ('sticky notes from a workshop'). It reads as a distinct operation, but it does not name or contrast itself with the nearest sibling (notes_to_flow), so an agent gets no explicit routing cue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The workshop-sticky-notes example implies the intended context, so use is inferable. However, there is no statement of when to prefer this over alternatives such as notes_to_flow or notes_to_flow pipelines, and no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_dbt_lineageImport dbt lineageAInspect

Map dbt lineage into a new Wavelength flow, with no AI call. Reads the applied state of a dbt deployment environment through the dbt Discovery API (or, with job_id, the manifest of a job's latest successful run). Sources and seeds become data nodes, models become steps with their owner (meta.owner), exposures (dashboards) become systems with their owner, and depends_on links become data edges. Pass select (model or exposure names, or dbt unique_ids) to map their upstream lineage; add downstream true to also include what depends on them. Without select it maps the whole project if it has 250 nodes or fewer. With no environment_id and no job_id it uses the first deployment environment. Set list_only true to get the project's models and exposures first.

NameRequiredDescriptionDefault
titleNoOptional flow title.
job_idNoOptional. dbt job id from list_dbt_jobs. Used when environment_id is not given.
selectNoOptional. Model or exposure names (for example orders, Weekly revenue dashboard) or dbt unique_ids. Up to 50.
team_idNoOptional team id.
directionNoOptional layout direction. Default vertical.
folder_idNoOptional folder id.
list_onlyNoOptional. Return the models and exposures instead of creating a flow.
downstreamNoOptional. Also include everything downstream of the selection. Default false.
environment_idNodbt deployment environment id from list_dbt_jobs (recommended).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a non-readonly, non-idempotent, non-destructive, open-world mutation. The description adds substantial extra context: that it makes no AI call, reads the dbt Discovery API applied state or a job manifest, defines the exact node/step/system/edge mapping rules, states the 250-node limit, and explains default environment selection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the core action and remains dense with useful detail across a few well-organized sentences. Every sentence earns its place given the nine parameters and complex mapping behavior; there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, nine-parameter write tool with no output schema, the description is complete enough: it explains creation behavior, list_only output, selection defaults, environment fallback, node limits, and what the resulting flow contains. Safety-relevant traits are already covered by annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 parameter. The description adds meaningful interaction semantics beyond the schema: select maps upstream lineage, downstream true extends to downstream dependencies, omitting select maps the whole project under a node cap, omitting both environment_id and job_id picks the first deployment environment, and list_only changes output from a flow to a list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource: mapping dbt lineage into a new Wavelength flow, with the distinctive note 'no AI call.' It then details exactly what becomes data nodes, steps, systems, and edges, distinguishing it from generic flow-creation or other lineage imports.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly explains how to use key parameters: select for upstream lineage, downstream to extend it, no select for whole-project (if ≤250 nodes), and no environment_id/job_id for the first deployment environment. However, it never names sibling alternatives like import_snowflake_lineage or create_flow_from_graph to tell the agent when to select this tool over them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_diagramImport diagramAInspect

Turn an existing diagram or automation into editable Wavelength flows, with no AI call. Pass the source as text: a Mermaid flowchart, draw.io or diagrams.net XML (plain or compressed), an SVG (for example an SVG diagram you drew earlier in this chat), an n8n workflow JSON, a Zapier export (zapfile.json or a Zap JSON export), or a dbt manifest.json (whole project lineage, up to 250 nodes). Shapes or steps become nodes, connectors become edges with their labels, diamonds, IF and Switch nodes, Filters and Paths become decisions. An automation file with several workflows creates one flow per workflow (up to 25). Exact positions and colors are not kept; the flow is laid out again in process order. Returns the new flow id (or a list of imported flows), detected format, node and edge counts, and a link to open each.

NameRequiredDescriptionDefault
titleNoOptional title. Defaults to the first node label.
formatNoOptional. Detected from the content when omitted.
contentYesThe source text: Mermaid, draw.io XML, SVG markup, n8n workflow JSON, Zapier export JSON, or dbt manifest.json.
team_idNoOptional team id to assign the flow to.
directionNoOptional layout direction. Default vertical.
folder_idNoOptional folder id to create the flow in.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover only the mutation profile (readOnlyHint=false, non-destructive, non-idempotent). The description goes well beyond them, disclosing data loss (positions and colors are not kept, the flow is re-laid out), multi-flow splitting behavior ('one flow per workflow, up to 25'), node limit ('up to 250 nodes'), and the return payload. This is exceptionally rich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose, then the accepted formats, then the transformation rules, then the return value. It's dense but every sentence earns its place – the format enumeration and the 'up to X' limits are all decision-relevant. It could be slightly terser on the format list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description correctly closes the loop by stating what is returned (flow id(s), detected format, node/edge counts, open links). Combined with the transformation semantics and limits, an agent has everything needed to invoke this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 each parameter. The description adds the default title behavior ('first node label') and the auto-detection of format, but doesn't expand on team_id, folder_id, or direction 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Turn an existing diagram or automation into editable Wavelength flows') and enumerates exactly which source types are supported. It clearly distinguishes itself from siblings like import_from_n8n, import_dbt_lineage, and create_flow_from_text by being the general-purpose multi-format importer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: 'with no AI call' and 'Pass the source as text', which tells the agent this is a deterministic parser rather than an AI-powered creation path. It doesn't explicitly state when to prefer this over import_from_n8n or import_dbt_lineage, but the breadth of accepted formats implies its role.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_from_google_driveImport from Google DriveAInspect

Read a file from the connected Google Drive and make a flow from it, the same way as create_flow_from_text. draw.io, Mermaid, and SVG files become a flow without AI. Reads Google Docs, Sheets, Slides, and .txt, .md, .vtt, .srt, .json, .csv, .pdf, .docx, .drawio, .mmd, .svg files. Set import_only to get the text back without making a flow. Wavelength can open only files it created or files you picked in Wavelength. If Drive is not connected, the error says where to connect it.

NameRequiredDescriptionDefault
urlNoOptional. A Drive or Docs url, in place of file_id.
titleNoOptional flow title. Default: the file name.
org_idNoOptional organization id. The flow is saved in that organization.
file_idNoThe Drive file id, or a Drive or Docs url for the file.
team_idNoOptional team id for the new flow.
directionNoOptional layout direction. Default vertical.
folder_idNoOptional folder id for the new flow.
import_onlyNotrue returns the file text and makes no flow.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare the mutation/safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), and the description adds real context beyond them: draw.io/Mermaid/SVG bypass AI, import_only returns text with no flow, and only files Wavelength created or the user picked can be opened. The disconnected-Drive error behavior is also disclosed. No contradiction with 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded in the first clause, and each subsequent sentence carries distinct information (file types, import_only mode, access restriction, error handling). The file-type list is a bit dense but earns its place by defining supported inputs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description covers supported inputs, the import_only return mode, access constraints, and error behavior for an 8-parameter (all optional) tool. It could say more about the returned flow/text shape, but for this tool the coverage is solid.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 eight parameters; baseline is 3. The description reinforces import_only semantics ('get the text back without making a flow') but adds no syntax, format, or default details beyond what the schema fields already state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (read) and resource (Google Drive file) and the resulting action (make a flow), then anchors it to a named sibling with 'the same way as create_flow_from_text'. It also enumerates the file types it consumes, so an agent can distinguish it from text- and diagram-based siblings 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: use it to import from the connected Drive, with 'import_only' as an alternative mode that returns text instead of creating a flow, and notes the Drive-connection prerequisite and its error behavior. It lacks explicit when-not guidance versus other import siblings (e.g. import_diagram, import_from_n8n), 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.

import_from_n8nImport from n8nAInspect

Map workflows from the user's connected n8n instance into new Wavelength flows, with no AI call. Each workflow becomes one flow: trigger as start, IF, Switch and Filter as decisions with branch labels, databases and stores as data nodes, apps as systems, AI tools and models linked with data edges. Up to 25 workflows per call. Get ids from list_n8n_workflows.

NameRequiredDescriptionDefault
team_idNoOptional team id for the new flows.
directionNoOptional layout direction. Default vertical.
folder_idNoOptional folder id for the new flows.
workflow_idsYesn8n workflow ids from list_n8n_workflows. Up to 25.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the mutation/idempotency/open-world profile, and the description adds real value beyond them: creation of NEW flows (non-destructive), no AI call, a 25-workflow limit, and a precise account of how source nodes map to target node types. It does not address failure behavior or required n8n connection state, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, followed by a dense but informative mapping sentence, then the limit and the id-source hint. The mapping enumeration is long yet earns its place by telling the agent what the import will produce.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param, fully-documented tool with no output schema, the description covers purpose, transformation semantics, limits, and the ID prerequisite. It is complete enough to invoke confidently; only failure/rollback and connection prerequisites are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters are already documented, including the 'up to 25' limit and the list_n8n_workflows provenance. The description restates rather than extends that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (map/import) and resource (n8n workflows into new Wavelength flows), and immediately distinguishes itself from AI-based creation with 'with no AI call'. The detailed node-mapping sentence makes the transformation concrete, setting it apart from siblings like import_dbt_lineage or import_from_google_drive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit prerequisite ('Get ids from list_n8n_workflows') and a hard cap ('Up to 25 workflows per call'). It does not spell out when NOT to use this tool or name the AI-alternative sibling (e.g. create_flow_from_text), so guidance is clear but not fully exclusive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_snowflake_lineageImport Snowflake lineageAInspect

Map data lineage in one Snowflake database into a new Wavelength flow, with no AI call. Read-only queries on ACCOUNT_USAGE: object dependencies (views on tables), access history writes (INSERT ... SELECT, CTAS, MERGE; Enterprise edition), and stage or Snowpipe loads. Tables and stages become data nodes, views and dynamic tables become steps, edges are labeled references, writes, COPY INTO, or the Snowpipe name. Pass schema to keep only that schema and its direct neighbors (limit 250 nodes). Returns the flow link and which lineage sources returned rows.

NameRequiredDescriptionDefault
daysNoOptional history window in days for writes and loads, 1 to 90. Default 30.
titleNoOptional flow title.
schemaNoOptional schema name to narrow the flow.
team_idNoOptional team id.
databaseYesDatabase name from list_snowflake_databases.
directionNoOptional layout direction. Default vertical.
folder_idNoOptional folder id.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare this is a non-read-only, non-idempotent, open-world operation, and the description adds the details that matter on top of that: read-only source queries, the Enterprise edition prerequisite, the 250-node cap when schema is passed, and the creation of a *new* flow each time (consistent with idempotentHint=false). It also summarizes the return payload, which is important given there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense but zero-waste sentences: purpose first, then data sources, then the node/edge mapping model, then scoping and return value. Every clause carries operational information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with seven parameters, no output schema, and a non-trivial ingestion pipeline, the description covers prerequisites, source behavior, mapping rules, scoping limits, and return contents. An agent has enough to invoke it correctly without opening additional resources.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 beyond the schema: the schema parameter keeps only that schema 'and its direct neighbors (limit 250 nodes)' and the days window is described as applying to writes and loads. The remaining parameters (title, team_id, folder_id, direction) get no extra narrative, which is acceptable since the schema documents them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: map Snowflake data lineage into a new Wavelength flow, with the notable qualifier 'no AI call'. This clearly separates it from sibling import_dbt_lineage and from create_flow_from_text, which do different things.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives strong context for when the tool applies and what makes it succeed: it reads ACCOUNT_USAGE object dependencies, access history writes, and stage/Snowpipe loads, and it requires Enterprise edition for access history. It does not, however, explicitly route the agent between this and import_dbt_lineage or state 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.

invite_memberInvite member to organizationAInspect

Invite one person to an organization by email, as member or admin. Wavelength emails an invitation that works only for that address and expires in 7 days. Each member and each pending invitation uses one Pro seat. If no seat is free, the error says so; the owner adds seats in Billing.

NameRequiredDescriptionDefault
roleNoRole after they accept. Default member.
emailYesThe person's email address.
org_idYesOrganization id from list_organizations.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag openWorldHint, non-idempotent, and non-destructive, and the description adds substantial context beyond them: the invitation is address-bound, expires in 7 days, consumes a Pro seat per member and per pending invite, and surfaces a specific seat-exhaustion error with the resolution path. That is exactly the behavioral detail an agent needs before invoking an outbound-email mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each carrying distinct information: scope, invitation mechanics, seat cost, and failure handling. The core action is front-loaded and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 covers the relevant outcome behavior by describing the expiry window and the seat-exhaustion error. Combined with a fully covered input schema and rich annotations, nothing an agent needs to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so org_id, email, and the role enum with its default are already fully documented in the schema. The description's 'as member or admin' only mirrors the enum values and adds no syntax, format, or sourcing detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Invite one person to an organization by email') and pins the scope to a single invitation, distinguishing it from siblings like add_collaborator, add_team_member, or create_organization. The role option ('as member or admin') further sharpens what the call does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operational context: role selection, seat consumption per member/pending invite, and the error path plus remedy ('the owner adds seats in Billing'). It does not explicitly name when to prefer this over add_collaborator or add_team_member, so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

leave_organizationLeave organizationA
DestructiveIdempotent
Inspect

Leave an organization. Your organization flows go to transfer_to, or to the first other owner. The only owner cannot leave; make another member an owner first, or delete the organization.

NameRequiredDescriptionDefault
org_idYesOrganization id from list_organizations.
transfer_toNoOptional. Email of a member who stays and gets your organization flows.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds substantive context they cannot express: what happens to organization flows (reassigned to transfer_to or the first other owner) and the ownership precondition that blocks the call. It does not discuss confirmation, auth requirements, or what happens to non-flow resources, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with the purpose front-loaded first, then the transfer consequence, then the blocking precondition. Every sentence carries information; only the opening 'Leave an organization' partially restates the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive two-parameter mutation with no output schema, the description covers consequences, ordering of the transfer fallback, and the hard precondition that would otherwise cause a failure. Missing only secondary details such as irreversibility or whether other resources (collaborators, API keys) are affected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 description earns above that by explaining transfer_to's fallback behavior ('or to the first other owner') — a semantic detail the schema does not provide. org_id is left to the schema, which already points at list_organizations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (leave) and resource (organization) in the first sentence, and the rest of the description makes clear how this differs from delete_organization or remove_member by describing the flow-transfer handoff. It never names the sibling tools explicitly, so differentiation is implicit rather than spelled out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete precondition ('The only owner cannot leave; make another member an owner first') and an alternative path ('or delete the organization'), which is real when-to-use and when-not-to-use guidance. It stops short of naming delete_organization by tool name, so an agent must map the phrase to the sibling itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_approvalsList approvalsA
Read-onlyIdempotent
Inspect

List the approvals on a Wavelength flow, newest first, with each approver in order and their status. Also returns the people who can open the flow and so can be approvers.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely useful behavioral detail beyond that: results are ordered newest first, approvers appear in order, and the response additionally includes the pool of people who can open the flow and therefore act as approvers — a non-obvious return characteristic.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and ordering, then the extra return content. Efficient, though the second sentence's phrasing ('and so can be approvers') is slightly roundabout.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 returns, and it does so (ordering, approver sequence, status, candidate approvers). It omits pagination/result limits and whether only pending approvals or all historical approvals are returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (flow_id) and schema description coverage is 100%, so the schema fully documents it. The description confirms the approvals belong to a Wavelength flow but adds no syntax, format, or sourcing guidance for the id. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the approvals on a Wavelength flow') and adds real scope detail: newest-first ordering, per-approver ordering, and status. It doesn't explicitly distinguish itself from related siblings like decide_approval, request_approval, or get_flow, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never says when to reach for this tool versus decide_approval, request_approval, or get_flow, nor does it state any prerequisite (e.g. that the caller must be able to view the flow). Usage is only inferable from the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_channelsList chat channelsA
Read-onlyIdempotent
Inspect

List the chat channels and webhooks the user set up in Wavelength: Slack, Microsoft Teams, Google Chat, Discord, and generic webhooks (Zapier, Make, n8n). Returns each channel_id, label, kind, and last delivery status. Use the channel_id with send_flow_to_channel.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotent/non-destructive, so the safety profile is covered; the description adds genuinely new context by disclosing the returned fields (channel_id, label, kind, last delivery status) in the absence of an output schema, plus the per-user scoping. It omits ordering/pagination behavior, keeping it out of 5 territory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste: the enumeration of supported kinds and the return payload come first, and the handoff instruction (use channel_id with send_flow_to_channel) closes it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no input parameters and no output schema, the description carries the return-shape burden itself and does so by naming the four fields, so an agent has everything needed to call it and consume the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so there is nothing for the description to disambiguate; baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (list chat channels and webhooks) and enumerates the supported platform kinds, so an agent can distinguish it from list_connections, list_teams, and other list_* siblings at a glance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear downstream use case: retrieve channel_id then call send_flow_to_channel. It does not state when not to use it or contrast with an alternative list tool (e.g. list_connections), so it falls just short of explicit routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_collaboratorsList collaboratorsA
Read-onlyIdempotent
Inspect

List the collaborators on a Wavelength flow. Returns the owner, whether the signed-in user is the owner, and each collaborator's email and role (editor or viewer). Never returns the share token.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds real behavioral value beyond that: it enumerates the return contents (owner, is-signed-in-user-owner flag, each collaborator's email and role) and explicitly states the share token is never returned, which is a meaningful disclosure for a sharing-related tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded with the essential information (what is listed, what is returned), and zero filler. The security-relevant exclusion is placed last, after the positive return description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 carries the burden of describing return values and does so concretely, including the role enum values and the share-token exclusion. It is only slightly short of complete in not mentioning call prerequisites or behavior for a flow with no collaborators or an invalid flow_id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter (flow_id) with 100% schema description coverage, so the schema already documents it fully. The description adds no syntax, format, or sourcing guidance for the 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (collaborators on a Wavelength flow), which cleanly separates it from the add_collaborator, remove_collaborator, and remove_external_collaborators siblings. An agent can pick this tool 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and resource: call it when you need to see who currently has access to a flow. There is no explicit statement of when to use this versus alternatives (e.g., get_share_status, get_flow) and no prerequisites such as required permissions or ownership.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_connectionsList connected appsA
Read-onlyIdempotent
Inspect

Show which outside apps the user has connected to Wavelength (HubSpot, Google Drive, Notion, Confluence, Jira, Salesforce, ServiceNow), the connected account, and the tool that sends a flow to each one. Also shows how many chat channels and webhooks are set up. Connecting an app needs a browser sign-in, so this tool tells the user where to connect it in Wavelength settings.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: exactly what is surfaced (account, sending tool per integration, channel/webhook counts) and the constraint that connecting requires a browser sign-in in Wavelength settings. It omits return formatting details, but no output schema exists to lean on.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with what is listed before the auxiliary sign-in note. Every clause carries information, though the trailing sentence about browser sign-in is slightly tangential for a read-only listing call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only listing tool with no output schema, the description is nearly self-sufficient: it enumerates the integrations and the per-entry fields an agent should expect. It could be fuller on whether counts are scoped per-user or per-workspace, but nothing required for a correct invocation is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate, and the schema is empty as expected. Baseline 4 applies; no parameter-level claims are made or needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource ('Show which outside apps the user has connected') and enumerates the concrete contents returned: connected account, per-app sending tool, chat channel and webhook counts. An agent can distinguish this from siblings like crm_status or list_channels 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied. The description says connecting an app needs a browser sign-in and that this tool tells the user where to connect it, which hints at a discovery/status use case, but it never states when to use this versus list_channels, crm_status, or the find_* target tools, and gives no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_dbt_jobsList dbt environments and jobsA
Read-onlyIdempotent
Inspect

List the user's connected dbt platform account: its environments (id, name, type, project) and jobs. The user connects dbt in Wavelength under Settings > Connected apps > dbt Cloud (Connect with dbt). Pass a deployment environment_id to import_dbt_lineage (recommended), or a job_id.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive, so the safety profile is covered. The description adds valuable context beyond them: the connection prerequisite, the specific fields returned per environment, and the recommended downstream handoff.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what is listed, followed by the prerequisite and the follow-up routing to import_dbt_lineage. Three sentences, each carrying information, though the connection-setup detail could be trimmed slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 summarizing the returned environment fields and mentioning jobs. Combined with the prerequisite and downstream usage, it is nearly complete for a no-arg list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4; there is no parameter surface that the description needs to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: listing the connected dbt account's environments (with id, name, type, project) and jobs. The name/title emphasize 'jobs' while the description foregrounds environments and jobs equally, but an agent can still tell this apart from siblings like list_snowflake_databases. It names import_dbt_lineage as the downstream consumer, aiding differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a real prerequisite (the user must connect dbt under Settings > Connected apps > dbt Cloud) and states what to do with the output (pass a deployment environment_id or job_id to import_dbt_lineage). It doesn't explicitly say when NOT to call this tool, 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.

list_flowsList flowsA
Read-onlyIdempotent
Inspect

List the signed-in user's saved Wavelength flows, newest first. Optionally filter by a case-insensitive title query or a folder id, and limit the count. Returns per flow: id, title, updated_at, folder_id, is_public, shared (true when the user is not the owner), team, role (owner, team, editor, or viewer), and a link to open it.

NameRequiredDescriptionDefault
limitNoMaximum number of flows to return, 1 to 100. Defaults to 20.
queryNoOptional case-insensitive text to match against the flow title.
folder_idNoOptional folder id to filter to flows in that folder.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive, closed-world. The description goes further by disclosing ordering (newest first), the meaning of 'shared' (true when the user is not the owner), and the role vocabulary, which are behavioral traits not present in 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core behavior and scope, then the refinements and return shape. The return-field enumeration is somewhat long but earns its place since there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the returned fields and explains the 'shared' and 'role' semantics. Gaps remain around pagination beyond the limit cap (no offset/total count) and no explicit routing to sibling search tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 three parameters, including case-insensitivity and the 1-100 range. The description restates the same filters without adding 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List), resource (saved Wavelength flows), scope (signed-in user's), and ordering (newest first). It implicitly separates itself from search_flows/query_flows by emphasizing 'saved' and 'signed-in user's', but never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It presents the optional filters (query, folder_id, limit) as available refinements, which implies usage, but gives no explicit guidance on when to use this versus search_flows, query_flows, or list_folders/list_versions. No exclusions or selection conditions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_foldersList foldersA
Read-onlyIdempotent
Inspect

List the signed-in user's folders. Returns per folder: id, name, team_id, and flow_count. Also returns the folder limit for the plan, the personal folder count, and whether the user can create folders and team folders.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: the exact per-folder fields returned and the fact that plan-level folder limits, personal folder count, and create-folder capability flags are also included. No output schema exists, so this disclosure carries real weight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, with the action and scope front-loaded before the return-value details. Every clause earns its place by describing either the operation or its output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no input parameters and no output schema, the description supplies the return shape (id, name, team_id, flow_count) plus plan limits and capability flags, which is close to what an agent needs. It does not state pagination or sorting behavior, a minor remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so there is no argument semantics to explain; the baseline for a no-param tool is 4. Nothing in the description misrepresents the empty input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (folders) plus scope (the signed-in user's folders). The scope clause distinguishes it from sibling list tools such as list_flows, list_organizations, and list_teams, which target other resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scope (signed-in user's folders) implies when to reach for it, but there is no explicit when-to-use statement, no prerequisites, and no routing to alternatives like list_flows or create_folder. Adequate but leaves inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_loopsList loopsA
Read-onlyIdempotent
Inspect

List the scheduled loops on a Wavelength flow (changes digest, open items, AI review) and the chat channels a loop can post to.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds domain context about what is listed (loop categories and postable chat channels), but says nothing about response shape, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the verb and resource first and no filler. The trailing parenthetical is dense but informative; the sentence is appropriately sized for a simple list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only list tool with full schema coverage and annotations carrying the safety profile, the description is largely sufficient and even names the content it returns. Without an output schema, a bit more detail on the returned structure would help, keeping it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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, so the schema already documents flow_id fully. The description does not add any format, source, or constraint details for flow_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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (scheduled loops) scoped to 'a Wavelength flow', with parenthetical examples of loop types (changes digest, open items, AI review) and a note that chat channels for posting are also returned. It does not explicitly differentiate itself from siblings like list_channels or create_loop/delete_loop, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the agent can infer this is for inspecting loops on a given flow. There is no explicit when-to-use statement, no mention of alternatives such as list_channels or get_flow, and no stated prerequisites beyond the required flow_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_n8n_workflowsList n8n workflowsA
Read-onlyIdempotent
Inspect

List the workflows in the user's connected n8n instance: id, name, active, node count, tags, and last update. The user connects n8n in Wavelength under Settings > Connected apps. Use the ids with import_from_n8n.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive, openWorld), so the bar is lower. The description usefully adds the connection prerequisite and the shape of the response fields (id, name, active, node count, tags, last update), which is real context 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: what is listed, what is returned, the prerequisite, then the downstream use. Front-loaded with the action and scope and with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 compensates by naming the returned fields, plus the setup prerequisite. It is close to complete for a no-arg list tool, though it does not say what happens when n8n is not connected or when no workflows exist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to disambiguate; the field list it gives is about output, not inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) plus resource (workflows) scoped precisely to "the user's connected n8n instance", which distinguishes it from the many generic list_* siblings like list_flows. It also enumerates the returned fields, so an agent knows exactly what it gets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use the ids with import_from_n8n" gives a clear downstream use and implicitly frames the tool as the discovery step before import. The connection prerequisite (Settings > Connected apps) is stated. No explicit exclusions or alternative routing, 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.

list_organizationsList organizationsA
Read-onlyIdempotent
Inspect

List the organizations the user belongs to, with the user's role (owner, admin, or member), the member count, and the Pro seat count. Use org_id with create_flow_from_text or move_flow_to_organization.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond that: it enumerates the fields returned (role, member count, Pro seat count), which matters because there is no output schema. It doesn't cover pagination or empty-result behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler: the first defines the operation and its return payload, the second gives the follow-up action. Front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param, read-only list tool with no output schema, the description covers what is returned and how to use it, which is most of what an agent needs. Minor gaps remain around ordering/pagination and the empty case, but nothing blocking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the rubric the baseline is 4. The description's mention of org_id is about consuming output elsewhere, not about an input here, so no further parameter detail is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (List) plus resource (organizations) with an explicit scope qualifier ('the user belongs to') and the exact payload returned: role, member count, Pro seat count. This clearly distinguishes it from the singular sibling get_organization and from list_teams/list_channels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent what to do with the output ('Use org_id with create_flow_from_text or move_flow_to_organization'), which is genuine routing guidance. It does not, however, state when this tool is preferable to get_organization or when it should be skipped, so it stops short of full when/when-not coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_portalsList client portalsA
Read-onlyIdempotent
Inspect

List the client portals of the user. A portal is a public page at wavelengthflow.com/p/... that shows a set of flows to a client, who can comment and vote on steps without an account. Returns each portal id, name, url, flow ids, and settings, plus the plan limit.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower. The description adds real value beyond that: it explains portals are public client-facing pages where viewers comment/vote without an account, and it discloses the exact return shape (ids, name, url, flow ids, settings, plan limit), which is essential given there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the action and resource before the definitional context. Every clause earns its place, since the portal definition and return shape are the only way an agent learns this domain concept without an output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, no output schema, and rich annotations, the description supplies exactly what is missing: what a portal is and what the call returns. 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4. Nothing about parameter syntax is needed, and the description correctly adds no misleading parameter detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (client portals of the user), then defines what a portal actually is. An agent can instantly distinguish this read-only listing from siblings like save_portal, delete_portal, and get_share_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by scoping to the user's own portals and providing domain context, but never states when to use this versus sibling read/portal tools (e.g., get_flow or get_share_status). No explicit alternatives or exclusions, so the guidance stays at the 'implied' tier.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_snowflake_databasesList Snowflake databasesA
Read-onlyIdempotent
Inspect

List the databases the user's connected Snowflake role can see. The user connects Snowflake in Wavelength under Settings > Connected apps. Use a database name with import_snowflake_lineage.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/destructive=false, so the safety profile is covered. The description adds value beyond them by disclosing the permission scoping ("the role can see") and the account-setup prerequisite, both of which affect whether a call returns useful results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with what the tool returns, then the prerequisite, then the downstream consumer. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete enough for a no-argument read tool: it says what comes back, what gates it, and where the output is used. With no output schema, a brief note on the shape of the returned list (names only vs. metadata) would have closed the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline for a no-parameter tool; the description correctly adds no invented argument guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (Snowflake databases) with an explicit scope: only those visible to the user's connected Snowflake role. The scope bound plus the link to import_snowflake_lineage makes it distinguishable from the other import_* and list_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear precondition (the user must connect Snowflake under Settings > Connected apps) and a forward-use hint (pass a returned database name to import_snowflake_lineage). It stops short of stating when not to use it or naming competing discovery tools, so it is clear context rather than full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_teamsList teamsA
Read-onlyIdempotent
Inspect

List teams. Without org_id: the teams the signed-in user belongs to, with id, name, owner, is_owner, org_id, my_role, member_count, and member emails. With org_id: every team in that organization, with each member's team role (team_admin, editor, or viewer).

NameRequiredDescriptionDefault
org_idNoOptional organization id (from list_organizations) to list every team in that organization.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the access-scoping behavior (results depend on the caller's membership and on org_id) and the differing data exposure per mode, including member emails and roles. It says nothing about pagination, result limits, or permission requirements beyond membership.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the verb and then branching immediately into the no-org_id and with-org_id cases. The field enumerations are dense but each earns its place given no output schema exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-param read tool with no output schema, the description does the heavy lifting by enumerating both return shapes (id, name, owner, is_owner, org_id, my_role, member_count, emails; or per-team role values). The remaining gap is result sizing behavior — pagination, caps, or ordering are never mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one optional parameter and schema description coverage is 100%, so the schema already documents org_id fully, including its origin in list_organizations and its effect. The description's explanation of the with/without org_id split duplicates the schema rather than adding new syntax or format detail. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List teams') and then disambiguates two distinct behaviors by parameter presence, so the agent can distinguish it from create_organization_team, move_flow_to_team, and list_organizations without opening the schema. The returned fields for each mode further pin down what 'list' means here.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear conditional usage: omit org_id for the signed-in user's teams, supply org_id for every team in an organization. That maps directly onto when each mode applies. It does not, however, name an alternative tool or state when-not-to-use (e.g., versus get_organization or list_organizations).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_versionsList versionsA
Read-onlyIdempotent
Inspect

List the saved version snapshots for a Wavelength flow, newest first. Returns per version: version_id, label, and created_at.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds real context beyond that: the result ordering ('newest first') and the payload shape (version_id, label, created_at) that would otherwise be unknown with no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler, and the scope + ordering constraint is front-loaded in sentence one before the return-shape detail. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only list tool with no output schema, the description covers purpose, ordering, and the returned fields. An agent has everything needed to select and call it correctly, and the missing output schema is compensated by the explicit return-field list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

One required parameter with 100% schema description coverage, so the schema already documents flow_id fully. The description implies the scope ('for a Wavelength flow') but adds no format, validation, or identification guidance beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb + resource ('List the saved version snapshots for a Wavelength flow') with an added ordering guarantee ('newest first'). It reads clearly against generic siblings like list_flows, but it never distinguishes itself from version-related siblings such as compare_versions or restore_version.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the noun phrase 'version snapshots' for a given flow; there is no explicit when-to-use statement. With siblings like compare_versions and restore_version in the toolset, a stronger description would route the agent ('use compare_versions to diff two versions, restore_version to roll back').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_walkthroughsList walkthroughsA
Read-onlyIdempotent
Inspect

List the narrated walkthroughs (voice recordings over the flow) on a Wavelength flow, with their share links. Recording happens in the Wavelength app.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds genuinely useful context the annotations do not: that recording cannot be done here but in the Wavelength app, and that returned items include share links. It stops short of describing pagination or result ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the resource and scoping, and every clause earns its place: the share-link detail and the recording-in-app note both add information the reader would otherwise lack.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only list tool with no output schema, the description covers what is returned (walkthroughs plus share links) and where recording happens. It does not mention empty-result or pagination behavior, a minor omission given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single flow_id parameter, so the schema already documents it. The description implies the flow scoping ('on a Wavelength flow') but adds no format, source, or retrieval detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (narrated walkthroughs) and defines the resource inline as 'voice recordings over the flow'. No sibling tool overlaps this purpose, so an agent can select it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the scoping phrase 'on a Wavelength flow', which tells the agent it needs a flow context, but there is no explicit when-to-use, when-not-to-use, or named alternative. With no competing walkthrough tool in the sibling list, the absence of routing guidance is a minor gap rather than a critical one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_flow_to_folderMove flow to folderAInspect

Move a flow into a folder. Pass folder_id null or empty to unfile it. Returns the flow id and the new folder_id.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow to move.
folder_idNoThe destination folder id. Pass null or an empty string to remove the flow from its folder.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), and the description adds genuinely new context: it discloses the return payload (flow id and new folder_id) and the unfile behavior, both of which 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, correctly front-loaded with the core action before the unfile edge case and the return shape.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 compensates by naming the returned fields, which is exactly what an agent needs here. Behavior is adequately covered against the existing annotations; only the sibling routing (folder vs organization vs team) is left unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are fully documented in the schema. The description restates the null/empty unfile semantics already present in folder_id's schema description, adding no new syntax or format detail beyond it — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Move a flow into a folder'. The folder target differentiates it implicitly from move_flow_to_organization and move_flow_to_team, but those siblings are never named, so an agent must infer the routing distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use/when-not guidance or named alternatives. The one operational hint — pass null or empty to unfile — is really parameter behavior rather than selection guidance, leaving usage to be inferred from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_flow_to_organizationMove a flow into or out of an organizationA
DestructiveIdempotent
Inspect

Move a flow into an organization so every member can open it, or out of it (org_id empty) so it is personal again. The flow owner can move a flow in. Only an organization owner or admin can move a flow out.

NameRequiredDescriptionDefault
org_idNoThe organization id. Leave it out to move the flow out of its organization.
flow_idYesThe flow id.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds valuable authorization context not in the annotations — the differing permission requirements for moving in versus out — which helps the agent anticipate failures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with the primary operation front-loaded and the permission qualifiers following. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and only two parameters, the description covers direction, semantics, and permission gating adequately for correct invocation. Return behavior is unspecified but low-risk for a move operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are already documented. The description reinforces that omitting org_id reverses the operation, but this largely duplicates the schema's own note rather than adding new meaning. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (move) and resource (flow) with clear directionality (into or out of an organization). It naturally distinguishes itself from siblings like move_flow_to_folder and move_flow_to_team without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains both directions of use and the permission conditions that gate them: the flow owner can move a flow in, while only an organization owner or admin can move it out. It doesn't explicitly name alternative tools, but the when-to-use context 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.

move_flow_to_teamMove flow to teamA
Destructive
Inspect

Assign a flow to a team so every team member can see and edit it. Pass team_id null to remove it from the team. Returns the flow id and the new team_id.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow to move.
team_idNoThe destination team id. Pass null or an empty string to remove the flow from its team.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false and non-idempotence. The description adds real context beyond that: the side effect is granting every team member visibility *and edit* rights, and that a null value performs the inverse operation (detaching from the team) — an access-control implication 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences: purpose and effect first, then the null/removal case, then the return shape. No filler and everything is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation tool with no output schema, the description covers purpose, the removal path, and the return payload ('the flow id and the new team_id'). Nothing an agent needs in order 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.

Parameters3/5

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 fully documented in the schema, including the null behavior. The description's mention of team_id null repeats rather than extends the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Assign a flow to a team') and immediately names the observable consequence ('so every team member can see and edit it'). The team scope cleanly distinguishes it from move_flow_to_folder and move_flow_to_organization in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly covers the unusual usage case ('Pass team_id null to remove it from the team'), which is the main ambiguity for this tool. It does not name sibling alternatives (move_flow_to_folder / move_flow_to_organization) or state preconditions such as team membership or permissions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

notes_to_flowTurn notes into a flowAInspect

Turn a list of notes (for example sticky notes from a workshop) into a process flow and save it as a new flow. Only facts in the notes are used. Notes that are not process facts (questions, opinions, risks) are left out. The notes are saved as the transcript of the flow. Uses one AI help call from the plan. Returns the new flow_id and open_url.

NameRequiredDescriptionDefault
notesYesThe notes, one short note per item (for example sticky notes from a workshop). Up to 300 characters each.
titleYesThe title of the new flow.
team_idNoOptional team id from list_teams.
directionNoLayout direction. Default vertical.
folder_idNoOptional folder id from list_folders.

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (which only cover the write/safe/idempotency profile): it discloses that only process facts are kept, that questions/opinions/risks are dropped, that the notes become the flow transcript, that it consumes 'one AI help call from the plan', and what is returned. The quota disclosure is a genuinely non-obvious operational trait.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five short sentences, all front-loaded with the core action first, and each sentence adds distinct information (input type, filtering, transcript, quota, return values) with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully names the return values (flow_id, open_url), and it covers filtering, quota cost, and annotations. Minor gaps remain around optional parameter semantics, but overall it tells the agent enough to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 the enum and optional ids. The description restates the notes input but adds no syntax or semantic detail for title, team_id, direction, or folder_id beyond what the schema carries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Turn a list of notes ... into a process flow and save it as a new flow.' The input type (list of notes, e.g. sticky notes) implicitly distinguishes it from create_flow_from_text and create_flow_from_graph, but 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage context via 'sticky notes from a workshop' but gives no explicit when-to-use or when-not-to-use guidance, and never routes the agent between this and create_flow_from_text/create_flow_from_graph. The filtering rules hint at intended input but not alternative selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prepare_live_sessionPrepare live sessionA
Read-onlyIdempotent
Inspect

Get ready to present a flow live on a call. This tool does not start the session: a live room exists only in the presenter's browser. It checks that you can present (owner or editor) and returns the presenter link plus steps. Open the link on a computer and click Go live; Wavelength then makes the guest link (wavelengthflow.com/live/). Guests need no account.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow to present.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds real behavioral content: it performs a permission check (owner or editor) and returns a presenter link rather than acting. With no output schema, disclosing what comes back is valuable. Minor gap: it doesn't state what happens if the permission check fails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then the key negative constraint, then the returned artifacts and guest flow. Every sentence earns its place and no sentence repeats the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one trivial parameter, no output schema, and annotations covering safety and idempotency, the description fills exactly the remaining gaps: the permission requirement, the returned presenter link/steps, and how the guest link is produced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single parameter with 100% schema description coverage, so the schema carries the meaning. The description adds no format or constraint detail about flow_id 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource ('Get ready to present a flow live') and immediately scopes it: it does NOT start the session, because the live room lives in the presenter's browser. An agent can distinguish this from share_flow or show_flow 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context ('on a call') and an explicit when-not ('This tool does not start the session'), which routes the agent away from expecting a launched room. It does not name an alternative sibling, but none exists in the tool list, so the guidance is effectively complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_flowsQuery flowsA
Read-onlyIdempotent
Inspect

Structured query across every Wavelength flow the user can open (owned, shared, team, organization). Filter nodes by type, name, owner, or what they connect to, and connections by type, label, or whether the AI inferred them. Examples: every flow that uses Snowflake as a data store; every system connected to Tableau; every step owned by Finance; every AI-inferred connection nobody has confirmed. Filters combine with AND. Call with no filter to get facets: the systems, data stores, actors, and owners that exist across the flows. No AI cost.

NameRequiredDescriptionDefault
labelNoNode name contains this text, for example Snowflake.
limitNoMaximum flows to return, 1 to 100. Defaults to 25.
ownerNoNode owner contains this text, for example Finance.
edge_kindNoConnection type: sequence, data, conditional, or reports_to.
node_typeNoNode type: system, data (data store), actor, decision, step, start, end, or screen. Comma-separate several.
ai_guessedNotrue = only connections the AI inferred and nobody confirmed. false = only confirmed connections.
edge_labelNoConnection label contains this text.
connected_toNoReturn nodes linked to a node whose name contains this text, for example Tableau.
include_facetsNoAlso return facets (systems, data stores, actors, owners). Default false when a filter is given.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive behavior, so the bar is lower; the description still adds real context: AND-combination of filters, facet behavior when unfiltered, the include_facets default shift, and the 'No AI cost' operational trait. It does not discuss result shape or any rate/pagination limits beyond the limit parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then filter capability, examples, combination rule, facet mode, and cost note — every sentence carries information. The example list is a little long and the sentence structure dense, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, no-required-args query tool with no output schema, the description explains both query modes (filtered results vs. facets) and when each applies, which is what an agent needs to choose arguments. It does not describe the shape of returned flows/nodes/edges, leaving some ambiguity about the result payload.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so 3 is the baseline, and the description exceeds it: it explains that node filters cover type/name/owner/connected-to and connection filters cover type/label/AI-inferred, maps these onto the concrete parameters, and clarifies the include_facets default-when-filtered behavior. Only minor syntax details (e.g. comma-separated node_type) are left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource with scope: 'Structured query across every Wavelength flow the user can open (owned, shared, team, organization).' The word 'structured' plus 'No AI cost' implicitly separates it from AI-driven siblings like ask_flow, search_flows, and list_flows, which only list or summarize.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives four concrete when-to-use examples (flows using Snowflake, systems connected to Tableau, steps owned by Finance, unconfirmed AI connections) and states that filters combine with AND and that an unfiltered call returns facets. It never explicitly names an alternative tool or a when-not condition, 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.

remove_collaboratorRemove collaboratorA
Destructive
Inspect

Remove a collaborator from a Wavelength flow by email. Only the owner can remove collaborators. Returns the removed email.

NameRequiredDescriptionDefault
emailYesThe email of the collaborator to remove.
flow_idYesThe id of the flow.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already flag the operation as destructive and non-idempotent. The description adds the owner-only authorization rule and states that the removed email is returned, which is useful behavioral context 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and then the key constraint and return behavior. Every sentence adds distinct value with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter removal tool, the description covers purpose, authorization, and the return value. With no output schema, stating that it returns the removed email is especially helpful, and the destructive nature is already covered by annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 parameters. The description mentions email filtering, but adds no syntax or format 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: 'Remove a collaborator from a Wavelength flow by email.' This clearly distinguishes it from add_collaborator and list_collaborators, though it does not explicitly distinguish it from close siblings like remove_external_collaborators or remove_member.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states an important prerequisite: 'Only the owner can remove collaborators.' This tells the agent when the call is permitted, but it does not name alternatives or say when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_edgesRemove edgesA
DestructiveIdempotent
Inspect

Remove edges from a Wavelength flow, by edge id. No AI call. Saves a versioned snapshot labeled 'Edited by AI agent (exact)'. Returns the applied count, a rejected list with reasons, node and edge counts, and a link to open it.

NameRequiredDescriptionDefault
itemsYesThe items to apply, in order.
flow_idYesThe id of the flow to edit.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the destructive/idempotent annotations by disclosing the side effect (a versioned snapshot labeled 'Edited by AI agent (exact)'), the absence of an AI call, and the exact return payload including applied count, rejected list with reasons, and counts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and scope, then side effect, then return shape. No filler and nothing repeated from the annotations or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 compensates by specifying the snapshot side effect, the no-AI-call behavior, and the return fields including partial-failure reporting via the rejected list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the schema already explains flow_id and the items array. The description reinforces the edge-id key, but the schema note that items.id may be a node id for node ops slightly conflicts with the edge-only framing here, and no extra format detail is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Remove) and resource (edges) scoped to a Wavelength flow and keyed by edge id, which cleanly separates it from siblings like remove_nodes, add_edges, and update_edges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'By edge id' and 'No AI call' imply when this exact-match removal applies, but the description never states when to prefer this over update_edges (rewrite) or remove_nodes (delete nodes instead). The routing is inferable but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_external_collaboratorsRemove outside collaboratorsA
DestructiveIdempotent
Inspect

Remove every person who is not a member of the organization, or whose email domain is not allowed, from all organization flows. Without confirm true it only lists who would be removed. Use get_org_security to see them first. Only an owner or an admin can do this.

NameRequiredDescriptionDefault
org_idYesOrganization id from list_organizations.
confirmNotrue removes them. Leave it out to preview the list only.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive=true and idempotent=true, but the description adds non-derivable behavior: the default dry-run/listing mode, the bulk scope across all flows, and the owner/admin permission requirement. These are exactly the contextual facts an agent needs before invoking a destructive bulk operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences ordered by importance: destructive scope first, then the safety/preview behavior, then the inspection alternative, then the permission gate. No filler, no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive two-mode operation with no output schema, the description covers scope, preview behavior, alternative tool, and auth. It does not say whether the removal is reversible or what the preview/list response looks like, which is a minor residual gap given idempotentHint is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (org_id, confirm) are fully documented in the schema, including the same preview semantics the description restates. The description adds no syntax, format, or meaning 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Remove), a precise target population (every person who is not a member of the organization or whose email domain is not allowed), and the blast radius (from all organization flows). This clearly separates it from the singular remove_collaborator/remove_member siblings without the agent needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly describes the two modes ('Without confirm true it only lists who would be removed'), names an alternative tool for inspection ('Use get_org_security to see them first'), and states the authorization prerequisite ('Only an owner or an admin'). When-to-use, safe-preflight, and who-can-call are all covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_memberRemove memberA
DestructiveIdempotent
Inspect

Remove a person from an organization. Their organization flows, folders, and teams go to transfer_to, or to you. They lose the organization's Pro seat. An owner can remove anyone; an admin can remove members only.

NameRequiredDescriptionDefault
emailYesThe member's email address.
org_idYesOrganization id from list_organizations.
transfer_toNoOptional. Email of a member who stays and gets their organization flows.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal destructiveHint and idempotentHint, but the description adds real behavioral context the annotations cannot: asset reassignment to transfer_to or the caller, loss of the Pro seat, and a permission model. It stops short of noting reversibility or whether email confirmation is required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each carrying distinct information (action, consequences, permissions), with the core purpose front-loaded. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 consequences, permission gates, and parameter behavior well. Missing only edge cases such as whether the member is notified or whether the operation can be undone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description genuinely adds meaning: it clarifies that transfer_to covers teams and folders (schema only mentions 'flows') and defines the fallback recipient as the caller when transfer_to is omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Remove a person from an organization'), and the consequences make the scope unmistakable. It does not, however, explicitly distinguish itself from closely named siblings like remove_team_member, remove_collaborator, or remove_external_collaborators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the description explains who is allowed to act (owner vs admin) but never says when to choose this over remove_team_member or remove_collaborator, nor when removal is the wrong action versus revoke_invite or leave_organization.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_nodesRemove nodesA
DestructiveIdempotent
Inspect

Remove nodes from a Wavelength flow, by node id. Each removed node also loses its edges. No AI call. Saves a versioned snapshot labeled 'Edited by AI agent (exact)'. Returns the applied count, a rejected list with reasons, node and edge counts, and a link to open it.

NameRequiredDescriptionDefault
itemsYesThe items to apply, in order.
flow_idYesThe id of the flow to edit.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive/idempotent/not-readOnly, and the description adds real behavior beyond them: cascading edge removal ('Each removed node also loses its edges'), no AI call (cost/latency), and a versioned snapshot labeled 'Edited by AI agent (exact)' that gives a recovery path for a destructive op. That is substantive disclosure a caller could not infer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five short sentences, front-loaded with the core action, then cascade behavior, cost, side effects, and return shape. No filler; each clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description supplies the return contract (applied count, rejected list with reasons, node/edge counts, link), plus cascade and versioning behavior. Nothing an agent needs to invoke or interpret results is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both flow_id and items are already documented in the schema. The description only reinforces 'by node id' and adds no format, ordering, or constraint 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Remove nodes from a Wavelength flow') with a scoping qualifier ('by node id') that distinguishes it from the sibling remove_edges. An agent can tell what is being deleted and how it is addressed 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and by 'by node id', which loosely routes the agent away from remove_edges, but no explicit when-to-use, prerequisites, or alternative selection is stated. Adequate but leaves the choice against remove_edges to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_team_memberRemove team memberA
DestructiveIdempotent
Inspect

Take one person off a team. They lose access to the team flows. Only a team admin, the team owner, or an organization owner or admin can do this.

NameRequiredDescriptionDefault
emailYesThe person's email address.
team_idYesTeam id from list_teams.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds the concrete consequence ('They lose access to the team flows') and the authorization requirement, which is genuine 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and effect, then the permission constraint. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 the mutation's consequence and authorization needs for a simple two-param tool. Adequate, though it doesn't address reversibility or how to re-add the member.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both team_id and email are fully documented in the schema. The description adds no syntax or format detail, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Take one person off a team') with a clear scope. It doesn't name the potentially confusing siblings (remove_member, remove_collaborator) to disambiguate, but the team-specific framing is understandable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a real prerequisite ('Only a team admin, the team owner, or an organization owner or admin can do this'), which is useful context. However, it offers no guidance on when to choose this over remove_member or remove_collaborator, 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.

rename_flowRename flowAInspect

Change the title of a saved Wavelength flow. Only the owner can rename a flow. Returns the new title and a link to open it.

NameRequiredDescriptionDefault
titleYesThe new title.
flow_idYesThe id of the flow to rename.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a non-read-only, non-destructive, non-idempotent, closed-world operation. The description adds value beyond that by disclosing the owner-only permission constraint and stating what is returned (new title plus an open link), which the annotations do not cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler: action first, then the permission constraint, then the return value. Every sentence earns its place, especially the return statement given there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation with no output schema, the description covers the action, the authorization requirement, and the response shape. It is essentially complete, with only the edit_flow boundary left unclarified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are self-describing ('The new title.', 'The id of the flow to rename.'). The description adds no format, length, or uniqueness constraints 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Change the title of a saved Wavelength flow'), which cleanly separates it from siblings like edit_flow, duplicate_flow, and rename_folder. An agent can tell what it 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description adds an important prerequisite ('Only the owner can rename a flow'), which functions as an authorization gate. However, it gives no guidance on when to use this versus edit_flow, which might also modify a flow's title, 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.

rename_folderRename folderBInspect

Rename a folder. Returns the folder id and the new name.

NameRequiredDescriptionDefault
nameYesThe new folder name.
folder_idYesThe id of the folder to rename.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false and idempotentHint=false, so the mutation and safety profile is covered. The description usefully adds the return payload (folder id and new name), which matters because no output schema exists, but it says nothing about permissions, validation rules, or collision behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the action front-loaded and the return value stated second. Every sentence earns its place, especially since the return value has no output schema to carry it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation with full schema coverage and annotations, the definition covers the action and the return payload. It is nearly complete; only edge-case behavior such as name collisions or required permissions is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (folder_id, name) are fully documented in the schema and the description adds no format or constraint detail beyond it. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (rename) and resource (folder), and the resource distinguishes it from the sibling rename_flow. It does not, however, explicitly name or route against related siblings such as create_folder, delete_folder, or move_flow_to_folder.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. The agent must infer that this is the tool for changing an existing folder's name 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.

request_approvalRequest approvalAInspect

Ask 1 to 5 people to approve a Wavelength flow, in order. Each approver must already be able to open the flow. The first approver gets an email now; each next approver gets one after the one before approves. Only one open approval per flow.

NameRequiredDescriptionDefault
noteNoWhat the approvers should check.
titleNoShort title of the request.
flow_idYesThe id of the flow.
approversYesApprover emails, in the order they approve.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by disclosing the notification side effects ('the first approver gets an email now; each next approver gets one after the one before approves'), the access prerequisite, and the single-open-approval constraint. For a mutation tool, this is exactly the behavioral context 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, then prerequisites, then side effects. Every sentence carries a distinct load and none can be dropped without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and 100% parameter coverage, the description closes the remaining gaps: prerequisites, sequencing, notification timing, and the one-open-approval rule. An agent can call this correctly without further inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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: the '1 to 5 people' bound on the approvers array and the 'in order' semantics that the schema's bare array-of-strings does not convey. It adds value over the schema but doesn't address the optional note/title fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Ask 1 to 5 people to approve a Wavelength flow, in order') with the scope baked in. The sequential-approval mechanism makes it clearly distinct from sibling tools like decide_approval and list_approvals without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear preconditions and constraints: each approver must already be able to open the flow, and only one open approval may exist per flow. It does not explicitly say when to prefer this over decide_approval, so it falls short of naming alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restore_versionRestore versionA
Destructive
Inspect

Restore a saved version of a Wavelength flow. First saves a snapshot of the current graph labeled 'Before restore by AI agent', then restores the chosen version. This overwrites the current graph. Returns the flow id and a link to open it.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.
version_idYesThe id of the version to restore.

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and idempotentHint=false, and the description adds context annotations cannot convey: an automatic snapshot labeled 'Before restore by AI agent' is taken first, the current graph is overwritten, and the call returns a flow id plus an open link. The pre-restore snapshot detail materially changes how an agent should reason about risk.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each carrying distinct information: purpose, backup behavior, destructive overwrite, and return value. The destructive overwrite is stated up front rather than buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description supplies the return value (flow id and open link). Combined with annotations covering the safety profile and the schema covering both params, nothing needed to invoke this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so flow_id and version_id are already documented in the schema. The description adds no format, sourcing, or constraint detail beyond it, which matches the baseline 3 for fully-covered params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Restore a saved version of a Wavelength flow'), which cleanly separates it from the adjacent version tools (compare_versions, list_versions). An agent can identify the action 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the tool restores a version, so an agent infers it follows list_versions/compare_versions, but neither the when-to-use condition nor the alternative (e.g., staying read-only) is stated. No exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_flowReview flowA
Read-onlyIdempotent
Inspect

Run a deterministic gap check on a Wavelength flow, with no AI call. Returns orphan nodes (no edges in or out), dead ends (non-end nodes with no outgoing edge), single-branch decisions, unlabeled decision branches, steps without an owner, AI-guessed edges, missing_start and missing_end flags, and a list of plain questions an SE can ask on the next call, one per finding.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow to review.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, and the description adds real behavioral context beyond them: the check is deterministic, makes no AI call, and it enumerates the exact classes of findings produced (orphan nodes, dead ends, single-branch decisions, unlabeled branches, ownerless steps, AI-guessed edges, missing_start/missing_end). For a tool with no output schema, that is unusually 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the key differentiator are front-loaded in the first clause, with the return enumeration deliberately following. The second half is a single very long comma-separated sentence; every item earns its place given the absence of an output schema, but the structure could be broken up for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one simple string parameter, rich annotations, and no output schema, the description covers the remaining burden by fully enumerating what the review returns. An agent has everything needed to decide to call it and to interpret the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single required parameter whose schema description coverage is 100% ('The id of the flow to review'), so the schema already carries the semantics. The description only refers to 'a Wavelength flow' generically and adds no format or constraint detail beyond the schema, which is the baseline-3 case for a fully documented single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Run a deterministic gap check on a Wavelength flow') and immediately differentiates the mechanism from AI-driven siblings with 'with no AI call'. An agent can tell this apart from ask_flow, summarize_flow, or get_flow 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'no AI call' / 'deterministic' framing gives clear context that this is the cheap, reproducible alternative to AI-backed analysis, and the closing clause about questions 'an SE can ask on the next call' describes the follow-on workflow. It stops short of naming a specific alternative tool or stating an explicit when-not condition, so it lands at 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.

revoke_inviteCancel invitationA
DestructiveIdempotent
Inspect

Cancel a pending invitation so its link stops working. Only an owner or an admin can do this. Get invitation_id from get_organization.

NameRequiredDescriptionDefault
org_idYesOrganization id from list_organizations.
invitation_idYesInvitation id from get_organization.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds real value beyond that: the concrete consequence (the invitation link stops working) and an authorization requirement ('owner or admin') that annotations do not encode. Return format remains unspecified, but for a 2-param tool with no output schema 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each earning its place: the action and effect first, then the permission gate, then the id provenance. Fully front-loaded with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity 2-param tool with full schema coverage and annotations covering safety, the description supplies the action, effect, authorization, and id source. Nothing critical is missing, though it stops short of distinguishing this from the member-removal siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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, including the note that invitation_id comes from get_organization. The description largely repeats that schema-provided provenance rather than adding new format, constraint, or failure-mode 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (cancel), resource (pending invitation) and the concrete effect ('so its link stops working'), which clearly separates it from invite_member (creates) and remove_member (removes an active member). It never names those siblings explicitly, so an agent still has to infer the boundary between revoking a pending invite and removing a member, keeping 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear precondition ('Only an owner or an admin can do this') and tells the agent where to source the id. It does not state when to prefer this over remove_member/invite_member, so there is context but no explicit alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

revoke_org_api_keyRevoke organization API keyA
DestructiveIdempotent
Inspect

Revoke an organization API key at once. Apps that use it stop working. Get key_id from get_org_security (api.active_keys). Only an owner or an admin can do this.

NameRequiredDescriptionDefault
key_idYesThe key id from get_org_security.
org_idYesOrganization id from list_organizations.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful context beyond that: the operational consequence of revocation and the owner/admin authorization requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and its consequence, with sourcing and permission details following. No filler and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, idempotent tool with no output schema, the description covers consequence, sourcing, and authorization, and annotations cover reversibility semantics via destructive/idempotent hints. It could note whether the revoked key can be recovered, but nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 navigation value the schema lacks by naming the exact field path (api.active_keys) within get_org_security where key_id is found. That is a small but genuinely actionable addition for sourcing the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (revoke) and resource (organization API key), and the immediate consequence ('Apps that use it stop working') makes the action unambiguous. It is clearly distinguishable from siblings create_org_api_key and get_org_security 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives two concrete pieces of guidance: where to source key_id ('from get_org_security (api.active_keys)') and the permission prerequisite ('Only an owner or an admin can do this'). It does not state explicit when-not-to-use conditions or name an alternative action, 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.

save_flow_to_driveSave flow to Google DriveAInspect

Save a flow as a file in the Wavelength folder of the connected Google Drive. google_doc makes a Google Doc with a summary, the steps and owners, questions to confirm, a link to the live flow, and the Mermaid code. drawio, svg, mermaid, and json save the diagram in that format. Returns the Drive link. If the app is not connected, the error tells the user where to connect it in Wavelength settings.

NameRequiredDescriptionDefault
formatNoThe file format. Default google_doc.
flow_idYesThe id of the flow.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true and destructiveHint=false, so the mutation/external-write profile is covered. The description adds genuinely new behavior: the file lands in a specific Drive folder, the return value is the Drive link, and the failure mode (connection error pointing to Wavelength settings) is spelled out.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tightly packed sentences, front-loaded with the core action and destination, then format semantics, then return value and error handling. Each sentence carries information; nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 notes that the Drive link is returned, and it covers the disconnected-app failure path — the two things an agent most needs beyond the schema. Minor gap: no mention of whether an existing file is overwritten given idempotentHint=false.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 goes further by explaining what each enum value actually produces (google_doc builds a doc containing summary, steps and owners, questions, live-flow link and Mermaid code; drawio/svg/mermaid/json save the diagram in that format). That is real semantic value beyond the schema's 'The file format. Default google_doc.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (save), resource (a flow), and destination (the Wavelength folder of the connected Google Drive), which distinguishes it from send_flow_to_confluence/jira/notion and the import_from_google_drive sibling. It does not explicitly address how it relates to the export_flow sibling, so sibling differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied by the format-by-format explanation, which tells the agent which format to pick for which outcome, but there is no explicit when-to-use-this vs. an alternative (e.g. export_flow or send_flow_to_*). No exclusions or preconditions are stated beyond the disconnected-app error case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_portalCreate or update a client portalA
Destructive
Inspect

Create a client portal, or update one when portal_id is given. A portal is a public page that anyone with the link can open. Only flows that the user owns can go on a portal. Other flow ids are skipped. On an update, fields that are not given keep their current value. The plan limits the number of portals.

NameRequiredDescriptionDefault
nameNoThe portal name, up to 80 characters. Required for a new portal.
introNoA short intro shown at the top, up to 600 characters.
accentNoThe accent color. Default #7B5CFF.
flow_idsNoThe flows to show, in order. This replaces the current list.
portal_idNoThe portal to update. Leave out to create a new portal.
allow_votesNoLet visitors vote on steps. Default true.
allow_commentsNoLet visitors comment. Default true.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive=true, idempotent=false and openWorld=true, and the description adds context the annotations cannot: the page is publicly reachable by anyone with the link, non-owned flow ids are silently dropped rather than erroring, unspecified fields are preserved on update, and the plan caps portal count. This is exactly the behavioral disclosure that goes beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Six tight sentences, front-loaded with the create/update distinction, then constraints and update semantics. Nothing is padded and every sentence adds either routing or behavioral information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-param, no-output-schema mutation tool with full annotation coverage, the description covers public exposure, ownership constraints, merge semantics and quota. It stops short of describing failure modes or what is returned, but with no output schema that omission is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 earns a bump by stating merge semantics on update ("fields that are not given keep their current value"), which tells the agent that omitting optional params will not clear existing values – behavior the schema's per-field descriptions do not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create a client portal, or update one") and immediately explains the upsert switch via portal_id, so the dual mode is unambiguous. It also defines what a portal is ("a public page that anyone with the link can open"), which cleanly separates it from siblings like list_portals and delete_portal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear mode-selection guidance (omit portal_id to create, pass it to update) and a hard constraint (only user-owned flows can be added; other ids are silently skipped). It does not name a sibling alternative or say when not to use this tool, 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.

search_crm_dealsSearch CRM dealsA
Read-onlyIdempotent
Inspect

Search the connected HubSpot for deals by name. With no query, returns the most recently changed deals. If HubSpot is not connected, returns an error telling the user to connect HubSpot in Wavelength settings.

NameRequiredDescriptionDefault
queryNoOptional deal name search query. Omit to return the most recently changed deals.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds two behaviors not in structured data: the default result set when query is omitted and the error-and-guidance path when HubSpot is not connected. Return shape and result limits are still unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, with the core action and default behavior front-loaded before the error-case caveat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read with no output schema, the description covers invocation, default results, and the not-connected failure. It could say a bit more about what a deal result contains or whether results are limited/paginated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single optional 'query' parameter, so the schema already documents its meaning and the default behavior. The description restates 'by name' and the omission default but adds no format/syntax guidance, making baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) and resource (deals) and pins the integration to HubSpot, which cleanly separates it from sibling finders like find_salesforce_records and find_servicenow_records. An agent can identify the tool from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly covers the omittable-query case ('With no query, returns the most recently changed deals') and the not-connected failure mode. It does not name a sibling alternative or state when NOT to use it, 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.

search_flowsSearch flowsA
Read-onlyIdempotent
Inspect

Full-text search the signed-in user's saved Wavelength flows by title, node labels, and transcript. Returns matches with where they matched, a transcript snippet, and a link to open each. Query must be at least 2 characters.

NameRequiredDescriptionDefault
limitNoMaximum number of matches to return, 1 to 100. Defaults to 20.
queryYesThe search query, at least 2 characters.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds genuine context beyond them: which fields are searched, what a result contains (match locations, transcript snippet, open link), and the minimum query length. No permissions or pagination behavior is described, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose and searched fields first, then return shape, then the key constraint. Every sentence carries distinct information and nothing is restated redundantly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the return shape (where matches occurred, a transcript snippet, an open link) and the query constraint. It stops short of describing result ordering, pagination, or how limit interacts with large result sets, so it is strong but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both params and the 2-character minimum are already documented structurally. The description restates the query-length constraint but adds no syntax, formatting, or matching-behavior detail for query or limit, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (full-text search), resource (the user's saved flows), and searchable fields (title, node labels, transcript). It implicitly separates itself from plain listing tools, but never names the closest siblings like list_flows or query_flows, so an agent can't fully disambiguate 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'full-text search... by title, node labels, and transcript' and the 'signed-in user's saved flows' scoping, but there is no explicit when-to-use guidance nor any statement of when to prefer list_flows or query_flows instead. 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.

send_flow_to_channelSend flow to a channelAInspect

Post a flow to a Slack, Microsoft Teams, Google Chat, or Discord channel, or to a webhook. The message has the flow title, a short summary, questions to confirm, and a link to the flow. A webhook also gets the steps, links, and Mermaid code as JSON. The link is the public link when the flow is shared, otherwise the private app link. Get the channel_id from list_channels.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.
channel_idYesThe channel id from list_channels.
summary_linesNoOptional summary lines to send instead of the default summary.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare openWorldHint=true, idempotentHint=false, destructiveHint=false, so the safety profile is covered. The description adds real behavioral detail beyond that: the exact message payload, the extra JSON content (steps, links, Mermaid code) sent to webhooks, and the rule for choosing the public vs private link. It does not mention failure modes or that repeat calls produce duplicate posts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each earning its place: destination list first, payload second, webhook variant third, link rule and parameter sourcing last. No filler and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a side-effecting post tool with no output schema, the description covers what is sent and where, and how to obtain the channel_id. It omits error/rejection behavior (invalid webhook, channel not found) and any permission requirements, which would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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. The description reinforces channel_id's source and explains what the default summary contains (which summary_lines overrides), but adds no syntax or format detail the schema lacks. Baseline 3 applies 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Post) and resource (flow) plus the exact set of destinations: Slack, Microsoft Teams, Google Chat, Discord, or webhook. This cleanly separates it from siblings like send_flow_to_confluence, send_flow_to_jira, send_flow_to_notion, and share_flow 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete operational context: 'Get the channel_id from list_channels', tying the required parameter to the sibling tool that produces it. It does not explicitly state when to prefer this over the other send_flow_to_* siblings, so it stops short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_flow_to_confluenceSend flow to ConfluenceAInspect

Make a new Confluence page from a flow (give space_key, and optionally parent_page_id), or add the flow to the end of an existing page (give page_id). The text has a summary, questions to confirm, and a link to the live flow. If the app is not connected, the error tells the user where to connect it in Wavelength settings.

NameRequiredDescriptionDefault
titleNoOptional title. Default is the flow title.
flow_idYesThe id of the flow.
page_idNoAn existing page to add the flow to.
summaryNoOptional text to send instead of the default summary, up to 15000 characters. For example, the handoff text from write_recaps. The flow link is added at the end.
space_keyNoThe space for a new page.
parent_page_idNoOptional parent page for a new page.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a non-destructive, non-idempotent, open-world write. The description adds value beyond them by disclosing what actually gets posted (summary, questions to confirm, live-flow link) and the disconnected-app error behavior that directs the user to Wavelength settings, which an agent cannot infer 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences: the two modes lead, the payload content follows, and the error-handling note closes. No sentence is redundant with another and none restates the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter write tool with no output schema, the description covers mode selection, payload contents, and the most likely failure mode. It stops short of stating what the successful response returns (page id/URL), which an agent might want for chaining, but otherwise it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds meaning the isolated schema entries don't: the mutually exclusive parameter combinations (space_key/parent_page_id vs page_id) and the role of summary as overriding the default text. This is genuine semantic value beyond the field-level docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Make a new Confluence page from a flow ... or add the flow to the end of an existing page') and cleanly separates the two operating modes. The Confluence target distinguishes it from the send_flow_to_jira/notion/salesforce/servicenow siblings without needing the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent which parameters select each mode: space_key (+ optional parent_page_id) for a new page, page_id to append to an existing one. It does not, however, point to find_confluence_targets for discovering space_key/page_id values, which is the one obvious routing gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_flow_to_jiraSend flow to JiraAInspect

Make a new Jira issue from a flow (give project_id and issue_type_id), or add the flow as a comment on an existing issue (give issue_key). The text has a summary, questions to confirm, and a link to the live flow. If the app is not connected, the error tells the user where to connect it in Wavelength settings.

NameRequiredDescriptionDefault
titleNoOptional issue summary. Default is the flow title.
flow_idYesThe id of the flow.
summaryNoOptional text to send instead of the default summary, up to 15000 characters. For example, the handoff text from write_recaps. The flow link is added at the end.
issue_keyNoAn existing issue to comment on, such as ABC-12.
project_idNoThe project for a new issue.
issue_type_idNoThe issue type for a new issue.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true and idempotentHint=false. The description adds genuinely useful context beyond them: what text is sent (summary, confirmation questions, live-flow link) and that a disconnected app surfaces an actionable error pointing to Wavelength settings. That is real behavioral disclosure a schema can't convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the two modes, then payload contents, then the connection-error behavior. Every sentence earns its place; the only mild weakness is that the error-handling sentence could be folded in more tightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 params, one required, no output schema, and annotations covering the safety profile, the description supplies the missing pieces: mode selection and payload composition. Nothing essential for calling it correctly is absent, though return/confirmation behavior is not described (and needn't be, since no output schema exists to contradict).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 goes further by grouping the parameters into mutually exclusive modes (project_id + issue_type_id for new; issue_key for comment), which clarifies the intended combinations rather than just restating individual field meanings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (create a Jira issue or add a comment) scoped to a flow, and enumerates the two operating modes. The Jira focus is unmistakable against the many send_flow_to_* siblings, and an agent can tell what the tool produces 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent between the two modes: give project_id and issue_type_id for a new issue, or issue_key to comment on an existing one. It doesn't compare against sibling targets (Confluence, Notion, Salesforce), but the mode-selection 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.

send_flow_to_notionSend flow to NotionAInspect

Save a flow as a new Notion page under a parent page. The page has a link to the live flow, a summary, questions to confirm, and the Mermaid diagram code. If the app is not connected, the error tells the user where to connect it in Wavelength settings.

NameRequiredDescriptionDefault
titleNoOptional page title. Default is the flow title.
flow_idYesThe id of the flow.
summaryNoOptional summary to use instead of the default, one point per line.
parent_page_idYesThe parent page id from find_notion_pages.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, open-world, non-idempotent write. The description adds useful context beyond annotations: it describes the page contents (live-flow link, summary, questions to confirm, Mermaid diagram) and explains the connection-error behavior. It does not cover permissions or rate limits, but it is notably more informative than the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action, then the page contents, then the error behavior. Every sentence earns its place and there is no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write tool with annotations covering safety and no output schema, the description is nearly complete: it explains what is created and how connection failures surface. It could go slightly further by noting permissions or whether repeated calls create duplicate pages, but the core operational picture is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 input schema. The description adds no additional format, default, or constraint information beyond what the schema provides, which fits the baseline of 3 when the schema carries the full parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Save') and resource ('a flow as a new Notion page under a parent page'), and the Notion-specific wording distinguishes it from sibling tools like send_flow_to_confluence or send_flow_to_jira. It also specifies what the resulting page contains, which removes ambiguity about the tool's effect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not say when to use this tool versus alternatives such as export_flow, save_flow_to_drive, or the other send_flow_to_* tools. It implies usage through the purpose statement, but provides no explicit when/when-not guidance or prerequisites like needing a parent page ID from find_notion_pages.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_flow_to_salesforceSend flow to SalesforceAInspect

Attach a flow to a Salesforce opportunity or account as a note with a summary, questions to confirm, and a link to the live flow. If the app is not connected, the error tells the user where to connect it in Wavelength settings.

NameRequiredDescriptionDefault
titleNoOptional note title. Default is the flow title.
flow_idYesThe id of the flow.
summaryNoOptional text to send instead of the default summary, up to 15000 characters. For example, the handoff text from write_recaps. The flow link is added at the end.
record_idYesThe record id from find_salesforce_records.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (not read-only, open-world, non-idempotent, non-destructive), and the description adds real behavioral context on top: it discloses that the call creates a note with a fixed structure (summary, confirm questions, live-flow link) and that a missing connection produces an error directing the user to Wavelength settings. It does not warn that repeated calls create duplicate notes, which is the main non-idempotent risk.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences, zero filler, with the core action front-loaded before the error-handling caveat. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write tool with full parameter coverage and no output schema, the description covers what is created, where it lands, and the failure mode. It could mention whether anything identifying (note id, Salesforce URL) is returned, but this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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, and the description adds little parameter-level detail beyond noting the flow link is appended to the summary. 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (attach) and resource (a flow, as a note on a Salesforce opportunity or account) and even enumerates the note's contents. It is clearly differentiated from its send_flow_to_* siblings by naming Salesforce as the target, though it never explicitly contrasts itself with attach_flow_to_crm or the other CRM-routing tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the target platform rather than stated: the agent can infer 'use this to send a flow to Salesforce.' There is no explicit when/when-not guidance and no pointer to the alternative tool (attach_flow_to_crm) or to find_salesforce_records as the prerequisite for record_id, even though the schema references it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_flow_to_servicenowSend flow to ServiceNowAInspect

Add a flow as a work note on an existing ServiceNow record (give sys_id), or make a new record from the flow (leave out sys_id). The text has a summary, questions to confirm, and a link to the live flow. If the app is not connected, the error tells the user where to connect it in Wavelength settings.

NameRequiredDescriptionDefault
tableYesThe record type.
titleNoOptional title for a new record. Default is the flow title.
sys_idNoAn existing record from find_servicenow_records.
flow_idYesThe id of the flow.
summaryNoOptional text to send instead of the default summary, up to 15000 characters. For example, the handoff text from write_recaps. The flow link is added at the end.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false. The description adds real value beyond those: it discloses the connection-requirement failure path (error points the user to Wavelength settings) and what the payload contains. It does not discuss reversibility of the created record/note, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both earning their place, with the mode-selection condition front-loaded. The closing sentence on connection errors is slightly tangential but still actionable, so it is well-sized rather than padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, no nested objects, and full schema coverage, the description supplies everything an agent needs: the two modes, the triggering parameter, the content of the generated text, and the auth/connection failure behavior. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds meaning by explaining that presence or absence of sys_id switches the tool's behavior, and by describing what the summary text contains and how the flow link is appended. That is semantic value beyond the schema's field-level text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (add/send a flow) and resource (ServiceNow record) and distinguishes its two operating modes: work note on an existing record when sys_id is supplied, or a new record when it is omitted. An agent can distinguish it from the many send_flow_to_* siblings by the ServiceNow target alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear conditional guidance for choosing between the two modes (provide sys_id vs. omit it) and the schema points to find_servicenow_records for obtaining a sys_id. It does not explicitly name sibling alternatives like send_flow_to_jira, but the resource routing is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_member_roleChange member roleA
DestructiveIdempotent
Inspect

Change a member's organization role to owner, admin, or member. Only an owner or an admin can do this. Only an owner can make or change an owner. Nobody can change their own role. An organization keeps at least one owner.

NameRequiredDescriptionDefault
roleYesThe new role.
emailYesThe member's email address.
org_idYesOrganization id from list_organizations.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds real value beyond that: authorization requirements (owner/admin only), the ownership-grant restriction, the self-modification ban, and the 'keeps at least one owner' invariant. It stops short of describing the response or side effects like notification, so it is not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five short, front-loaded sentences, each contributing a distinct rule; nothing is repetitive or filler. The action is stated first and constraints follow, matching how an agent reads.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a permission-sensitive mutation with no output schema and full schema coverage, the description supplies the authorization model and invariants an agent needs. It omits only minor details (error behavior when inviting an unknown email, downstream effects), which the annotations partially cover.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the role parameter carries an enum, so the schema already documents all three parameters. The description's mention of owner/admin/member merely restates the enum and adds no format or syntax detail for org_id or email.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Change a member's organization role') and enumerates the target values, so an agent knows exactly what it does. The 'organization' qualifier naturally distinguishes it from the sibling set_team_member_role, which handles team roles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear preconditions and exclusions: only owners/admins may call it, only an owner can grant/alter ownership, no self-changes. These constraints route the agent well, though it never explicitly names the alternative tool for team-scoped changes (set_team_member_role).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_team_member_roleSet team member roleA
DestructiveIdempotent
Inspect

Change the role of one person on a team. Roles: team_admin (manages the team), editor (edits team flows), viewer (opens team flows only). Only a team admin, the team owner, or an organization owner or admin can do this.

NameRequiredDescriptionDefault
roleYesTeam role for add or set_role. Default editor.
emailYesThe person's email address.
team_idYesTeam id from list_teams.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true and destructiveHint=true, so the safety profile is covered. The description adds genuine context beyond that: it specifies the authorization prerequisites (team admin, team owner, or org owner/admin), which an agent needs to predict failures. It stops short of saying what happens to the member's prior access or what an unauthorized 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: the action first, the role vocabulary second, the authorization constraint last. Every sentence earns its place and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter mutation with no output schema and annotations that already cover safety hints, the description supplies the two things an agent most needs: role semantics and permission prerequisites. Only edge-case behavior (failure modes, effect on existing access) is unstated, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 exceeds it by defining the semantics of each enum value (team_admin manages the team, editor edits team flows, viewer opens only), which the schema enumerates but does not explain. It does not add anything for team_id or email, both of which the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Change the role of one person on a team") and even enumerates the role values, so the agent knows exactly what state transition this performs. It does not, however, differentiate itself from the similarly named sibling set_member_role or from add_team_member, leaving that disambiguation to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (changing an existing team member's role) but gives no explicit when-to-use guidance versus set_member_role, add_team_member, or remove_team_member. Usage is inferable from the purpose statement rather than stated as a rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

share_flowShare flowA
Idempotent
Inspect

Create or refresh a public read-only link anyone can open for a Wavelength flow, with no account needed. Optionally include a summary shown on the public page. hide_attribution is Pro only and the server enforces it. Returns the public url, slug, and is_public flag. Also returns embed_image_url, a live SVG image of the flow that updates when the flow changes, and embed_markdown, ready to paste into Notion, Confluence, GitHub, or any Markdown page.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow to share.
summaryNoOptional summary shown on the public page, up to 300 characters.
hide_attributionNoOptional. Hide the Wavelength attribution on the public page. Pro only; the server enforces the plan limit.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, idempotentHint=true, openWorldHint=true), it discloses that the link is public with no account required, that hide_attribution is plan-gated and server-enforced, and what the response contains. That is substantial behavioral context the annotations alone 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and scope, then the return payload. It is slightly long with two sentences devoted to return artifacts, but each carries real information given there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 returned fields (url, slug, is_public, embed_image_url, embed_markdown) and explaining their behavior (live SVG updates, paste targets). An agent has everything needed to call and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all three parameters are already documented with descriptions and constraints (300-char summary, Pro-only hide_attribution). The description restates the same semantics rather than adding new detail like format or default 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Create or refresh a public read-only link ... for a Wavelength flow') and immediately scopes it ('anyone can open ... no account needed'). It is clearly distinguishable from siblings like get_share_status and unshare_flow, which do not create links.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys when to use it (you want a public read-only link) and the 'create or refresh' framing signals idempotent reuse, plus it flags the Pro-only constraint on hide_attribution. It never names explicit alternatives (get_share_status, unshare_flow) or when-not-to-use, 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.

show_flowShow flow diagramA
Read-onlyIdempotent
Inspect

Show a saved Wavelength flow as an interactive diagram inside the chat. The user can pan, zoom, and drag nodes. Pass flow_id, or title to match by name. With neither, the most recently updated flow is shown.

NameRequiredDescriptionDefault
titleNoPart of the flow title, used when flow_id is not known.
flow_idNoThe flow id.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely useful context beyond that: the output is an interactive canvas with pan/zoom/drag, and the no-argument case silently defaults to the most recently updated flow, which is a non-obvious trait an agent must know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero filler, front-loading what the tool produces before the parameter resolution rules. Every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, no-output-schema tool the safety and return-shape burden is largely handled by annotations and the description's rendering note. Minor gaps remain: no mention of behavior when a title matches multiple flows or when no flow exists, 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds resolution semantics the schema only implies: flow_id and title are alternatives, and the description contributes the additional rule that omitting both selects the most recently updated flow — behavior not encoded anywhere in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Show a saved Wavelength flow as an interactive diagram') plus the rendering mode ('inside the chat'), which cleanly distinguishes it from data-oriented siblings like get_flow, summarize_flow, and review_flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear invocation context: pass flow_id, or title to match by name, and specifies fallback behavior when neither is supplied. It does not explicitly say when to prefer this over get_flow or list_flows, so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_followupsSuggest follow-up questionsA
Read-only
Inspect

Find the gaps in a flow and write 3 to 6 follow-up questions to ask the customer. It looks for steps with no owner, a missing trigger or end, missing decision branches, links that AI guessed, and systems with no clear input or output. It uses the saved call transcript of the flow when there is one. Each question has the step it is about and a kind. Uses one AI help call from the plan.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.
use_transcriptNoSet false to ignore the saved transcript. Default true.

TDQS

A3.8/5.0
Behavior4/5

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). Beyond that, the description discloses two non-obvious traits: it consumes 'one AI help call from the plan' (a cost/rate constraint) and it reads the saved call transcript when one exists. It does not describe pagination or failure behavior, but those are less relevant for 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then supporting detail, then output shape and cost in short sentences. The enumeration of gap types is slightly list-heavy but each item is informative rather than filler. No redundant restatement of the tool name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 return-value burden and does so ('each question has the step it is about and a kind'). Inputs, behavior, output shape, and AI-call cost are all covered for a two-parameter read-only tool. It omits edge cases such as behavior when the flow has no gaps or no transcript.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 adds meaning beyond the schema by explaining that the transcript is used 'when there is one' and by tying the transcript behavior to the use_transcript toggle, clarifying the graceful fallback. The flow_id parameter gets no added explanation, but it is fully documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb-and-resource pair ('find the gaps in a flow and write 3 to 6 follow-up questions') and enumerates the exact gap classes it detects (no owner, missing trigger/end, missing decision branches, guessed links, unclear I/O). That makes it concrete and distinguishable in practice from review_flow or summarize_flow. It never names a sibling explicitly, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scenario is implied ('ask the customer', 'uses the saved call transcript of the flow when there is one') so an agent can infer the appropriate context. There is no explicit when-to-use statement, no when-not-to-use, and no routing to alternatives such as review_flow or ask_flow, which is the main gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

summarize_flowSummarize flowA
Read-onlyIdempotent
Inspect

Summarize a Wavelength flow. systems_in_scope is deterministic: it groups system and data nodes with their inbound and outbound edge labels, plus actors. recap_email and sow_outline call the AI, writing only from the graph and transcript (no invented facts, no em dashes, short sentences). Returns {format, text}.

NameRequiredDescriptionDefault
formatYesThe summary format.
flow_idYesThe id of the flow to summarize.
audienceNoOptional audience for recap_email and sow_outline, for example 'the client CFO'.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower, yet the description adds real behavior: systems_in_scope is deterministic, the other two formats invoke the AI, and they are constrained to graph and transcript with production guardrails (no invented facts, no em dashes, short sentences). It omits auth requirements and latency/cost implications of the AI-backed formats, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action before the per-format detail, and no filler. The parenthetical guardrails are dense but each clause carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description supplies the return shape ({format, text}), which the agent would otherwise lack. Combined with per-format behavior, this is nearly complete; it stops short only on how an AI-format failure or empty transcript would surface.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 goes beyond the schema's terse 'The summary format' by explaining what each enum value actually returns. This meaningfully disambiguates the required format parameter beyond its schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Summarize a Wavelength flow') and then differentiates the three enum values by behavior, which lets an agent pick a format without guessing. It does not explicitly contrast itself with nearby siblings like review_flow or write_recaps, so sibling routing is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what each format produces, which implies when each is appropriate, but never states when to use this tool over alternatives such as write_recaps, review_flow, or ask_flow. Usage is inferable from the format semantics rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unshare_flowUnshare flowA
DestructiveIdempotent
Inspect

Turn off the public read-only link for a Wavelength flow. The link stops working for everyone who has it. Returns is_public false.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow to unshare.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so safety is covered. The description still adds real value by disclosing the blast radius ('the link stops working for everyone who has it') and the resulting state ('Returns is_public false'), which annotations cannot convey. It stops short of noting auth/permission requirements or reversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and its scope, followed by the consequence and the return value. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter mutation with a strong annotation set, the description covers action, effect, and a summary of the return state despite there being no output schema. 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the single flow_id parameter fully documented ('The id of the flow to unshare'). The description adds no format, identity, or lookup guidance 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Turn off') and resource ('the public read-only link for a Wavelength flow'), scoping exactly which sharing mechanism is affected. This distinguishes it from collaborator-removal siblings like remove_external_collaborators and from the inverse share_flow, without needing to open any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and description (revoke public access), but there is no explicit when-to-use guidance, no prerequisites, and no reference to the obvious alternatives such as share_flow or get_share_status. Adequate context, but the agent must infer the routing itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_checkinUpdate check-inA
Idempotent
Inspect

Confirm that a flow still matches the work today (confirm true), or set how often Wavelength asks the owner to check the flow (interval_days), or both. Only the owner can change the interval. interval_days 0 turns check-ins off.

NameRequiredDescriptionDefault
confirmNoTrue marks the flow as still right today.
flow_idYesThe id of the flow.
interval_daysNoDays between check-ins. 0 turns them off.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (idempotent, non-destructive, not read-only). The description adds real behavioral value beyond that: the owner-only permission requirement and the semantic that interval_days 0 disables check-ins entirely.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences that front-load the primary action and follow with the permission constraint and the 0-means-off rule. No filler language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter, non-destructive mutation with full annotation coverage and no output schema, the description supplies the operation modes, the authorization prerequisite, and the disable semantic. Only the absence of sibling routing (vs get_checkin_status) leaves a small gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already documents each parameter, so baseline is 3. The description goes further by clarifying that the two parameters can be combined ('or both') and restating the enabling/disabling semantics of confirm and interval_days 0 in operational terms.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific mutation with two clear modes: confirming a flow is still valid (confirm) and configuring check-in cadence (interval_days). This distinguishes it functionally from get_checkin_status, but it never names the read sibling so an agent must infer the read/write split from the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly explains the three usage cases: confirm only, interval only, or both, giving the agent a concrete selection rule. It also notes the owner-only constraint, but offers no explicit when-not guidance or alternative tool routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_edgesUpdate edgesA
DestructiveIdempotent
Inspect

Change the label or kind of existing edges in a Wavelength flow, by edge id. No AI call. Saves a versioned snapshot labeled 'Edited by AI agent (exact)'. Returns the applied count, a rejected list with reasons, node and edge counts, and a link to open it.

NameRequiredDescriptionDefault
itemsYesThe items to apply, in order.
flow_idYesThe id of the flow to edit.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare the safety profile (destructive, idempotent, not read-only). The description adds valuable context: no AI call, a versioned snapshot with a specific label, and the exact return payload including applied count, rejected reasons, counts, and link. This goes beyond annotations, though it doesn't cover auth or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with purpose, then behavior and returns. No wasted words; each sentence adds distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 supplies return values, snapshot behavior, and AI-call status. Coupled with comprehensive annotations and full schema coverage, an agent has enough to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema documents id, kind, label, source, target, note. The description only restates 'by edge id' and 'label or kind', adding minimal meaning 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Change) and resource (label or kind of existing edges) scoped by edge id. It distinguishes itself from add_edges/remove_edges by targeting existing edges, but does not name a sibling alternative explicitly, so 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when/when-not guidance or alternatives. 'Change ... existing edges' implies use for modifying edge attributes rather than adding/removing, but an agent must infer this from sibling names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_nodesUpdate nodesA
DestructiveIdempotent
Inspect

Change the label, type, owner, note, or status of existing nodes in a Wavelength flow, by node id. No AI call. Saves a versioned snapshot labeled 'Edited by AI agent (exact)'. Returns the applied count, a rejected list with reasons, node and edge counts, and a link to open it.

NameRequiredDescriptionDefault
itemsYesThe items to apply, in order.
flow_idYesThe id of the flow to edit.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare write/destructive/idempotent traits, but the description adds real value beyond them: it discloses that no AI call is consumed, that a versioned snapshot labeled 'Edited by AI agent (exact)' is created, and that only existing nodes are touched. This is meaningful side-effect context not present in 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The action is front-loaded, followed by side effects and return values in a compact three-sentence block. Slightly dense run-on phrasing, but essentially no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description explicitly enumerates the return payload (applied count, rejected list with reasons, node/edge counts, open link), covers the write side effect, and clarifies scope. An agent has everything needed to call and interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents both flow_id and the item fields. The description's mention of the updatable fields and 'by node id' adds little beyond what the schema already states, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Change) and resource (label, type, owner, note, or status of existing nodes) with clear scope (by node id). An agent can immediately distinguish it from siblings like update_edges, add_nodes, and remove_nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Change... existing nodes... by node id' implies when to use it and the 'No AI call' note hints at a contrast with AI-driven tools like ask_flow. However, it never explicitly names an alternative or states when-not to use it versus add_nodes/remove_nodes, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_organizationUpdate organizationA
DestructiveIdempotent
Inspect

Rename an organization or change its settings. Only an owner or an admin can do this. Settings: member_flow_role (editor or viewer on organization flows), allow_member_invites, allow_public_publish.

NameRequiredDescriptionDefault
nameNoNew organization name.
org_idYesOrganization id from list_organizations.
member_flow_roleNoWhat members can do on organization flows.
allow_member_invitesNotrue lets members invite other members.
allow_public_publishNotrue lets members publish organization flows to a public link.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=true. The description adds the authorization requirement (owner/admin), which is useful context beyond annotations. However, it does not explain what settings are overwritten, reversibility, or the effect of each setting beyond brief field descriptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with the core action, then permissions, then settings. No fluff, though the settings list could be considered slightly redundant with schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 params, 100% schema coverage, annotations covering mutation/destructiveness, and no output schema, the description is mostly complete: it states permissions and setting names. It could mention that some settings may affect all members or be irreversible, but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are fully described in the schema. The description lists setting names (member_flow_role, allow_member_invites, allow_public_publish) and briefly mentions enum values (editor or viewer), but adds little beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Rename an organization or change its settings.' Clear what the tool does. However, it doesn't differentiate from siblings like update_org_security, rename_flow, or set_member_role, though the org focus helps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions 'Only an owner or an admin can do this,' which is a usage prerequisite. But no explicit when-to-use vs alternative tools or when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_org_securityUpdate organization security settingsA
DestructiveIdempotent
Inspect

Change security settings of an organization. require_mfa makes every member pass two-step verification before they can open organization flows (the caller must have two-step verification on). allow_public_publish false blocks public links. transcript_retention_days deletes transcripts of organization flows after that many days (null turns it off). allow_external_collaborators false lets members share organization flows only with other members. allowed_domains limits invitations and sharing to those email domains (it must include your own domain; an empty list allows all). Only an owner or an admin can do this.

NameRequiredDescriptionDefault
org_idYesOrganization id from list_organizations.
require_mfaNoRequire two-step verification for all members.
allowed_domainsNoEmail domains allowed for invitations and sharing, for example ["acme.com"]. Include your own domain. [] allows all domains. Up to 20.
scim_transfer_toNoEmail of a member who gets the flows of a member that SCIM removes. null means the first owner.
scim_default_roleNoRole for members that SCIM adds. Only an owner can pick admin.
allow_public_publishNoAllow public web links for organization flows.
transcript_retention_daysNo1 to 3650 days, or null to keep transcripts.
allow_external_collaboratorsNoAllow sharing organization flows with people who are not members. Existing outside collaborators stay until remove_external_collaborators.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and idempotentHint=true, so the bar is lower, but the description still adds substance: transcript_retention_days deletes transcripts, allow_external_collaborators=false demotes outside sharing to members-only, and there is an authorization requirement. It does not state whether this is a partial update (unspecified settings preserved) or whether changes are reversible, which is the main remaining gap for a destructive mutator.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then spends one parenthetical clause per parameter with zero filler; the destructive/permission facts are placed where they matter. Slightly dense as a single paragraph, but nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter destructive mutation with no output schema, the description plus annotations cover the important ground: who can call it, what each major flag changes, and what gets deleted. It stops short of describing partial-update semantics and the SCIM fields, which an agent handling org provisioning would want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 adding meaning not in the schema, notably that enabling require_mfa requires the caller's own MFA and that allowed_domains must include the caller's own domain. It leaves scim_transfer_to, scim_default_role and org_id entirely to the schema, so three of eight parameters get no descriptive treatment.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("Change security settings of an organization") that is unambiguously distinct from the read-side get_org_security and from the general update_organization. It never names those siblings explicitly, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a real usage gate: "Only an owner or an admin can do this," plus a nested precondition that the caller must themselves have two-step verification on before enabling require_mfa. There is no explicit when-to-use-this-vs-get_org_security/update_organization guidance or statement about what happens to omitted fields.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_recapsWrite recaps for three readersA
Read-only
Inspect

Write three short recaps of one flow: customer_recap (an email body to the customer after the call), handoff (notes for the solution engineer or implementation team), and leadership (2 to 4 sentences for a manager). It uses only facts in the flow and its saved transcript. Uses one AI help call from the plan.

NameRequiredDescriptionDefault
flow_idYesThe id of the flow.
use_transcriptNoSet false to ignore the saved transcript. Default true.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly=true, destructive=false), and the description adds genuinely new behavioral context: it consumes one AI help call from the plan (a quota cost), it grounds output only in the flow and its saved transcript, and it produces three artifacts rather than one. It does not say whether the recaps are persisted anywhere, which matters given idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly packed sentences: the action and its three deliverables come first, then the grounding source and cost. Every clause carries information the agent needs and nothing is repeated from the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 takes on the burden of describing the return shape by naming and characterizing all three recaps, and it discloses the quota cost. The only gap is that it never states whether the generated recaps are stored or returned transiently, which matters for a non-idempotent generative tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both flow_id and use_transcript are already documented in the schema, including the default. The description references "its saved transcript" but adds no new semantics for the use_transcript flag beyond what the schema states, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Write") and resource (three recaps of one flow), and enumerates the three distinct outputs with their intended audience and length, which makes it distinguishable from generic siblings like summarize_flow. It stops short of naming any sibling explicitly, so differentiation is inferred rather than declared.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied by "an email body to the customer after the call," which hints at a post-session workflow, but there is no explicit when-to-use, when-not-to-use, or routing to alternatives such as summarize_flow or suggest_followups. The agent must infer the trigger condition.

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. 8 tool updates
    • Addedcreate_loop
    • Addeddecide_approval
    • Addeddelete_loop
    • Addedget_inbox
    • Addedlist_approvals
    • Addedlist_loops
    • Addedlist_walkthroughs
    • Addedrequest_approval
  2. 98 tool updates
    • First observedadd_collaborator
    • First observedadd_edges
    • First observedadd_nodes
    • First observedadd_team_member
    • First observedadd_to_flow
    • First observedask_flow
    • First observedattach_flow_to_crm
    • First observedcompare_versions
    • First observedcreate_flow_from_graph
    • First observedcreate_flow_from_text
    • First observedcreate_folder
    • First observedcreate_org_api_key
    • First observedcreate_organization
    • First observedcreate_organization_team
    • First observedcrm_status
    • First observeddelete_flow
    • First observeddelete_folder
    • First observeddelete_organization
    • First observeddelete_portal
    • First observedduplicate_flow
    • First observededit_flow
    • First observedexport_flow
    • First observedfind_confluence_targets
    • First observedfind_jira_targets
    • First observedfind_notion_pages
    • First observedfind_salesforce_records
    • First observedfind_servicenow_records
    • First observedformat_flow
    • First observedget_account
    • First observedget_checkin_status
    • First observedget_flow
    • First observedget_insights
    • First observedget_org_audit_log
    • First observedget_org_security
    • First observedget_org_usage
    • First observedget_organization
    • First observedget_share_status
    • First observedgroup_notes
    • First observedimport_dbt_lineage
    • First observedimport_diagram
    • First observedimport_from_google_drive
    • First observedimport_from_n8n
    • First observedimport_snowflake_lineage
    • First observedinvite_member
    • First observedleave_organization
    • First observedlist_channels
    • First observedlist_collaborators
    • First observedlist_connections
    • First observedlist_dbt_jobs
    • First observedlist_flows
    • First observedlist_folders
    • First observedlist_n8n_workflows
    • First observedlist_organizations
    • First observedlist_portals
    • First observedlist_snowflake_databases
    • First observedlist_teams
    • First observedlist_versions
    • First observedmove_flow_to_folder
    • First observedmove_flow_to_organization
    • First observedmove_flow_to_team
    • First observednotes_to_flow
    • First observedprepare_live_session
    • First observedquery_flows
    • First observedremove_collaborator
    • First observedremove_edges
    • First observedremove_external_collaborators
    • First observedremove_member
    • First observedremove_nodes
    • First observedremove_team_member
    • First observedrename_flow
    • First observedrename_folder
    • First observedrestore_version
    • First observedreview_flow
    • First observedrevoke_invite
    • First observedrevoke_org_api_key
    • First observedsave_flow_to_drive
    • First observedsave_portal
    • First observedsearch_crm_deals
    • First observedsearch_flows
    • First observedsend_flow_to_channel
    • First observedsend_flow_to_confluence
    • First observedsend_flow_to_jira
    • First observedsend_flow_to_notion
    • First observedsend_flow_to_salesforce
    • First observedsend_flow_to_servicenow
    • First observedset_member_role
    • First observedset_team_member_role
    • First observedshare_flow
    • First observedshow_flow
    • First observedsuggest_followups
    • First observedsummarize_flow
    • First observedunshare_flow
    • First observedupdate_checkin
    • First observedupdate_edges
    • First observedupdate_nodes
    • First observedupdate_org_security
    • First observedupdate_organization
    • First observedwrite_recaps

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants in Cursor, Claude Code, and Windsurf to turn plain descriptions of components, actors, or data into auto-laid-out, editable hand-drawn diagrams across 25 types — including architecture, flowcharts, sequence diagrams, Gantt charts, and charts — with architecture-aware styling and natural-language revision. It can optionally persist a system as a version-controlled, queryable knowledge graph, and it runs fully offline with no API keys, exporting to SVG and PNG.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI coding assistants to generate and iteratively revise auto-laid-out, hand-drawn diagrams across 25 types — architecture, flowcharts, sequence, ER, Gantt, and charts — from natural-language descriptions, with SVG/PNG export. It can also persist a system as a version-controlled, queryable architecture knowledge graph, running fully offline in Cursor, Claude Code, and Windsurf without API keys.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to turn natural-language descriptions of systems, processes, and data into auto-laid-out, hand-drawn editable diagram files across 25 diagram types — architecture, flowcharts, sequence, swimlanes, ER models, Gantt, timelines and charts — with optional natural-language revision and SVG/PNG export. It can also persist an architecture as a version-controlled knowledge graph that the AI can query and lint, running fully offline in Cursor, Claude Code and Windsurf without API keys.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Turns messy operational documents, SOPs, incident playbooks, spreadsheets, and business communications into faithful, source-grounded visual workflows directly inside Claude Desktop, Cursor, Zed, Windsurf, or any MCP-compatible agent. It also supports revising existing workflow graphs while preserving citation integrity and retrieving stored visual artifacts by ID.
    9
    ISC
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources