AI NetCafé
Server Details
Compare LLMs on one prompt and get every answer with its actually-metered cost and latency — not vendor list prices. Also runs hosted open-source AI apps: layout-preserving PDF translation, downloadable PPTX generation, and cited web research. Nine tools over Streamable HTTP. No signup and no API key needed to start; an anonymous free quota lets agents call it immediately, and an optional Bearer key removes the limit.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 34 tools
Most tools target clearly distinct actions and resources, and overlapping areas like table handling or model comparison are separated by well-defined descriptions. A few pairs could still be confused at a glance—model_costs vs list_models, extract_invoices vs extract_statement—but the descriptions resolve the boundaries.
The large majority of tools follow a consistent verb_noun snake_case pattern: web_search, create_task, extract_tables, merge_tables, render_diagram. Exceptions like ai_visibility, china_reachability, model_costs, json_yaml, and what_can_you_do break the pattern but are still readable and memorable.
At 34 tools this set is well beyond the typical well-scoped range, and the tool surface spans many unrelated domains: web research, PDF processing, spreadsheet wrangling, finance, model comparison, app hosting, scheduling, memory, and developer utilities. Each tool may earn its place individually, but as a single cohesive server the count feels sprawling.
The set has serious gaps: check_job references deep_research, translate_pdf, and make_slides as job-producing tools, but those tools are absent from the exposed surface. App lifecycle is also incomplete—build_app creates apps but there is no update or delete tool—and the lack of a native PDF-to-text tool beyond extract_tables makes certain workflows require workarounds.
Available Tools
34 toolsai_visibilityCan AI assistants read and cite this site?ARead-onlyIdempotentInspect
Audit a URL for AI visibility: which AI crawlers robots.txt actually allows (parsed per user-agent group, not keyword-matched), whether llms.txt / sitemap / JSON-LD / canonical exist, and how much real text an agent gets without running JavaScript. Returns a score plus the specific fixes, ordered by impact.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Page to audit, e.g. https://example.com |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and idempotent behavior. The description adds valuable behavioral details: parsing robots.txt per user-agent group (not keyword-matched), checking for specific files, calculating real text without JavaScript, and returning an ordered list of fixes. This goes beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first enumerates the audit components, the second states the output. It is front-loaded with the core purpose and contains no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers what the tool checks (robots.txt, visibility files, text accessibility) and what it returns (score + fixes). With an output schema present, additional return-value detail is unnecessary. The description is complete for a complex audit tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'url' is fully documented in the schema with 'Page to audit'. The description doesn't add additional meaning beyond the schema, but with 100% coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Audit a URL for AI visibility' with specific resources (robots.txt, llms.txt, sitemap, JSON-LD, canonical). It distinguishes from sibling tools like fetch_page or web_search by detailing the audit's unique checks and output (score + fixes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case clear: determine which AI crawlers can access a site and what visibility signals exist. It does not explicitly mention when not to use it or name alternatives, but the specificity of the audit itself provides clear context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask_modelRun a prompt on a specific LLMAInspect
Send a prompt to one specific large language model and get the answer plus its exact cost in USD. Useful when you want a second opinion from a different model, or a cheaper model for a bulk subtask. Example — GET https://ainetcafe.com/t/ask_model?prompt=Say+hi&model=deepseek-v4-flash
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model id. Call list_models for available ids. Defaults to a cheap capable model. | |
| prompt | Yes | The prompt to send. | |
| system | No | Optional system instruction. | |
| max_tokens | No | Optional output cap. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| answer | No | |
| cost_usd | No | |
| latency_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
All annotations are false, so the description bears the disclosure burden. It does reveal a key behavioral trait: the call returns the exact USD cost, implying the operation is paid and not free. However, it does not mention billing side effects, duration of the call, or what happens on failure/rate-limit; with no annotation support, these are notable gaps, though the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences plus a one-line example. The primary action is front-loaded, the use cases are compact, and no sentence is wasted on filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple four-parameter tool with an existing output schema and full parameter descriptions, the definition covers what it does, when to use it, and a concrete invocation example. No critical information needed to call the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters clearly. The description's example URL illustrates how prompt and model map to query parameters and notes a default model, but it adds little 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Send a prompt to one specific large language model and get the answer plus its exact cost in USD.' The 'one specific' qualifier clearly distinguishes this from compare_models and other sibling tools. The title reinforces the same function, so there is no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete use cases: 'when you want a second opinion from a different model, or a cheaper model for a bulk subtask.' It does not explicitly list alternatives or say when not to use it, but the 'specific model' phrasing implies a contrast with model-comparison or cost-lookup tools. This is clear context, just without formal exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_appBuild and deploy a web app from a descriptionAInspect
Turn one plain-language description into a LIVE single-page web tool: code is generated, deployed to managed hosting with HTTPS, and listed — you get the public URL in ~1-2 minutes. Best for tool-style apps: calculators, converters, checklists, timers, generators, small games. Async — poll with check_job. Example — tools/call build_app {"description":"a tip calculator web app"} → poll check_job
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional short app name (defaults to the description). | |
| refine | No | Slug of an app you built earlier (e.g. "u-1a23e679") to modify instead of building from scratch — describe only the change in `description`. | |
| visibility | No | "public" (default, listed in the store) or "unlisted" (URL-only, not in the store). | |
| description | Yes | What the tool should do, in any language. Be specific about inputs/outputs. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations offer no safety info (all false), so the description carries the burden. It transparently discloses async behavior ('Async — poll with check_job'), latency ('~1-2 minutes'), deployment details (managed hosting with HTTPS), and listing. It does not mention failure modes or resource limits, which would warrant a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the primary action and outcome, then usage guidance, and finally an async note with a concrete example. Every sentence earns its place with no unnecessary filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the availability of an output schema, the description appropriately focuses on the lifecycle: what it does, what you get, time estimate, async workflow, and ideal use cases. It covers the key aspects an agent needs to decide and invoke correctly, including an example call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, so the baseline is 3. The description adds only a single example invocation for the 'description' parameter and does not elaborate on 'name', 'refine', or 'visibility'. It does not meaningfully enhance the schema's parameter explanations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Turn one plain-language description into a LIVE single-page web tool' and details the outcome (code generated, deployed to HTTPS hosting, listed, public URL). It distinguishes itself from siblings by specifying its niche ('Best for tool-style apps') and the async polling pattern with check_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage context: best for 'calculators, converters, checklists, timers, generators, small games' and instructs to poll with check_job after invocation. However, it does not explicitly say when not to use or name alternative tools like get_app for existing apps, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_jobCheck a long-running jobARead-onlyIdempotentInspect
Get the status or result of a job started by deep_research, translate_pdf, or make_slides. Poll every 15-30 seconds until status is "done" or "error". While work is pending, follow retry_after_seconds and next_action; when complete, prefer structured_result when present. Example — GET https://ainetcafe.com/t/check_job?job_id=
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job_id returned when the task was started. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | No | |
| error | No | |
| job_id | Yes | |
| result | No | |
| status | Yes | |
| is_terminal | No | |
| next_action | No | |
| structured_result | No | |
| retry_after_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds critical behavioral context: the polling interval, the terminal statuses, the handling of intermediate responses (retry_after_seconds, next_action), and the preference for structured_result. It also includes a concrete GET URL example, fully disclosing the interaction pattern.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense but not verbose, delivering purpose, polling guidance, response handling, and an example in three sentences. Each sentence earns its place, and the example is clearly separated for easy scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values are already specified, so the description correctly focuses on the asynchronous polling protocol. It covers when to call, how to poll, what to do while pending, what to do on completion, and the exact endpoint format, making it fully self-contained for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents job_id (100% coverage), so the baseline is 3. The description enhances this by specifying that the job_id comes from deep_research, translate_pdf, or make_slides, and by showing its placement in the URL example, which adds context beyond the schema's generic 'returned when the task was started'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb ('Get'), the resource ('the status or result of a job'), and the originating tools (deep_research, translate_pdf, make_slides). This differentiates it from sibling creation tools like make_badge or render_diagram, which are all about generating artifacts rather than checking job status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: poll every 15-30 seconds until status is 'done' or 'error', follow retry_after_seconds and next_action while pending, and prefer structured_result when complete. It also indicates the tool is for jobs started by specific tools, which serves as both an inclusion and exclusion criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
china_reachabilityTest if a URL is reachable from mainland ChinaARead-onlyIdempotentInspect
Fetch a URL from a real mainland-China network egress and report HTTP status, latency and China DNS resolution. Answers "is my site/API usable from China?" with a measurement instead of a guess — you cannot get this from a VPS abroad.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full URL to test, e.g. https://example.com |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds meaningful context: it performs a live fetch from a real China egress, reports specific metrics, and frames the result as a measurement rather than a guess. No contradictions with annotations. It does not mention rate limits or failure behavior, but annotations cover safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action verb, and every word earns its place. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (1 parameter, output schema provided). The description fully explains the tool's purpose, the measurement approach, and the key limitation of alternatives. Return values are already covered by the output schema, so no further detail is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the 'url' parameter described as 'Full URL to test, e.g. https://example.com'. The description restates the URL-fetching concept but doesn't add new parameter-level detail or format constraints beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Fetch a URL from a real mainland-China network egress') and the resource/scope ('URL reachability from China'), with measurable outputs (HTTP status, latency, DNS resolution). This distinguishes it from all sibling tools, which are unrelated to network testing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies when to use the tool: to answer 'is my site/API usable from China?' and explicitly notes that a VPS abroad cannot provide this measurement. While it doesn't name a specific alternative tool, it gives strong contextual guidance and an implicit exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clean_tableMessy CSV → tidy CSV, with a report of every changeARead-onlyIdempotentInspect
Tidies a spreadsheet export: removes duplicate rows, trims whitespace (half-width and full-width — Chinese exports are full of ), unifies the half-dozen ways a cell can say "empty" (NA / null / - / 无), drops empty rows and columns, and can split one column into several. Returns the cleaned CSV plus exactly what changed: rows in, rows out, duplicates removed, cells trimmed per column. It can also transpose rows/columns and unpivot a wide table into a long one. The row arithmetic is verified in code — if in − removed ≠ out, the response says so instead of handing back a table nobody can check. Use when a CSV came out of Excel or an export and needs cleaning before analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| ops | No | Comma-separated, default "dedupe,trim,drop_empty,unify_blank". Also available: split_column, transpose (swap rows/columns), wide_to_long (unpivot a wide table into the long format analysis tools expect). | |
| url | No | Link to the CSV. Provide this or text. | |
| keep | No | For wide_to_long: comma-separated id columns to keep as-is. Defaults to the first column. | |
| text | No | The CSV content itself. Provide this or url. | |
| split_by | No | Separator to split on, default a single space. | |
| split_column | No | Column name to split (requires ops to include split_column). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds substantial behavioral context: it returns a cleaned CSV plus a report of changes ('rows in, rows out, duplicates removed, cells trimmed per column'), and it verifies row arithmetic, explicitly stating it reports inconsistencies instead of returning an unchecked table. This goes well beyond the annotations, which only cover safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed but every sentence serves a purpose: listing operations, describing the report, explaining verification, additional transformations, and the use case. It's front-loaded with the main function and not wasteful, though it is a bit long due to the tool's multiple capabilities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, operations, return value, verification, and use case, which is complete for an agent to select and invoke the tool correctly. The output schema and annotations fill remaining gaps (exact return structure and safety profile). No significant missing context, though it doesn't address edge cases like conflicting parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented in the input schema, including valid ops values. The description reinforces the purpose of split_column and wide_to_long but doesn't add meaningfully new parameter-level semantics beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Tidies a spreadsheet export' and enumerates specific operations (removes duplicate rows, trims whitespace, unifies empty values, splits columns, transposes, unpivots). It distinguishes itself from sibling tools like diff_tables or extract_tables by focusing on cleaning and transforming CSV data for analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'Use when a CSV came out of Excel or an export and needs cleaning before analysis.' It also explains why wide_to_long is useful ('long format analysis tools expect'), but it doesn't explicitly mention when not to use the tool or name alternative tools for exclusions, so it's a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_modelsRun the same prompt on several models and compareAInspect
Run one prompt across multiple LLMs in parallel and return every answer side by side with its real measured cost and latency. This answers "which model should I actually use for this kind of task?" with data instead of guesswork — useful before committing a long job to an expensive model. Example — GET https://ainetcafe.com/t/compare_models?prompt=Explain+CAP+theorem+in+1+line
| Name | Required | Description | Default |
|---|---|---|---|
| models | No | Model ids to compare (2-5). Defaults to a cheap/mid/strong spread. | |
| prompt | Yes | The prompt to send to every model. | |
| system | No | Optional system instruction applied to all. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| summary | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that execution is parallel, answers are returned side-by-side, and cost/latency are real measured values, not estimates. This adds behavioral detail beyond the annotations, though it doesn't mention potential external API costs or whether results persist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences: the core behavior, the use case, and an example. It is front-loaded and every sentence earns its place without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, full parameter coverage in the input schema, and a description that explains what the tool does, when to use it, and what it returns, the definition is complete for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters with clear descriptions, including the models default and the system prompt behavior. The tool description adds little parameter-specific detail beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise action: 'Run one prompt across multiple LLMs in parallel and return every answer side by side with its real measured cost and latency.' This clearly distinguishes it from siblings like ask_model, list_models, and model_costs by focusing on multi-model comparison with measured cost and latency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: 'useful before committing a long job to an expensive model' and frames the tool as answering 'which model should I actually use for this kind of task?' This is helpful, though it doesn't explicitly name alternatives or state when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskSchedule a recurring task that runs on our serversAInspect
Create a task that runs on a schedule in our cloud — you do not keep anything running. It only notifies you when the result actually changes. Kinds: watch_page (Watch a web page and report when its content changes); daily_answer (Re-run a web-researched question on a schedule and report when the answer changes); watch_reachability (Track whether a site stays reachable from mainland China); pipeline (Run one of your production lines (create_pipeline) on a schedule; every run leaves a proof-carrying work order). Needs a workspace token (?w=ws_... on your MCP URL) so you can manage it later.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | watch_page | daily_answer | watch_reachability | pipeline | |
| input | Yes | The URL to watch, or the question to re-research. | |
| notify_url | No | Optional https webhook to POST results to when they change. | |
| interval_seconds | No | How often to run. Minimum 900 (15 min), default 3600. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond the annotations, such as 'It only notifies you when the result actually changes' and the requirement for a workspace token. These align with the readOnlyHint=false and non-destructive nature, providing a clear picture of side effects and conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured, using semicolons to separate the kinds efficiently. It packs essential information (purpose, kinds, notification behavior, token requirement) without unnecessary fluff, earning a high score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the tool's primary function, key parameters, and operational requirements. It does not require an output schema explanation, and the provided text is sufficient for an agent to correctly invoke the tool across all four task kinds.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions are fully covered (100%) and the description enriches them by explaining the relationship between 'input' and the chosen 'kind' (URL vs. question). It also provides practical details like the minimum and default for interval_seconds, adding context that the raw schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool creates a scheduled task on the server and enumerates the four supported kinds, each with a concise explanation. It distinguishes the action from siblings like list_tasks or delete_task, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly implies when to use this tool (when scheduling a recurring task) and includes the important requirement of a workspace token for later management. It also clarifies that the task is server-side, removing any ambiguity about client involvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_taskDelete a scheduled taskADestructiveIdempotentInspect
Stop and remove a scheduled task and its run history.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | From list_tasks. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and idempotent behavior, but the description adds useful context: it also removes run history and stops the task, implying termination of active runs. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence that immediately conveys the action and scope. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter, output schema, and annotations covering safety, the description is complete. It explains the action and the additional effect on run history, leaving no critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with task_id described as 'From list_tasks.' The description adds no additional parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'remove' and the resource 'scheduled task', and further specifies scope by mentioning 'run history'. This distinguishes it from siblings like create_task and list_tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative guidance is provided. The description implies usage for stopping and removing a task, but does not state exclusions or reference sibling tools. The schema hint 'From list_tasks' is a minor prerequisite hint, but the description itself lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diff_tablesTwo tables → what differs (the VLOOKUP job, no amounts needed)ARead-onlyIdempotentInspect
Matches rows across two CSVs on a key column and reports three things: keys only in A, keys only in B, and keys in both whose other columns disagree — naming the exact column and both values. Unlike reconcile_ledger this needs no amount column, so it also fits name lists, inventory counts, permission tables, and any "these two exports should match" check.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Column that identifies a row, e.g. id. | |
| url_a | No | Link to the first CSV. | |
| url_b | No | Link to the second CSV. | |
| text_a | No | Or the first CSV content directly. | |
| text_b | No | Or the second CSV content directly. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral context beyond these by explaining the exact matching semantics and that it reports which column differs and both values. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, then followed by usage guidance. Every sentence earns its place, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are already specified. The description provides all necessary operational context: the matching algorithm, output categories, and appropriate use cases. It is fully complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter clearly described (e.g., 'Column that identifies a row', 'Link to the first CSV'). The tool description does not need to add parameter-level detail since the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Matches rows across two CSVs on a key column' and specifies the exact three outputs (keys only in A, only in B, and mismatches with column names and values). It also distinguishes itself from the sibling reconcile_ledger by explicitly noting it needs no amount column.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Unlike reconcile_ledger this needs no amount column' and lists appropriate use cases ('name lists, inventory counts, permission tables, and any "these two exports should match" check'). This provides clear when-to-use guidance and names an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diff_textWhat changed between two texts, line by lineARead-onlyIdempotentInspect
Returns which lines were added and which were removed, with line numbers — computed with a longest-common-subsequence, not guessed by a model. Use to compare two versions of a config, a document, or any command output, instead of asking an LLM to eyeball two blobs and hoping it notices.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | The first (before) text. | |
| b | Yes | The second (after) text. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool readOnly and idempotent. The description adds valuable behavioral context by disclosing the LCS algorithm and emphasizing that results are deterministic ('not guessed by a model'). This goes beyond the structured annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary outcome, then the use case and rationale. Every sentence contributes essential information with zero redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-string tool with full schema coverage, rich annotations, and an output schema, the description provides complete context: what it returns, how it computes it, and when to use it. No additional explanation of return values is needed given the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter explicitly described as 'first (before) text' and 'second (after) text'. The description reinforces the directional comparison but adds little new parameter-level meaning beyond the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Returns which lines were added and which were removed, with line numbers', clearly specifying the verb and output. The phrase 'computed with a longest-common-subsequence, not guessed by a model' and title 'line by line' differentiate it from sibling tools like diff_tables and from ad-hoc LLM comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use to compare two versions of a config, a document, or any command output'. It also names the alternative to avoid: 'instead of asking an LLM to eyeball two blobs and hoping it notices', which gives both a positive use case and a clear avoid-this-approach.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_invoicesA batch of invoices → one ledger-ready table (arithmetic-checked)ARead-onlyIdempotentInspect
Give it up to 20 invoice URLs (PDF or page images) and get back one table ready to post: number, date, seller, buyer, net / tax / gross, currency. Every row is checked in code — net + tax must equal gross — and the batch total is re-added independently, so a row the model misread is flagged with the exact difference instead of quietly landing in your books. Mixed currencies get no batch total on purpose: adding them together would be an accounting error. CSV is UTF-8 with BOM so Excel opens it right.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Invoice URLs — comma-separated, or pass an array. Up to 20 per call. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent), the description discloses important behaviors: arithmetic validation (net+tax=gross), independent batch total checking, flagging of misread rows with exact differences, and deliberate omission of batch totals for mixed currencies. It also explains CSV encoding for Excel compatibility. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with purpose, and every sentence adds value: purpose, validation details, edge-case handling, and output format. No fluff or repetition of schema/annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter, high schema coverage, and the presence of an output schema, the description fully covers input format, validation logic, edge cases, and output encoding. It provides enough context for an agent to select and invoke the tool correctly without needing additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides full coverage for the 'urls' parameter. The description adds meaning by specifying accepted input types (PDF or page images) and reinforcing the 20-item limit, which goes slightly beyond the schema but is not redundant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: take up to 20 invoice URLs and return a ledger-ready table with specific fields (number, date, seller, buyer, net/tax/gross, currency). This distinguishes it from siblings like extract_statement or extract_tables, which target different document types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (invoice extraction) and provides constraints (up to 20 URLs, PDF or page images, mixed-currency behavior). It does not explicitly name alternative tools or state when not to use it, but the context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_statementBank statement PDF → transactions + reconciliation checkARead-onlyIdempotentInspect
Turn a bank statement or transaction PDF into a clean transaction table (JSON + CSV), then cross-check it: opening + credits - debits must equal the stated closing balance. If it does not balance you get the exact difference and which row the running balance first breaks at — so you know whether the table is safe to use for accounting. Text-layer PDFs only (scanned images not yet supported).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL of the statement PDF. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent, non-destructive), the description reveals valuable behavioral traits: the reconciliation cross-check formula, the output formats (JSON + CSV), and the exact failure feedback (difference and row where running balance breaks). This gives the agent a strong grasp of what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the primary action and output, the second details the reconciliation check and failure reporting, followed by a clear limitation. Every sentence contributes, and the key info is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter, robust annotations, and an output schema present, the description covers the necessary context: the input, the processing logic, the return behavior, and an explicit limitation. There are no significant gaps for agent selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the only parameter (`url` with description). The description adds minimal extra meaning—only implying the URL must point to a text-layer PDF—but the baseline of 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Turn... into') and names the exact resource: 'a bank statement or transaction PDF'. It clearly distinguishes from sibling tools like extract_tables by focusing on bank-specific reconciliation rather than generic table extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implicitly tells when to use: for bank statements requiring a reconciled transaction table, and explicitly states the constraint 'Text-layer PDFs only (scanned images not yet supported)' as a when-not. However, it doesn't explicitly name alternatives for scanned PDFs or generic table extraction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_tablesPDF tables → structured rows (with schema alignment)ARead-onlyIdempotentInspect
Extract tables from a PDF into structured rows (JSON + CSV). Pass fields to force a fixed set of columns — that aligns a pile of documents that each name their headers differently into one consistent table. Rows the model was unsure about are flagged rather than guessed. Text-layer PDFs only.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL of the PDF. | |
| fields | No | Optional comma-separated target columns, e.g. "invoice_no,supplier,date,amount". Omit to infer from the header. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description adds valuable behavioral traits: 'Rows the model was unsure about are flagged rather than guessed' and the limitation 'Text-layer PDFs only.' This gives insight into output quality and compatibility without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core function, followed by the fields explanation, then constraints and behavioral note. Every sentence adds value with no redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and an existing output schema, the description covers purpose, parameter usage, limitations, and uncertainty handling. It is complete enough for an agent to invoke the tool correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers both parameters with 100% coverage, so the baseline is 3. The description adds some context for the fields parameter by explaining its purpose (aligning differently-named headers), but does not introduce new syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extracts tables from a PDF into structured rows (JSON + CSV), specifying the resource (PDF) and output format. It distinguishes from siblings like pdf_to_markdown or extract_statement by emphasizing structured tabular data and the option to force a fixed column set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool, especially for aligning documents with inconsistent headers by passing fields. It also sets a constraint with 'Text-layer PDFs only,' implying it should not be used for scanned/image PDFs, but it does not explicitly name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_pageFetch a web page as clean MarkdownARead-onlyIdempotentInspect
Fetch any public URL and return LLM-ready clean Markdown (rendered via Crawl4AI, handles JS pages). Use after web_search to read a source, or to ingest any page for analysis. Example — GET https://ainetcafe.com/t/fetch_page?url=https://example.com
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The page URL to fetch. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior. The description adds useful behavioral context beyond annotations: it is rendered via Crawl4AI, handles JavaScript pages, and only works for public URLs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The purpose is front-loaded, the rendering behavior is included, and the example is helpful. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one fully documented parameter, an output schema present, and annotations covering safety, the description supplies the remaining context an agent needs: when to use it, what it returns, and that it handles JS pages. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the url parameter. The description adds the qualifier 'public URL' and a concrete example, but does not significantly extend parameter meaning beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fetch'), a specific resource ('any public URL'), and the output format ('LLM-ready clean Markdown'). It also differentiates from siblings by noting JS handling and positioning itself as the after-web_search reading tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context: 'Use after web_search to read a source, or to ingest any page for analysis.' It clearly tells an agent when to invoke this tool, though it does not explicitly mention when not to use it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_appGet details of one applicationARead-onlyIdempotentInspect
Full details of one hosted application: what it does, how to use it, measured benchmark scores, source repository, and the URL a human can open to run it. Example — GET https://ainetcafe.com/t/get_app?slug=
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Application slug, from list_apps. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| slug | Yes | |
| open_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only and idempotent behavior. The description adds value by disclosing the specific categories of information returned and providing a concrete example. It does not mention any side effects, which is consistent with the read-only annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence followed by a useful example. It avoids redundancy and front-loads the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single parameter, full schema coverage, and an output schema present, the description sufficiently covers what the tool does, how to call it, and what to expect. The example and parameter sourcing guidance make it complete for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the slug parameter, including its source (list_apps). The description reinforces this with the example URL, but doesn't add new semantic meaning beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns full details of one hosted application, listing specific content (what it does, usage, benchmarks, repo, URL). This distinguishes it from siblings like list_apps (which lists apps) and build_app (which builds).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after list_apps, as the slug parameter is explicitly sourced from list_apps. It gives an example HTTP request showing how to invoke it. However, it doesn't explicitly state when not to use this tool vs checking jobs or building apps, though the context makes it fairly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_runsSee what a scheduled task has producedARead-onlyIdempotentInspect
Recent runs of one scheduled task: what it returned, whether the result changed, and what each run cost.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many recent runs, max 20, default 5. | |
| task_id | Yes | From create_task or list_tasks. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the safety profile is established. The description goes beyond this by clarifying the scope (one scheduled task) and the behavioral/return dimensions—returned value, change flag, and cost—that an agent can expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence conveys the tool's purpose, scope, and output highlights with no filler. It is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only fetch with only two parameters, full schema coverage, strong annotations, and an output schema, the definition is sufficient for correct invocation. The only minor gap is no explicit ordering statement, but that is likely covered by the output schema and is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage: task_id says it comes from create_task or list_tasks, and limit specifies count, maximum, and default. The description adds framing ('recent runs') but does not need to reinterpret parameters, so it earns the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource—'recent runs of one scheduled task'—and enumerates the key output facets: return value, result-change indicator, and cost. It lacks an explicit verb but the name and title supply 'get', and the sibling tools are unrelated search/help tools, so no direct sibling confusion exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: an agent can infer this tool is for inspecting recent execution history of a single scheduled task. However, there is no explicit guidance about when not to use it or which alternative should handle broader task/task-run queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
json_yamlJSON ↔ YAML, either direction, auto-detectedARead-onlyIdempotentInspect
Converts JSON to YAML or YAML to JSON. It works out which one you gave it, so you do not have to say. A parse failure comes back with the parser message instead of silently producing something that looks fine and is not. Use when a config, a CI file, or a Kubernetes manifest needs to be in the other format.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Optional: "json" or "yaml" to force the direction. | |
| text | Yes | The JSON or YAML content. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations already indicate readOnlyHint and destructiveHint, the description adds valuable behavioral context: auto-detection of direction and safe error handling (returns parser message instead of silently producing wrong output). This goes beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each serving a purpose: action, auto-detection, error behavior, and use cases. It is front-loaded and free of redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple conversion tool, the description covers the operation, auto-detection, error handling, and example use cases. With output schema present and annotations covering safety, nothing significant is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining that 'to' is optional because auto-detection handles the direction, and it clarifies that 'text' contains the content. This supplements the schema effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Converts JSON to YAML or YAML to JSON' with a specific verb and resource. It also distinguishes itself from sibling tools like validate_json by focusing on conversion rather than validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases: 'Use when a config, a CI file, or a Kubernetes manifest needs to be in the other format.' It does not explicitly mention alternatives, but the context is clear and sufficient for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jwt_decodeSee inside a JWT — header, payload, and whether it has expiredARead-onlyIdempotentInspect
Decodes the header and payload of a JWT and reports issued-at / expiry as readable timestamps plus seconds remaining. The signature is NOT verified and the response says so — decoding is fine for debugging a token you already hold, but never treat these values as proof of anything; verification needs the secret and belongs in your own service.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The JWT string. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent, but the description adds crucial context: the signature is NOT verified, the response explicitly says so, and decoding should not be treated as proof. This goes beyond basic annotations and is valuable for safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: the first states the core function, the second adds the critical limitation, and the third reinforces safe usage. No wasted words and information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple one-parameter schema and presence of an output schema, the description fully covers the tool's behavior including output contents (timestamps, seconds remaining) and the security caveat. It is complete for a debugging tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage with a clear description for the single token parameter. The description does not add further parameter-level detail, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool decodes JWT header and payload, reports timestamps and seconds remaining, and explicitly notes the signature is not verified. This is specific and distinguishes it from any other sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says decoding is fine for debugging a token you already hold, and warns never to treat values as proof, directing verification to a service with the secret. This provides clear when-to-use and when-not-to-use context without needing a named sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_appsList hosted open-source AI applicationsARead-onlyIdempotentInspect
List the open-source AI applications hosted and ready to run at AI NetCafé (ainetcafe.com). Each one normally requires local setup (Docker/Python + your own model API key); here they run pre-configured. Use this to find a tool for a task like translating a PDF with formulas intact, generating a PowerPoint file, polishing an academic paper, or running an autonomous research report. Do not call this first when the request already clearly matches compare_models, translate_pdf, deep_research, or make_slides; call that task tool directly. Example — GET https://ainetcafe.com/t/list_apps
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional filter, e.g. "office", "research", "chat". |
Output Schema
| Name | Required | Description |
|---|---|---|
| apps | Yes | |
| try_in_browser | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds useful context about the apps being pre-configured (no local setup/API key needed) and provides an example URL. While it doesn't detail return structure, the output schema exists, so the description sufficiently complements the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences plus an example URL. Each sentence serves a distinct purpose: describing the tool, giving example use cases, and excluding cases where other tools should be used. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple list tool with one optional parameter, an output schema, and full annotations. The description covers purpose, usage context, and exclusions comprehensively. Nothing significant is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single optional 'category' parameter, including examples. The description doesn't add parameter-specific detail, but given perfect schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists open-source AI applications hosted at AI NetCafé, with pre-configured setup. It distinguishes itself from task-specific sibling tools by naming alternatives like compare_models, translate_pdf, deep_research, and make_slides, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use this to find a tool for a task like...' and 'Do not call this first when the request already clearly matches...' This tells the agent exactly when to use this tool and when to use more direct alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsList available models with pricesARead-onlyIdempotentInspect
List every model callable through AI NetCafé with its input/output price per million tokens, so you can pick by cost as well as capability. Example — GET https://ainetcafe.com/t/list_models
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Optional filter. "free" models run on the anonymous quota; "premium" needs your own AllRouter key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| models | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior, so the safety profile is well established. The description adds useful scope detail ('every model callable') and the pricing unit (per million tokens), plus an example endpoint. It does not mention pagination or response format, but for a simple read-only list with an output schema, the added context is adequate but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence states the core function and purpose, and the second provides a concrete example endpoint. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full input schema, an output schema, and safety annotations, the remaining burden on the description is low. The description clearly communicates the listing scope and pricing detail, and the output schema will handle return values. For a low-complexity tool of this kind, nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single optional 'tier' parameter fully documented via its enum and description. The tool description does not mention the 'tier' filter at all, so it adds no extra meaning beyond the schema. Since the schema carries the parameter semantics completely, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: lists every callable model with input/output price per million tokens. The verb 'List' and the resource 'models' are specific and unambiguous. However, it does not explicitly distinguish itself from sibling tools like compare_models or model_costs, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'so you can pick by cost as well as capability' provides an implied use case, indicating when an agent might want to call this tool. It does not explicitly mention alternatives or state when not to use it, leaving the agent to infer the appropriate context from the sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksList your scheduled tasksARead-onlyIdempotentInspect
Show the scheduled tasks on this workspace, when each runs next, how many times it has run and what it has cost so far.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds useful behavioral context by specifying exactly what the call returns (next run, run count, cost), which goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that states the resource and then lists the key output attributes. It is concise, complete, and contains no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list operation with rich annotations and an output schema, the description is fully sufficient. It explains what the list contains and leaves no obvious gap for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to clarify about arguments. The baseline of 4 applies because parameter semantics are not relevant here; the schema and description leave no ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Show') and a precise resource ('scheduled tasks on this workspace'), and enumerates the concrete fields returned: next run time, run count, and cost. This clearly distinguishes it from sibling tools like create_task, delete_task, and get_task_runs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage context: use this to see scheduled tasks and their execution summaries. However, it does not explicitly state when to choose this over alternatives such as get_task_runs, create_task, or delete_task, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_tablesSeveral CSVs → one, columns unioned, row counts provenARead-onlyIdempotentInspect
Combines up to 20 CSVs into a single table. Headers do not have to match: columns are unioned and a file missing a column contributes blanks for it, so rows never shift silently — the failure mode that makes hand-merged spreadsheets untrustworthy. Reports each source file row count and checks in code that they sum to the merged total. Use for monthly exports, per-store sheets, or any set of files with the same subject but drifting headers.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | No | Comma-separated CSV links, at least two. | |
| texts | No | Or pass the CSV contents directly as an array. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive. Description adds valuable context: column union behavior, blanks for missing columns, row-count verification, and the failure mode it prevents. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each packed with purpose, behavior, and usage. No filler, front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a merge tool with output schema and comprehensive annotations, the description fully covers behavior, edge cases, and usage scenarios. Includes row-count verification, making the output trustworthiness explicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions (100% coverage). Description adds the 'up to 20' limit and implies either urls or texts can be used, providing extra constraint context. Baseline 3 elevated to 4 for this addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it combines up to 20 CSVs into a single table, with specific details about column unioning and row-count verification. Distinguishes from sibling tools like diff_tables by focusing on merging rather than comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases ('monthly exports, per-store sheets, or any set of files with the same subject but drifting headers'). Lacks explicit exclusions or named alternatives, so not a 5, but clear context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_costsMeasured per-call cost across modelsARead-onlyIdempotentInspect
What one call actually costs on each model, measured. Vendors publish per-million-token list prices, but a call's cost depends on how many tokens the model chooses to emit — models differ by an order of magnitude on the same prompt. standard_bench sends an IDENTICAL prompt to every model, so the difference is the model, not the workload — use that to choose a model before bulk work. production_mixed is real traffic and is NOT comparable across models. Free to cite, CC BY 4.0. Example — GET https://ainetcafe.com/t/model_costs
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Measurement window in days (default 30). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate read-only, idempotent, non-destructive behavior. The description adds meaningful behavioral context: it explains the measurement methodology, the identical-prompt benchmark, the non-comparability of production_mixed, and the CC BY 4.0 license. This goes beyond what annotations provide without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core answer, then explains why the measurement matters, gives comparability warnings, states licensing, and provides an example endpoint. Every sentence adds value; nothing is redundant or wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one optional parameter) and the presence of an output schema, the description is complete enough. It tells the agent what is measured, how to use it, what not to compare, and how to cite it. No critical operational or interpretational detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the only parameter (days), so the schema already explains the meaning and default. The description provides no additional parameter-level details, which is acceptable given the high schema coverage but earns only the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly communicates that the tool reports measured per-call costs across models, not vendor list prices. It defines the resource and the unique angle ('measured'), but doesn't explicitly contrast itself with sibling tools like compare_models or list_models, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage guidance: use standard_bench data to choose a model before bulk work, and avoid treating production_mixed as comparable across models. It doesn't name alternative tools or spell out when not to use this tool, but the dataset-level guidance effectively tells the agent how to interpret and apply the results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdf_to_markdownPDF or scanned page → structured MarkdownARead-onlyIdempotentInspect
Convert a PDF (or a scanned page image) into clean Markdown that keeps headings, lists and tables, and puts multi-column pages in the right reading order. Text-layer PDFs are read exactly and cost far less; images go through a vision model.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL of the PDF, or of a page image (png/jpg) for scanned documents. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds useful behavior beyond annotations: exact text-layer extraction, vision model for images, cost differences, and reading order handling. It exceeds the baseline and does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences. The first sentence states the core action and scope, the second clarifies behavior and cost. No filler or repetition, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and annotations are present, the description covers input types, formatting preservation, multi-column handling, and cost/processing differences. It lacks explicit mention of file size limits or language support, but the provided information is sufficient for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already defines the single 'url' parameter with 100% coverage and a clear description. The tool description does not add further parameter-specific detail beyond what the schema provides, so it meets the baseline but not more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts PDFs or scanned images into Markdown with formatting preservation and reading order. The verb 'convert' and specified output make the purpose unambiguous, and it distinguishes itself from sibling tools like extract_tables or translate_pdf.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use the tool (for text-layer PDFs vs scanned images) and notes cost differences, but does not explicitly name alternative sibling tools or exclusion criteria. This is more specific than generic guidance but stops short of explicit 'use this instead of X' instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recallRecall stored memoriesARead-onlyIdempotentInspect
Retrieve previously stored memories, optionally filtered by search query and/or project. Call at the start of work on a known project to restore context: why decisions were made, known fixes, preferences. Example — GET https://ainetcafe.com/t/recall?query=<what+to+remember> (needs a workspace/key for durable memory)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 8, up to 20). | |
| query | No | Optional search terms; omit to list the most recent. | |
| project | No | Optional project filter. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive behavior. The description adds a prerequisite (needs a workspace/key for durable memory) and explains the type of context it retrieves (decisions, fixes, preferences). The example GET request also illustrates the call style. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. It includes an example and a key prerequisite in two sentences, with no redundant information. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, when to use it, a usage example, and an authentication prerequisite. With full parameter documentation, an output schema, and annotations, the description is sufficiently complete. It also positions the tool well relative to its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides detailed descriptions for all three parameters (limit, query, project), so the description adds little beyond restating that filtering is optional and showing an example that uses 'query.' With 100% schema coverage, the baseline is 3, and the description does not significantly enrich parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Retrieve previously stored memories,' a specific verb and resource. It also specifies optional filtering by search query and project, and gives a concrete use case (restoring context at the start of work). This clearly distinguishes it from sibling tools 'remember' and 'forget.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to call it 'at the start of work on a known project' to restore context, which is clear when-to-use guidance. It does not explicitly name alternatives, but the phrasing and sibling names imply that 'remember' is for storing and 'forget' for deleting. The example and note about needing a workspace/key add practical context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reconcile_ledgerTwo tables → what does not match (the VLOOKUP job), with the arithmetic proofARead-onlyIdempotentInspect
Reconciles two sets of records — your books against a bank, platform, or supplier statement. Matches rows on a key column, compares an amount column, and returns three lists: only in A, only in B, and same key but different amount. Amounts are compared in integer cents, so 0.1 + 0.2 never invents a phantom difference for someone to chase. The response also proves the result: the listed differences are re-added and must equal the gap between the two totals, checked in code. Use for month-end close, platform payouts vs orders, or any "these two numbers should agree and do not" problem. This is the job people do by hand with VLOOKUP or a groupby and then cannot prove they got right.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Column name to match rows on, e.g. order_id. | |
| url_a | No | Link to side A (e.g. your books). | |
| url_b | No | Link to side B (e.g. the statement). | |
| amount | Yes | Numeric column to compare, e.g. amount. | |
| text_a | No | Or the CSV content of side A directly. | |
| text_b | No | Or the CSV content of side B directly. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnly/read-only annotations by explaining the integer-cent precision ('0.1 + 0.2 never invents a phantom difference') and the built-in arithmetic proof ('the listed differences are re-added and must equal the gap'). These are valuable behavioral details not present in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose and then provides useful details. The final sentence about VLOOKUP, while informative, is slightly rhetorical and could be seen as non-essential, but overall the structure is clean and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (6 params, output schema present, rich annotations), the description fully covers the behavioral contract: what inputs do, how matching works, what the output looks like (three lists), and the verification step. No significant gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all six parameters with descriptions (100% coverage), so the baseline is 3. The description adds semantic meaning by explaining that the 'key' parameter is for row matching and 'amount' is compared in integer cents, plus clarifies the relationship between url/text inputs for each side.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Reconciles two sets of records' and details the matching and comparison logic, returning three specific lists. The title also frames it as an alternative to VLOOKUP, distinguishing it from sibling tools like diff_tables or merge_tables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use scenarios: 'Use for month-end close, platform payouts vs orders, or any "these two numbers should agree and do not" problem.' It does not explicitly mention alternative tools or when-not-to-use, but the VLOOKUP comparison implies the manual alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regex_testDoes this regex match — and what does it capture?ARead-onlyIdempotentInspect
Runs a regular expression against sample text and returns every match with its position and capture groups (named groups included). Use before wiring a pattern into code, instead of guessing whether the escaping survived the trip through JSON and the shell.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to test against. | |
| flags | No | Optional flags, e.g. "gi". Default "g". | |
| pattern | Yes | The regular expression, without surrounding slashes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, idempotentHint=true, destructiveHint=false, covering safety. The description adds behavioral detail about the return output: every match with position and capture groups, including named groups. This goes beyond annotations and provides useful context without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each earning its place. The first states the core action and output; the second gives a concrete usage scenario. No redundant phrasing or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's modest complexity, the description covers purpose, usage, and returns. An output schema exists to document the return structure, and annotations cover side-effect safety. The description is sufficient for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all three parameters (pattern, text, flags) with 100% coverage, including notes like 'without surrounding slashes' and default for flags. The description does not need to add much parameter-level detail, so a baseline of 3 is appropriate. It does hint at escaping concerns, but that's usage guidance, not parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb ('Runs') and identifies the resource ('regular expression against sample text') and outcome ('returns every match with its position and capture groups'). The title 'Does this regex match — and what does it capture?' reinforces the purpose and distinguishes this from sibling tools like diff_text or extract_*.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use before wiring a pattern into code, instead of guessing whether the escaping survived the trip through JSON and the shell.' It provides clear context and a concrete use case, though it does not name an alternative tool explicitly. This is sufficient guidance for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rememberStore a memory (persists across sessions; with a key, across machines & agents)AInspect
Persist a durable memory: an architecture decision, a stable user preference, a verified bug fix, or an important discovery. Anonymous callers get a small per-network memory pool; callers sending an AllRouter key (Authorization: Bearer sk-...) get a large pool shared across ALL their machines and agents — the same key on a laptop's Claude Code and a desktop's Codex recalls the same memories. Do not store secrets or raw logs. Example — tools/call remember {"content":"Deploy key rotates monthly"}
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Category; default "note". | |
| content | Yes | The memory itself, self-contained (≤2000 chars). | |
| project | No | Optional project name to scope recall later. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the burden of behavioral disclosure. It explains persistence across sessions and machines, the difference between anonymous callers and AllRouter key holders, the shared memory pool, and the security constraint. It does not detail overwrite/conflict behavior, but that is a minor gap for a simple write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Each sentence earns its place: purpose, memory-pool behavior, security warning, and a usage example. The description is front-loaded with the primary action and contains no redundant restatement of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and annotations are minimal, the description covers the main requirements: what to store, when not to store, auth modes, and cross-session/machine scope. It does not explicitly mention how to retrieve memories, but the sibling tool name 'recall' makes that clear. Overall it is sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by providing a concrete example and a semantic constraint on `content` ('Do not store secrets or raw logs') that goes beyond the schema's generic self-contained/≤2000 chars note. It doesn't elaborate on `kind` or `project`, but those are already fully documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Persist a durable memory' and enumerates specific content categories (architecture decision, stable user preference, verified bug fix, important discovery). This clearly states the verb and resource, and the title's 'Store a memory' contrasts directly with the sibling tool 'recall', so there is no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent what kinds of memories to store and explicitly warns 'Do not store secrets or raw logs,' creating a clear when-not boundary. It does not explicitly name the sibling 'recall' as the retrieval alternative, but the use case is well-scoped to durable, self-contained facts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_diagramRender a diagram from textARead-onlyIdempotentInspect
Turn diagram-as-code into an image: Mermaid, PlantUML, Graphviz/DOT, C4, Excalidraw and 20+ more (self-hosted Kroki). Returns a hosted SVG/PNG URL you can embed directly in Markdown or HTML. Example — GET "https://ainetcafe.com/t/render_diagram?source=graph TD;A--%3EB&format=png"
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Diagram language: mermaid (default), plantuml, graphviz, c4plantuml, excalidraw, blockdiag, erd… | |
| format | No | "svg" (default) or "png". | |
| source | Yes | The diagram source code (e.g. a Mermaid flowchart). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint=true and idempotentHint=true, the description adds useful context by stating the result is a hosted SVG/PNG URL and mentions 'self-hosted Kroki', indicating the underlying service. The example also illustrates the endpoint usage. It does not cover auth or rate limits, but the annotations reduce the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus an example, with the core purpose stated first. The example includes a realistic URL but is not overly verbose. Every clause adds information: supported formats, output type, and usage pattern.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and the description covers the essential aspects: what it does, supported formats, output format, and an example. The schema provides full parameter details, annotations cover safety, and an output schema exists. The description is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already has 100% description coverage for all three parameters, so the baseline is 3. The description adds value by providing a concrete example of the query-string format (source=...&format=png) and clarifying the supported diagram types. This helps an agent understand parameter syntax beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Turn diagram-as-code into an image' which clearly identifies both the action (rendering) and the object (diagram source text). It explicitly names supported languages (Mermaid, PlantUML, Graphviz/DOT, etc.), distinguishing it from sibling image-generation tools like text_to_image or make_chart. The purpose is unambiguous and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the tool is for diagram-as-code languages, giving context for when to use it. However, it does not explicitly contrast with alternatives or state when not to use it. An agent can infer use cases from the listed formats, but there are no direct exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transpile_sqlTranslate SQL between dialectsARead-onlyIdempotentInspect
Convert a SQL statement from one dialect to another — mysql, postgres, sqlite, tsql, oracle, snowflake, bigquery, redshift, spark, hive, presto, trino, duckdb, clickhouse, databricks, doris, starrocks and more. Deterministic parser (sqlglot), not an LLM: the same input always produces the same output, and syntax errors come back with the exact line and column. Use it when migrating queries between databases or debugging dialect-specific syntax.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The SQL statement (or several, separated by semicolons). | |
| read | No | Source dialect, e.g. "mysql". Omit to auto-detect from generic SQL. | |
| write | Yes | Target dialect, e.g. "postgres", "bigquery", "doris". |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent, but the description adds determinism ('same input always produces the same output') and exact error locations (line/column), going beyond structured metadata. This is valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each valuable: purpose, determinism, and use case. Front-loaded and no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers purpose, usage, determinism, and error behavior. Output schema covers return shape. For a conversion tool with rich annotations, it's sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters at 100%, so baseline is 3. The description adds a useful list of supported dialects for read/write, aiding parameter selection, though it doesn't add much beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states a specific verb ('Convert') and resource ('a SQL statement from one dialect to another') and lists many supported dialects. It distinguishes itself from sibling formatting tools by focusing on SQL dialect conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('when migrating queries between databases or debugging dialect-specific syntax'). It doesn't mention exclusions or alternatives, but the sibling tools are unrelated, so the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_jsonIs this JSON valid — and does it have the keys you need?ARead-onlyIdempotentInspect
Checks that text parses as JSON, and optionally that required keys are present with the right top-level types. Returns the specific violations, not just true/false. Checks required + types only — not full JSON Schema, and it says so rather than pretending. Use before feeding generated JSON into something that will fail on it.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The JSON to validate. | |
| schema | No | Optional JSON Schema (as JSON text) — required[] and properties[].type are checked. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, the description discloses important behavior: it returns specific violations rather than a boolean, and explicitly states the scope (required + types only) while disclaiming full JSON Schema support. This adds substantive context not captured by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each with a distinct purpose: what it does, what it returns, its limitations, and when to use it. No wasted words; the information is front-loaded and efficiently delivered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, one required) and has a full output schema, so the description does not need to explain return values. It covers the essential behavioral aspects (parsing, optional key/type checks, violation reporting, and scope limitations) adequately for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for both parameters, with descriptions for 'text' and 'schema' including details about required[] and properties[].type. The description adds only a mild restatement of the schema's functionality ('required keys are present with the right top-level types'), not significantly new meaning, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Checks that text parses as JSON') and clearly states the resource (text) and optional key/type validation. It distinguishes itself from siblings like json_yaml by specifying it validates JSON and explicitly scopes to required keys and types, not full JSON Schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case ('Use before feeding generated JSON into something that will fail on it') and a clear limitation ('not full JSON Schema'), implying when not to use it. However, it does not name an alternative tool for full schema validation, so it falls short of the full when/when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_searchSearch the web (meta-search)ARead-onlyIdempotentInspect
Search the live web through a self-hosted SearXNG meta-search (aggregates dozens of engines, no tracking). Returns titles, URLs and snippets. Use when you need current information or sources. Example — GET https://ainetcafe.com/t/web_search?query=latest+MCP+spec
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query. | |
| max_results | No | Max results (default 8, up to 20). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and idempotent; the description adds that it aggregates dozens of engines with no tracking and returns titles, URLs, and snippets, providing useful behavioral context without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a concise example, front-loading the action and including only essential output and usage information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter search tool with an output schema and read-only annotations, the description covers what it does, when to use it, what it returns, and an example, making it complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully described in the input schema (query and max_results), so the schema carries the semantic burden; the description does not add extra parameter-level detail beyond noting an example query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the live web via SearXNG meta-search, names its output (titles, URLs, snippets), and distinguishes it as a no-tracking aggregator, making its purpose distinct from sibling tools like fetch_page or deep_research.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to use when current information or sources are needed, giving clear context. However, it does not name alternatives or exclusions, so it falls 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.
what_can_you_doFind the right tool for a taskARead-onlyIdempotentInspect
Describe a task in plain language (any language) and get back exactly which tools on this server do it, with ready-to-run example calls — instead of reading the whole catalogue and guessing. Also returns multi-step recipes when a task needs several tools chained (invoices to a ledger, a bank statement reconciled, a messy CSV turned into a deliverable). Deterministic and free: it calls no model, costs nothing, and never runs out of quota. Call this FIRST when you are not sure what this server offers.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | What you are trying to do, e.g. "reconcile a bank statement against my books" or "把一堆发票整理成能入账的表格" |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable behavioral traits not visible in annotations: deterministic, calls no model, costs nothing, and never runs out of quota. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, front-loaded with the core purpose in the first sentence and supported by recipes, cost/quota guarantees, and when-to-use guidance. Every sentence earns its place; no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple context (single required string parameter, rich annotations, and an output schema), the description is complete. It covers the tool's behavior, return value highlights, performance/cost characteristics, and usage context without leaving important gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the 'task' parameter with examples, and schema coverage is 100%. The description adds the nuance 'plain language (any language)' and emphasizes that example calls are generated, providing modest additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb+resource: describe a task and get back exactly which tools on the server do it, with ready-to-run example calls. It explicitly distinguishes itself from sibling tools by positioning itself as the meta-guide that prevents 'reading the whole catalogue and guessing.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Call this FIRST when you are not sure what this server offers.' It also clarifies the intended use case (plain-language task discovery) and contrasts with the alternative of scanning the catalogue manually, which is sufficient for a meta-tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
list_models1 field changed- changed
Input schema / properties / tier / descriptionPrevious value: -"Optional reference tier filter. All currently healthy tiers are available without a user key during the beta."New value: +"Optional filter. \"free\" models run on the anonymous quota; \"premium\" needs your own AllRouter key."
1 tool update
- Changed
list_models1 field changed- changed
Input schema / properties / tier / descriptionPrevious value: -"Optional filter. \"free\" models run on the anonymous quota; \"premium\" needs your own AllRouter key."New value: +"Optional reference tier filter. All currently healthy tiers are available without a user key during the beta."
1 tool update
- Changed
create_task1 field changed- changed
Input schema / properties / kind / descriptionPrevious value: -"watch_page | daily_answer | watch_reachability"New value: +"watch_page | daily_answer | watch_reachability | pipeline"
8 tool updates
- Changed
clean_table2 fields changed- added
Input schema / properties / keepAdded value: +{ + "description": "For wide_to_long: comma-separated id columns to keep as-is. Defaults to the first column.", + "type": "string" +} - changed
Input schema / properties / ops / descriptionPrevious value: -"Comma-separated, default \"dedupe,trim,drop_empty,unify_blank\". Also available: split_column."New value: +"Comma-separated, default \"dedupe,trim,drop_empty,unify_blank\". Also available: split_column, transpose (swap rows/columns), wide_to_long (unpivot a wide table into the long format analysis tools expect)."
- Added
diff_tables - Added
diff_text - Added
json_yaml - Added
jwt_decode - Added
regex_test - Added
validate_json - Added
what_can_you_do
3 tool updates
- Added
clean_table - Added
merge_tables - Added
reconcile_ledger
1 tool update
- Added
extract_invoices
26 tool updates
- Removed
check_grammar - Removed
check_vulns - Removed
convert_to_pdf - Removed
csv_to_qbo - Removed
deep_research - Removed
fix_csv_encoding - Removed
forget - Removed
get_weather - Removed
make_badge - Removed
make_chart - Removed
make_qr - Removed
make_slides - Removed
package_info - Removed
pdf_add_page_numbers - Added
pdf_to_markdown - Removed
project_status - Removed
redact_text - Removed
split_spritesheet - Removed
submit_project - Removed
text_to_image - Removed
transcribe_audio - Removed
translate_i18n_json - Removed
translate_pdf - Removed
translate_srt - Removed
translate_text - Added
transpile_sql
4 tool updates
- Added
ai_visibility - Added
csv_to_qbo - Added
extract_statement - Added
extract_tables
4 tool updates
- Added
create_task - Added
delete_task - Added
get_task_runs - Added
list_tasks
6 tool updates
- Added
fix_csv_encoding - Added
pdf_add_page_numbers - Added
redact_text - Added
split_spritesheet - Added
translate_i18n_json - Added
translate_srt
2 tool updates
- Added
check_vulns - Added
package_info
6 tool updates
- Added
china_reachability - Added
get_weather - Added
make_badge - Added
make_chart - Added
make_qr - Added
text_to_image
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT- AlicenseNot gradedqualityCmaintenanceEnables AI chat clients to perform market research and competitive intelligence by gathering company overviews, competitor lists, product portfolios, pricing snapshots, and recent news via live Tavily search.MIT
- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.11961MIT