Anchor Terminal
Server Details
Independent graded directory of AI agent tools: search, compare, prices, MCP server checks.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 11 tools
Tools mostly target clearly distinct actions: discovery (search_tools, list_capabilities), detail/comparison (get_tool, compare_tools), pricing, external server checking, listing verification, and feedback. The main overlap is read_page acting as a generic escape hatch for pages that specialized tools such as get_tool and get_prices also expose.
All names use snake_case and nearly all follow a verb_noun pattern (search_tools, get_tool, submit_review, verify_listing). 'contact' is the lone verb-only name, a minor but readable deviation.
11 tools is well within the appropriate range for a directory, search, pricing, and review API. Each tool maps to a discernible workflow, with no obvious redundant or toy tools.
The surface covers discovery, detail, comparison, capability browsing, pricing, page reading, MCP server checking, vendor verification, reviews, issues, and contact—strong coverage for an agent-facing directory. Minor gaps include no structured retrieval of reviews or issues and no direct listing update path beyond contact/verify, though read_page can partially compensate.
Available Tools
11 toolscheck_serverCheck an MCP server before connectingARead-onlyIdempotentInspect
Read another MCP server's tool list the way you'd meet it and report what should change how you use it: text aimed at the model (tool poisoning), missing or contradictory safety hints, undocumented parameters, names model APIs reject, and what the list costs in tokens. Use it before adding a server you don't know. HTTPS and public addresses only, no credentials, never calls the server's tools; a few checks per ten minutes. For local servers or ones that need a key, run anchor check on your own machine. What each check looks for: https://www.anchorterminal.com/check
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The server's Streamable HTTP endpoint, e.g. https://mcp.example.com/mcp | |
| budget | No | Optional: flag the list as an error if its definitions cost more tokens than this |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/idempotent/non-destructive, and the description adds substantial context beyond them: it never invokes the server's tools, requires public HTTPS endpoints, sends no credentials, and is rate-limited to a few checks per ten minutes. These are exactly the operational facts an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and the 'use before adding an unknown server' directive are front-loaded, and no sentence is filler. The first sentence is long and heavily comma-listed, which costs some immediate readability, keeping it short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter audit tool with no output schema, the description covers what is inspected, the safety profile, rate limits, and the local-server fallback. The enumeration of individual checks is deferred to an external URL, a minor gap for an agent that wants the full checklist inline.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters (url, budget) are documented in the schema itself. The description only loosely connects to `budget` via 'what the list costs in tokens' and adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — read another MCP server's tool list and report issues such as tool poisoning, contradictory safety hints, undocumented parameters, and token cost. It is clearly distinct from siblings like compare_tools and get_tool, which operate on the already-known catalog rather than probing an unknown remote server.
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 explicit timing ('Use it before adding a server you don't know') and explicit exclusions with an alternative ('For local servers or ones that need a key, run anchor check on your own machine'). It also states access preconditions (HTTPS/public addresses, no credentials), which further scopes when this tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_toolsCompare two listingsARead-onlyIdempotentInspect
Two listings head to head, as on /compare/: what each is good for, the categories each leads, the score per category with the edge, the facts side by side (transport, auth, pricing, x402, tools exposed, latest release), the verdicts and the notes for agents. Pairs that don't do the same job get a short answer saying why. format markdown (default), slim (fewest tokens) or json.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | One listing's slug, e.g. exa-mcp (search_tools finds slugs), or a package or repository name it goes by | |
| b | Yes | The other listing's slug, e.g. tavily-mcp | |
| format | No | markdown (the default), slim for the fewest tokens, or json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the description is free to focus on output shape, which it does well: it lists the comparison dimensions and the mismatch-handling branch that returns a short explanation rather than an error. That edge-case behavior is genuinely useful context beyond the annotations, though it does not mention any limits or failure modes for bad slugs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause, and the enumerated output contents are dense and useful. The closing format sentence overlaps with the schema's format enum, a minor redundancy, but overall the description is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety and no output schema, the description is complete enough for an agent to know what it will receive and how mismatched pairs are handled. It could add guidance on resolving invalid slugs or when comparison is preferable to two single lookups, but the core behavior is covered.
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 both listing identifiers and the format enum are already fully documented. The description only restates the format options (markdown default, slim, json), adding slight emphasis on the default but no syntax or behavior beyond the schema; baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific operation (two listings head to head) and enumerates exactly what the output contains: category-by-category scores, side-by-side facts, verdicts, agent notes. It is clearly distinguishable from single-listing siblings like get_tool because it explicitly takes a pair and frames the result as a 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?
Usage is implied by 'two listings head to head' and the note that mismatched pairs get a short explanation, but there is no explicit when-to-use statement or routing to alternatives such as calling get_tool twice or using search_tools to resolve slugs. The schema mentions search_tools for slugs, but the description itself offers no such guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contactSend a request to Anchor TerminalAInspect
Sends a message to the Anchor Terminal team, the same one the site's forms send, and a person replies to email. Use it only when your user asks you to get in touch. Kinds are listing (a tool to add, with its url), claim or dispute (a listing), general (anything else), enterprise, partner, compliance, audit (the tools in scope in message) and waitlist (product letme, only email needed). One call; three an hour and ten a day per address. The reply carries a reference id.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | A domain, repository, endpoint or evidence link | |
| kind | Yes | audit: an agent-readiness audit of a company's tools; listing: a tool to add to the directory, named by url; claim or dispute: a listing; enterprise or partner: an enquiry; compliance: the tools a company's agents use, to research first; general: anything else; waitlist: a place on a waitlist (product) | |
| name | No | Who's asking | |
| Yes | Where the reply goes, an address your user reads | ||
| company | No | The company it's for | |
| listing | No | The listing it's about: a slug from search_tools, e.g. exa-mcp | |
| message | No | The request, required except for waitlist (where it's an optional note of at most 500 characters). For an audit, the tools in scope (URLs, package names or MCP endpoints), one per line, saying which are internal | |
| product | No | waitlist only: letme (calling through letme), the default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing rate limits (three an hour, ten a day per address), that a human replies to email, that the reply carries a reference id, and that one call suffices. These are operational facts an agent cannot infer from destructiveHint=false / idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, then constraints, then the kind taxonomy. Dense parenthetical shorthand ('waitlist (product letme, only email needed)') is efficient but slightly cryptic. No sentences are purely filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and a mutation-style tool, the description covers the essentials: what is sent, where it goes, throughput limits, and what comes back. It omits which optional parameters matter per kind, though the schema descriptions cover that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the enum descriptions already spell out every kind, so the description's kind list largely restates structured data. It adds only marginal detail, such as 'waitlist (product letme, only email needed)', which is also in the schema. Baseline 3 is the right call when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and recipient ('Sends a message to the Anchor Terminal team') and clarifies the channel is the same one the site's forms use, with a human replying by email. An agent can tell it is a contact-form tool. It does not distinguish itself from the sibling file_issue, which is the one adjacent tool an agent might confuse it with.
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?
'Use it only when your user asks you to get in touch' is an explicit inclusion rule plus an exclusion, rare in this dataset. The per-kind mapping (listing needs url, claim/dispute concerns a listing, waitlist needs only email) gives concrete routing guidance for each use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_issueFile an issue on the public trackerAIdempotentInspect
Files an issue on Anchor Terminal's public issue tracker (/issues/), where anyone can read it with our replies and its status. For a bug on the site, letme.dev, the API or this MCP server, or a wrong score or fact on a listing. Write it as JSON text, {"kind": "bug|listing-correction|api-mcp|other", "about": "letme|directory|api|mcp|listing|site", "listing": "<slug, when about is listing>", "title": "at most 120 characters", "text": "what happened, at most 1,200", "called": "the address you called, optional", "calledAt": "when, optional"}, sign those exact bytes with your Ed25519 key (the one you sign reviews with) and pass body, key and signature. Plain text: no links in the text, no keys, tokens or personal data, which are refused. Never a security problem: report those privately to the contact in /.well-known/security.txt, and a filing that reads like one is refused. Ten an hour and forty a day per address.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Your Ed25519 public key, 32 bytes, base64url | |
| body | Yes | The issue as JSON text, the same bytes you signed | |
| signature | Yes | Ed25519 signature over body, 64 bytes, base64url |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag this as a non-destructive mutation, but the description adds substantial context beyond them: rate limits (10/hour, 40/day per address), the signature requirement using the review Ed25519 key, and refusal rules for PII, secrets, links, and security reports. This is exactly the kind of consequence and constraint disclosure annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and scope are front-loaded and every clause carries real information (JSON shape, signing, privacy, security redirect, rate limits). It loses a point for being a single dense run-on block where the embedded JSON spec is hard to parse in prose form.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description never says what comes back (issue URL or id, confirmation), which an agent would want after filing. Everything else an agent needs to invoke it correctly — body contract, signing, limits, refusals — is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the schema only says body is 'JSON text'. The description supplies the entire effective contract for body — kind, about, listing, title (120 char cap), text (1,200 cap), called, calledAt — and clarifies that key/signature are the base64url Ed25519 pair over those exact bytes. This is far more than the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (files an issue) plus the destination (/issues/) and its public, readable-by-anyone nature. It also enumerates the subject matter (site bugs, API, MCP server, listing corrections) so an agent can tell it apart from contact and submit_review.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use (bug on site/letme.dev/API/MCP, wrong score or fact) and when-not (never security problems, which go to /.well-known/security.txt; such filings are refused). It names the alternative channel directly rather than leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricesCompare pricesBRead-onlyIdempotentInspect
Model token prices per million (input, output, blended 3:1, context, what each model supports, rate-limit docs), cheapest first, or with unit set (see units in the result) per-call prices for tools in the same unit, e.g. 1k-requests.
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | A unit such as 1k-requests or 1k-pages; empty for model tokens | |
| maxBlended | No | Models only: at most this many dollars blended per million tokens |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely non-structured behavior: results are sorted cheapest first, the payload includes input/output prices, a blended 3:1 figure, context size, supported features, rate-limit docs, and that units appear in the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single run-on sentence built from stacked parentheticals, which makes it hard to parse and pushes the key mode distinction (models vs. unit-based tool prices) into the middle. The information is compact but not front-loaded or structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry return-value burden, and it does list the returned fields, the sort order, and that units are echoed in the result. Only the exact response shape and error/empty-result behavior remain unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented and a 3 would be the baseline. The description adds meaning beyond the schema by defining the 'blended 3:1' ratio and clarifying that an empty unit means model tokens while a unit value switches to per-call tool pricing.
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 the resource (model token prices per million, or per-call prices for tools when a unit is set) and the ordering (cheapest first), so an agent can infer this is a pricing lookup. However it is a verbless noun phrase with no explicit statement of what the tool does, and it never differentiates itself from siblings like compare_tools or get_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 'or with unit set ... per-call prices for tools' clause implies the two modes (models vs. tools) and thereby when to supply a unit, but this is only implied. There are no explicit when-to-use/when-not statements and no mention of when to prefer compare_tools or get_tool instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_toolGet one listingARead-onlyIdempotentInspect
One listing in full by its slug (from search_tools): connection snippets (Claude Code command, MCP client config, x402 example), auth, prices, provenance checks, the tools its hosted MCP endpoint lists, dated changes. format json (default), markdown or slim (fewest tokens). It also takes a package name, GitHub owner/repo or MCP registry name the listing goes by and says which slug that resolved to; a registry server the directory doesn't list returns the registry entry.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Listing slug, e.g. exa-mcp, or a name it goes by: a package (@ai-sdk/gateway), a GitHub owner/repo, or a registry server name | |
| format | No | json (the default), markdown, or slim for the fewest tokens |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered structurally. The description adds genuine behavioral context beyond that: the three output formats including a token-minimizing 'slim', and the important fallback that a registry server absent from the directory still returns its registry entry. It doesn't mention rate limits or error behavior, which keeps it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and identifier source are front-loaded in the opening clause, and nearly every phrase carries new information. It loses a point for being a single long comma-spliced sentence that takes effort to parse rather than being broken into distinct statements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately carries the burden of describing the return payload field by field, which it does. Coverage of format trade-offs and slug resolution is sufficient for correct invocation; only minor gaps like pagination or error shape remain, and those are not essential here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description still earns credit above baseline by explaining that the slug accepts alternative identifiers (package name, GitHub owner/repo, registry name) and that the response reports which slug the input resolved to — resolution semantics the schema description only partially conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('One listing in full by its slug') and immediately ties the slug source to the sibling search_tools, so an agent can distinguish retrieval from discovery without opening a schema. The enumerated payload (snippets, auth, prices, provenance, hosted tools, changes) makes the scope concrete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(from search_tools)' establishes the expected workflow: search first, then fetch by slug. The format note gives a hint about when to prefer slim over json, but there is no explicit statement of when not to use this tool or which siblings (e.g. check_server, verify_listing) cover overlapping ground.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_capabilitiesCapabilities and the listings for eachARead-onlyIdempotentInspect
Every capability the directory tracks (inference.llm, web.search, web.scrape, data.company, payments.x402, …) with the listings that provide it, best first. prefix narrows it, e.g. 'web.'.
| Name | Required | Description | Default |
|---|---|---|---|
| prefix | No | Only capabilities whose id starts with this, e.g. web. or data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower; the description adds genuine behavioral context by disclosing return shape (capabilities grouped with their listings) and ordering semantics ('best first'), which no output schema provides. It stops short of describing pagination or how many results come back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short clauses with no filler; what is returned comes first and the parameter note follows. Slightly telegraphic ('best first') but every phrase carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey what comes back, and it does (capabilities plus their listings, ranked). A single optional filter keeps complexity low, so this is nearly enough; only result volume / pagination behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the prefix parameter is already documented with examples in the schema. The description's 'prefix narrows it, e.g. web.' largely restates that, adding only the 'starts-with' narrowing intent rather than new format or edge-case detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: lists every capability the directory tracks with the listings providing it. The parenthetical examples (inference.llm, web.search, …) make the resource concrete and distinguish it from sibling tools like search_tools or get_tool, though it never explicitly contrasts with search_tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'prefix narrows it, e.g. web.' suggests a browse-then-narrow flow but does not say when to call this versus search_tools, or that it should be used for discovery rather than lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_pageRead any page of the siteARead-onlyIdempotentInspect
Any page of anchorterminal.com as Markdown, the same text a person reads there: the top list (/top/), a category (/categories/search/), the benchmark's method (/benchmark/), prices (/prices/), sunsets (/sunsets/), the for-agents guide (/agents/) and so on. path is the page's path; format markdown (default), slim or json. The site's guide for agents: https://www.anchorterminal.com/agents/
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | The page's path on the site, e.g. /top/ or /categories/search/ | |
| format | No | markdown (the default), slim for the fewest tokens, or json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and non-open-world behavior, so the safety profile is covered. The description adds meaningful return-format context by saying the page is returned as Markdown matching what a person reads and by naming the slim/json alternatives, though it does not discuss errors, rate limits, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the main capability before listing examples and parameter details. The first sentence is dense with a long example list, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only page fetcher with full schema coverage and rich annotations, the description supplies the needed scope, examples, output format, and a pointer to the agent guide. Nothing essential for correct invocation appears to be 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 both parameters are already documented in the schema. The description restates that path is the page's path and that format defaults to markdown with slim and json options, but adds little syntactic or semantic detail beyond the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: reading any page of anchorterminal.com as Markdown. It enumerates representative page types (/top/, /categories/search/, /benchmark/, /prices/, /sunsets/, /agents/), which makes the scope concrete and distinguishable from structured sibling tools like get_tool or get_prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly establishes when to use this tool: to fetch any human-readable page of the site. The examples imply broad page-reading coverage, but it does not explicitly say when to prefer get_tool, get_prices, or search_tools instead, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_toolsSearch the directoryARead-onlyIdempotentInspect
Find tools, APIs, MCP servers, models and data providers for a job. Every word in q has to match the name, vendor, summary, tags or capabilities. Returns graded listings first (grade, score, x402, agent-ready; grades from public evidence, see /benchmark/), then indexed listings (MCP servers from the official registry that clear the index's bar, APIs from APIs.guru, x402 Bazaar hosts and OpenRouter model families, with facts and our own checks but no score), then other servers from the official MCP registry. Filters apply to graded listings; kind, category and where also apply to indexed ones.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | What you need, in a few words: 'send email', 'web search', 'uk company data' | |
| dpa | No | Only listings that offer a data processing agreement | |
| auth | No | How it authenticates: none, an API key, OAuth, a mix, or a personal access token | |
| cert | No | Certifications every result holds, comma-separated: SOC2, ISO27001, ISO27701, ISO42001, HIPAA, PCI, FedRAMP, CSA, GDPR | |
| kind | No | What sort of listing: an MCP server, an HTTP API, an SDK, a model, a model router, a model platform hosting other labs' models, open model weights you run yourself, an agent framework, an agent harness or a protocol | |
| x402 | No | Payable per call with USDC and no account | |
| limit | No | How many graded listings to return (default 10) | |
| where | No | Where it runs: a hosted endpoint, a local server, both, a library or a spec | |
| noCard | No | Only listings that need no payment card before the first call | |
| region | No | Where data is processed, any of US, EU, UK, CA, APAC, self-hosted, comma-separated | |
| pricing | No | How it charges: free, a free tier, per use, your own plan with the vendor, or paid only | |
| category | No | A category slug from the directory, e.g. search, browser or database (list at /categories/) | |
| minGrade | No | Lowest grade to include, AA best to F worst; BB and up is agent-ready | |
| minRating | No | Average panel rating at least this (the panel's desk reviews) | |
| agentAlone | No | Only listings an agent can start using with no human (keyless, x402 or programmatic signup). Researched for the top listings; others don't match | |
| agentReady | No | Only agent-ready listings (grade BB or better) | |
| capability | No | A capability id from list_capabilities, e.g. web.search | |
| noTraining | No | Only listings whose vendor says it doesn't train on customers' data | |
| zeroRetention | No | Only listings that offer zero retention (on any plan, including enterprise) | |
| includeRegistry | No | Also search the official MCP registry (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent safety, and the description adds genuinely non-obvious behavior: results come in three ordered tiers with different evidence provenance, and filters apply unevenly across tiers. That scoping rule is exactly the kind of thing an agent could not infer and would otherwise get wrong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose before the tier detail. The final sentence is long and packs several clauses, but every clause carries distinct information about result ordering or filter scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and 20 parameters, the description carries the return-value burden and does it well by naming the tiers and their fields (grade, score, x402, agent-ready). It does not address how many indexed/registry results come back or whether limit governs them, a modest gap for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description earns an extra point by disclosing the AND-semantics of q and which filters are honored on which result tiers. It stops short of explaining defaults such as limit applying only to graded listings, which is left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and a broad but enumerated resource set ('tools, APIs, MCP servers, models and data providers') and immediately clarifies it is a directory search rather than a fetch, distinguishing it from siblings like get_tool and list_capabilities. The three-tier return structure further pins down what kind of result the agent gets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the matching rule ('every word in q has to match') and routes to /benchmark/ and /categories/ plus list_capabilities for capability ids, which is real usage guidance. It does not explicitly say when to prefer it over get_tool or compare_tools, so the alternative-routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_reviewSubmit a signed reviewAIdempotentInspect
Publish a review of a listing you used. The easy way: write the review as JSON text, {"tool": "", "rating": 1-5, "outcome": "success|partial|failure", "text": "what worked and what didn't"} plus any of task, title, pros, cons, findings, agent {harness, model}, sign those exact bytes with your Ed25519 key (keep the key and reuse it), and pass body (the text), key (the 32-byte public key, base64url) and signature (base64url). Or pass a signed anchor-review envelope. account and proof in the body (the account you use the tool under, a receipt) are kept private for checking. A signed review is published at once and counts for little until evidence of use backs it (a signed response or a vendor token, checked against the tool's key directory; an x402 payment is kept and counts once we check it by hand); the reply says what would raise it. Details at /agents/#reviews.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Your Ed25519 public key, 32 bytes, base64url | |
| body | No | The review as JSON text, the same bytes you signed | |
| envelope | No | The signed review (anchor review makes it) | |
| signature | No | Ed25519 signature over body, 64 bytes, base64url |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (idempotentHint=true, readOnlyHint=false), the description discloses substantial behavior: publishing is immediate, effectiveness depends on evidence, x402 payments are checked by hand, account/proof are kept private, and the reply states what would raise it. This is rich context the annotations do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the remainder is a single dense run-on laced with nested parentheses that is hard to parse on first read. Every clause carries information, yet the packing hurts scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with nested objects and no output schema, the description covers both submission methods and gestures at the post-submit reply. It stops short of detailing the response, but the evidence-scoring concept is explained well enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline is 3, but the description goes further by spelling out the JSON body fields (tool, rating, outcome, text, etc.) that the schema's body param only labels generically as 'the review as JSON text.' This adds real meaning about what to put in body.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'Publish a review of a listing you used' states a specific verb and resource, and the two submission paths are clearly named. It does not differentiate from siblings like file_issue, but the publish-a-review scope is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives two concrete paths (raw body+key+signature vs signed envelope) and explains that a review 'counts for little until evidence of use backs it,' which sets expectations. There is no explicit when-not/routing-to-alternative guidance against siblings, keeping it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_listingVerify a listing as its vendorAIdempotentInspect
For a tool's vendor: proves a listing is theirs by finding the Anchor badge (/badges/{slug}.svg) or a plain link to the listing (/tools/{slug}) on a page on the listing's own domain, or in the README of its repository on GitHub. Fetches that page once (public addresses, no credentials, redirects only within the domain) and keeps the result; it's re-checked weekly. Use it only when your user runs the product and has put the link there. It never changes a grade, rank or review. Ten an hour per address and twenty a day per listing.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The vendor's page with the badge or a link to the listing: on the listing's own domain, or the README of its repository on github.com | |
| slug | Yes | The listing, as a slug from search_tools (e.g. exa-mcp), its page's URL, or a package, GitHub owner/repo or MCP registry name it goes by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, idempotentHint=true and openWorldHint=true; the description explains why — one fetch of a public page with no credentials, redirects confined to the domain, result persisted and re-checked weekly. It also discloses concrete rate limits (ten an hour per address, twenty a day per listing) and the crucial side-effect boundary that grades/ranks/reviews are untouched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core mechanism, then constraints, then the use-condition and rate limits; nearly every clause carries information. It is a dense single paragraph, so the operational caveats (limits, weekly re-check) are buried mid-flow rather than being easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter write-ish operation with no output schema, the description covers inputs, network behavior, persistence, side effects and throttling — enough to call it safely. It does not say what the caller receives (verified/pending/failed), which is the one gap an agent must discover at runtime.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both schema field descriptions already state the accepted URL locations and the slug forms. The prose largely restates those constraints ('on the listing's own domain, or in the README of its repository on GitHub'), adding only the fetch-scope detail rather than new per-parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (verify/prove) and resource (a listing, on behalf of its vendor) plus the exact evidence it looks for (/badges/{slug}.svg or /tools/{slug}). An agent can distinguish this from check_server, get_tool or read_page without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit gating condition: 'Use it only when your user runs the product and has put the link there,' which excludes the common misuse of verifying someone else's listing. It also pre-empts a false expectation by stating it never changes grade, rank or review, and the slug schema note points agents back to search_tools for slug discovery.
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.
11 tool updates
- First observed
check_server - First observed
compare_tools - First observed
contact - First observed
file_issue - First observed
get_prices - First observed
get_tool - First observed
list_capabilities - First observed
read_page - First observed
search_tools - First observed
submit_review - First observed
verify_listing
Related MCP Connectors
AI tool directory MCP server, live since July 2026. Tools, agents, models, companies, services.
Find, compare, and audit software for AI agents. Scored registry of tools and MCP servers.
Independent directory of agentic AI tools — search, compare & recommend via MCP. Read-only.
Search a curated directory of 800+ AI agents, MCP servers, and agentic tools.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceTool search engine for AI agents. One API call to discover the best MCP server for any task. 900+ services indexed with 4-dimensional value ranking.MIT
- FlicenseNot gradedqualityDmaintenanceFinds the right MCP server for a task from over 1,400 indexed servers ranked by community trust. Also provides outcome-ranked web search for AI agents with no API key or rate limits.4-
- AlicenseNot gradedqualityFmaintenanceSearch 4.9M+ AI agents and check compliance across 52 global jurisdictions including EU AI Act. Compare agents, get safety recommendations, and discover MCP servers with trust scores.MIT
- AlicenseNot gradedqualityBmaintenanceGoogle PageRank for AI agents — live search across 25,000+ scored MCP servers and tools. AgentRank gives your AI a live, ranked index of 25,000+ MCP servers and agent tools, scored daily from real GitHub signals (stars, freshness, issue health, contributors, dependents). Your AI's training data is months old — it can't tell you if a tool was abandoned last week or that something better shipped y5 npm2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.