Skip to main content
Glama

parseapi-mcp

Official ParseAPI MCP server. Look up places, addresses, company numbers, email, phone, weather, currency, timezones, dates and more from your AI agent.

Hosted

One URL, nothing to install. Add the server and sign in once in the browser. Free plan works.

{
  "mcpServers": {
    "parseAPI": { "url": "https://mcp.parseapi.com" }
  }
}

Cursor: Add to Cursor

Repo-root .mcp.json is keyless on purpose. cursor.directory auto-detects it when you submit or refresh the listing.

CI and headless setups skip the browser with a key from parseapi.com:

{
  "mcpServers": {
    "parseAPI": {
      "url": "https://mcp.parseapi.com",
      "headers": { "X-API-Key": "your-api-key" }
    }
  }
}

Related MCP server: personal-mcp-server

Local

{
  "mcpServers": {
    "parseAPI": {
      "command": "npx",
      "args": ["-y", "parseapi-mcp"],
      "env": { "PARSEAPI_KEY": "your-api-key" }
    }
  }
}

API versions

Since version 1.0.0, the package explicitly selects the API contract supported by this MCP package. Every API tool request sends Parse-Version: 2.0.0, matching this release's tool descriptions and SDK response types. The contract is fixed for both local stdio and hosted HTTP, including retries. Your key, OAuth identity and team's saved default stay the same.

For local stdio, pin the MCP package version in your application configuration and test the new release before deploying it. A future major MCP upgrade can select a newer API contract. There is no version argument to add to individual tool calls. The hosted service uses the API contract supported by its deployed MCP release.

MCP packages older than 1.0.0 keep their existing behavior and use the team's default. Keep that default unchanged while older applications depend on it. Rolling back to a package without a version header restores the team default, so rollback only restores the old contract when that default has stayed unchanged. See API versions and migration.

Tools

Full mode provides 59 local lookup tools and 58 hosted lookup tools, plus discover for local metadata and preflight for authenticated task estimates. ip_self is local only. time returns current local time and Unix seconds. It accepts a timezone or coordinates and defaults to UTC when both are omitted. date parses the supplied date, or returns today in UTC when omitted. Existing timezone calls remain supported with their original arguments. Every lookup returns the JSON the API serves.

Tools follow the lookup names: country_states, city_search, postal_nearby, address, address_search, company, email, vat, iban, bin, npi, vin, naics, naics_search, tariff, dns, asn, mac, currency_rate, and the rest. All search tools take query.

NAICS paid deep records include classification deep.exclusions, each with a description and linked codes. Generic exclusions can have no linked codes. Omitted or null exclusions in older responses remain unknown. Search results also include match: the matched field (name, term or naics) and text, plus corrections with from and to tokens for typo fallback. Corrections are empty for exact, plural and prefix matches. Direct code lookups omit match. Older responses may omit it.

Example tool arguments:

Tool

Arguments

stack

{"domain":"example.com"} (website technologies and versions by category)

domain

{"domain":"example.com"} (registration status)

domain

{"domain":"example.com","deep":true} (registration details on paid plans)

dns

{"domain":"example.com","type":"TXT"}

mx

{"domain":"example.com"}

asn

{"asn":"AS13335"}

mac

{"mac":"00:1B:63:84:45:E6"}

bin

{"bin":"424242"}

country_states

{"code":"US"}

address_search

{"query":"1600 Pennsylvania","country":"US","city":"Washington","state":"DC"}

company

{"number":"552100554","country":"FR"}

time

{} (UTC now)

time

{"timezone":"America/New_York","at":"2026-09-05T09:00:00","to":"Asia/Tokyo"}

time

{"lat":40.71,"lon":-74.01}

date

{"date":"03/04/2026","format":"dmy"}

Address lookup returns standardized components and registration status for the US and France. Its deep object is currently empty. Company lookup returns validity, registration status and business details when available. address_search also accepts postal and ip to narrow or rank matches. French search needs country: "FR" and either postal or city.

Ordinary lookups retry up to twice after a transient failure. Metered lookups and address deep checks default to no retries. Cancelling a tool call cancels the pending SDK request.

Errors come back as JSON with a machine-readable code. Branch on code, never on message text. A miss is not_found. No key is invalid_api_key.

Agent discovery

Ask discover what an operation can determine before making a lookup:

{ "operation": "email" }

The result includes the actual input schema and reviewed policies for capabilities, freshness, uncertainty, billing units, credential types and retries. Both JSON text and MCP structuredContent carry the same result. Email, Domain, DNS, MX and Country have reviewed policies. Other operations return their input schema with policy: null. Field meanings are specific to each operation. An unknown result is not automatically a reason to retry.

Use { "query": "mailbox" } to find operations. Search returns up to five summaries by default. detail: "full" includes schemas and policies. Use limit and the returned next_offset to page through results. Metadata calls make no API requests and consume no lookup units. Hosted HTTP still requires its existing authentication before discovery.

Policies describe the API contract. effective_access: "not_evaluated" and pricing: "not_quoted" mean discovery has not inspected the credential's permissions, remaining allowances or accepted rates. Use preflight for those account-specific estimates. A read-only lookup can still consume a paid unit.

Call preflight with a secret key and operation counts before spending:

{
  "operations": [{ "operation": "email", "count": 100, "deep": true }],
  "budget_usd": "2.50"
}

Preflight supports Email, Domain, DNS, MX and Country, with up to 20 rows and 100,000 total lookups. It needs no lookup inputs or personal data. Check permitted, cost.status, capacity and budget.within_maximum together. Monetary values are decimal strings. The maximum assumes included Email checks are exhausted. The projection uses currently unallocated included checks. Unknowns stay null. Both use the credential's accepted rates.

The estimate allows up to three attempts per ordinary lookup and one per Email Deep lookup. Extra calls or retries require a new estimate. Capacity can change with concurrent work. Preflight reserves no units or money, performs no paid checks, and does not enforce the supplied budget. It uses the normal request rate limit. Subscription fees, tax and model costs are excluded. Preflight uses API contract 2.0.0 and the matching JavaScript SDK 1.2.0 or later.

For a compact tool catalog, set PARSEAPI_MCP_MODE=compact on the MCP process:

PARSEAPI_MCP_MODE=compact npx -y parseapi-mcp@1.3.0

Set PARSEAPI_KEY in the process environment for lookups. Compact mode advertises three tools, discover, preflight and lookup. After discovering an operation, pass its exact name and arguments:

{ "operation": "country", "arguments": { "code": "US" } }

lookup uses the same input validation, cancellation, version pin, SDK and billing behavior as the named tools. It executes one operation and cannot run arbitrary code or request arbitrary URLs. Full mode is the default and preserves existing named lookup calls. The same process setting supports self-hosted HTTP.

The policy source is the API's src/route/help/agent-catalog.json. Current API help exposes the same metadata as agent. Frozen API 1.0.0 help stays unchanged. In a ParseAPI workspace, run npm run catalog:sync to copy a reviewed policy change, then npm run catalog:check. An independent checkout can pass -- --source /path/to/api. Package builds use the checked-in copy and do not need the API checkout or a network request.

Display language

This source candidate adds optional lang to supported tools. For example, country accepts {"code":"DE","lang":"fr"}. It requires a matching API localization release, data, and JS SDK package; installing the existing published package does not activate it.

Display names follow available source translations. IDs, native-name fields, numbers and input parsing stay unchanged. Omitted language keeps the default behavior. Measure parsing, currency rates, Holiday and prove tools have no new language argument.

Measurements

Call measure with { "measure": "5 ft 11 in", "to": "cm" }. The result keeps the amount as the decimal string "180.34". Without to, the result uses the canonical unit for its type. Optional locale and system (us or imperial) resolve explicit number or customary-unit ambiguity.

Call measure_units with { "unit": "m" } to discover compatible targets, or {} for the reviewed catalog. Optional query and type filters narrow the list. Ambiguous input remains a successful result with valid: false, reason, and choices. Invalid targets return the ordinary API error. Both tools use pooled requests.

Development

npm install
npm run typecheck
npm test          # builds and tests with mocked fetch and in-memory MCP
npm run eval:agents # offline benchmark self-test, no model or live API calls
npm run smoke     # stdio + http, includes live API authentication checks
npm run serve     # http on :8080

Offline tests pin the public tool names and argument schemas in test/public-api.json, exercise every operation and query option, and verify errors, retries and cancellation. Review baseline changes as public API changes. Publishing runs typecheck and offline tests first.

The agent benchmark compares full and compact discovery on fixed tasks with synthetic API responses. Its scripted reference run verifies the harness and grading, not agent completion quality. Model tokens and cost remain null until an adapter supplies measured usage. Fixture billing is simulated and always labeled separately from live charges.

MIT licensed.

Optional detail

Start with the default tool call. Use the same tool with deep: true for richer facts. Time, Date, Currency, Language, Emoji, Phone, IBAN and Point include detail on every plan. Geographic profiles, Name evidence and NAICS definitions require a paid plan. Carrier and HLR detail stays inside the same metered core unit, including Free allowance units, with no additional charge or second gate.

Search detail belongs to each returned entity. Time conversion puts target display detail in to.deep; only the source returns deep.next_dst. Name core parsing needs no dictionary lookup. Paid Name deep also returns flat short, directory, and initials. Optional name_locale selects CLDR formatting rules, defaults to en, and leaves parsing and gender context unchanged. Unavailable formatting is null, and older responses may omit these fields. Country, State and Postal tax references are in their paid deep bags.

Stack API

Call the stack tool:

{"domain":"example.com"}

Pass a public hostname without a scheme, path, port or IP address. Stack returns the checked URL and checked_at time, followed by scope, pages and partial. scope is homepage or site; pages counts successfully checked HTML pages. partial is true for homepage-only or incomplete bounded site checks. False means the known in-scope candidates were completed, not that every page on a website was visited. A homepage result has scope: "homepage", pages: 1 and partial: true.

cms, servers, frameworks, ecommerce, analytics, chat, payments and hosting are arrays because a site can use several technologies in each category. Each entry contains technology, name and nullable version. Technology codes are open strings. A successful check uses empty arrays for categories with no matches. When no HTML page could be checked, checked_at and all categories are null, pages is 0 and partial is null. Unknown or conflicting versions are null. Missing detections do not prove absence.

Successful checks may be reused for up to 24 hours. pretty optionally formats the wire JSON. Stack uses your plan's request allowance and API version 2.0.0 selected by this client.

The stack tool allows 35 seconds per attempt for a first check. MCP cancellation still aborts the request.

Available Tools

32 tools
cityA
Read-only
Inspect

Look up a city by name: coordinates, state, population, timezone. Pass country to disambiguate name ties.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCity name, e.g. charlotte
stateNoState code to disambiguate, e.g. NC
countryNoISO 3166-1 alpha-2 country code, e.g. US

TDQS

A4.2/5.0
Behavior4/5

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

The readOnlyHint annotation already indicates a safe read, so the description only needs to add extra context. It does so by enumerating the response fields (coordinates, state, population, timezone) and hinting at ambiguous-name behavior via country disambiguation. It doesn't describe error handling for no matches, but that's acceptable for a simple lookup tool.

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

Conciseness5/5

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

The description is two short sentences that lead with the main action and output, followed by an optional disambiguation tip. Every word earns its place, with no redundancy.

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

Completeness4/5

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

For a simple lookup tool with no output schema, the description adequately covers what the tool returns and how to handle ambiguous names. Omitting state from the description is acceptable because the schema describes it, and the tool's simplicity limits the need for more extensive context.

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

Parameters3/5

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

The input schema already documents all three parameters with 100% coverage, providing clear descriptions for name, state, and country. The tool description adds marginal value by explaining that country resolves name ties, which enriches the meaning of that parameter, but it doesn't add anything new for name or state.

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

Purpose5/5

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

The description opens with a clear verb and resource: 'Look up a city by name,' followed by the returned fields (coordinates, state, population, timezone). This distinctly frames it as an exact-name lookup, differentiating it from sibling tools like city_search or city_nearest even without naming them.

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

Usage Guidelines4/5

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

It provides a concrete usage tip: 'Pass country to disambiguate name ties,' which tells the agent when to add an extra parameter. However, it does not explicitly mention when to prefer this tool over city_search or city_nearest, so it lacks exclusion guidance but still gives clear context.

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

city_idA
Read-only
Inspect

Refetch a city by its stable parse id from an earlier response.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesStable city id, e.g. city_mb8mbqrkz8zb

TDQS

A4/5.0
Behavior3/5

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

The readOnlyHint annotation already communicates that this is a safe read operation. The description adds the behavioral detail that the id is stable and comes from an earlier response, which is useful context. However, it does not disclose additional traits such as error behavior or data freshness.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the purpose without any extraneous words. It is appropriately concise and easy to scan.

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

Completeness4/5

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

For a simple refetch-by-id tool with one parameter and a readOnly annotation, the description is sufficiently complete. It identifies the key input ('stable parse id') and the source ('earlier response'), and no output schema is needed. It lacks explicit edge-case behavior but is complete enough for its simplicity.

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

Parameters3/5

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

The input schema fully describes the 'id' parameter with a stable city id example, so the description does not need to add parameter semantics. It reinforces 'stable parse id' but does not add information beyond the schema. With 100% schema 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.

Purpose5/5

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

The description clearly states the action ('Refetch') and the specific resource ('a city by its stable parse id'). It distinguishes this from sibling tools like city_search or city_nearest by emphasizing the stable parse id from an earlier response.

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

Usage Guidelines4/5

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

The phrase 'from an earlier response' gives clear context for when to use this tool: after obtaining a stable city id from a previous parse. It does not explicitly name alternatives, but the context is clear enough for an agent to infer this is the refetch-by-id tool.

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

city_nearestB
Read-only
Inspect

Find the nearest city to coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude in decimal degrees
lonYesLongitude in decimal degrees

TDQS

B3.3/5.0
Behavior2/5

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

The only annotation is readOnlyHint=true, which declares safety. The description adds no extra behavioral context, such as return format, how 'nearest' is determined, or behavior in edge cases (e.g., ocean coordinates). Since there is no output schema, the description carries a heavier burden but does not fulfill it.

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

Conciseness5/5

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

The description is a single, front-loaded sentence: 'Find the nearest city to coordinates.' It contains no filler, is easy to parse, and is appropriately sized for the tool's simplicity.

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

Completeness3/5

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

The tool is simple, with complete parameter documentation and a read-only annotation. However, the lack of an output schema and the absence of any description of the result format (e.g., city name, ID, object, distance) leaves a notable gap. The description is adequate for a basic geospatial lookup but not fully self-sufficient.

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

Parameters3/5

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

Schema description coverage is 100%, with both 'lat' and 'lon' clearly defined in decimal degrees. The description text does not add extra parameter semantics beyond the schema, but the schema already fully specifies the parameters, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states a specific operation: 'Find the nearest city to coordinates.' The verb 'find' and resource 'nearest city' distinguish it from sibling tools like 'city' (which likely queries by ID) and 'city_search' (by name). The geospatial context is explicit.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternative geolocation tools such as 'point', 'postal_nearby', or 'city_search'. There are no exclusions, prerequisites, or mention of situations where a different sibling tool would be more appropriate.

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

continentB
Read-only
Inspect

Look up a continent by code: name, area, population.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesContinent code: AF, AN, AS, EU, NA, OC, SA

TDQS

B3.4/5.0
Behavior3/5

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

The readOnlyHint: true annotation already covers the read-only nature. The description adds that the tool returns name, area, and population, which is useful output context, but it does not disclose other behavioral traits such as error handling, rate limits, or what happens with invalid codes. This is on par with the annotation bar, adding some but not rich behavioral context.

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

Conciseness5/5

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

The description is a single, concise sentence of 9 words. It is front-loaded with the action and resource, and every word earns its place. No fluff or redundancy.

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

Completeness4/5

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

Given the low complexity (single parameter, readOnly annotation, no output schema), the description covers the core purpose and even lists the expected return fields (name, area, population). It does not describe the exact return structure or behavior on invalid input, but for a simple lookup tool, this is mostly sufficient. A higher score would require more detail on output format or error handling.

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

Parameters3/5

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

The schema fully documents the only parameter 'code' with a list of valid codes (AF, AN, AS, EU, NA, OC, SA), achieving 100% schema_description_coverage. The description adds no extra meaning about the parameter itself beyond referencing 'by code'. Baseline of 3 is appropriate since the schema does the heavy lifting.

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

Purpose4/5

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

The description 'Look up a continent by code: name, area, population' clearly states the verb (Look up), resource (continent), and the input method (by code). It is specific enough to understand the tool's function, but it does not explicitly differentiate from sibling tools like continent_countries, which likely serves a related but different purpose.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or mention sibling tools like continent_countries. The only implied usage is when you need continent details by code, but no clear context or alternatives are given.

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

continent_countriesA
Read-only
Inspect

List every country on a continent.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesContinent code: AF, AN, AS, EU, NA, OC, SA

TDQS

A4.2/5.0
Behavior4/5

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

The readOnlyHint annotation already covers the read-only behavior, so the description doesn't need to restate it. It adds the behavioral assertion 'every country', indicating an exhaustive, unpaginated list, which is useful beyond the annotation.

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

Conciseness5/5

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

Single sentence, six words, directly states the action and scope with no filler.

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

Completeness4/5

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

For a simple 1-parameter list tool, the description fully explains the purpose. The lack of an output schema is mitigated by the straightforward nature of returning a list of countries; nothing else is needed.

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

Parameters3/5

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

The schema fully describes the one parameter with allowed values in its description, so the tool description adds no extra semantic value. Baseline 3 is appropriate since schema coverage is 100%.

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

Purpose5/5

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

The description uses a specific verb ('List') and resource ('every country on a continent'), clearly distinguishing it from siblings like country_states (states within a country) and continent (continent details).

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

Usage Guidelines4/5

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

The description clearly implies the use case (fetching countries for a given continent) and the required code parameter provides a direct trigger. It doesn't explicitly mention alternatives or exclusions, but the context is unambiguous for this simple listing tool.

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

countryA
Read-only
Inspect

Look up a country: names, capital, currency, languages, calling code, timezones.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesISO 3166-1 alpha-2 country code, e.g. US

TDQS

A3.8/5.0
Behavior3/5

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

The annotation readOnlyHint=true already signals a safe read operation, and the description does not contradict it. The description adds the specific return fields, which is useful but does not disclose additional behavioral traits such as handling of invalid codes or whether only one country is returned. Given the annotations cover the safety profile, this is adequate.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently lists the key return fields without any redundant phrases. Every word contributes to the core purpose, and there is no waste.

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

Completeness4/5

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

For a simple lookup tool with one well-documented parameter, a read-only annotation, and no output schema, the description sufficiently sets expectations by naming the fields returned. It could optionally mention error handling, but the low complexity means this level of detail is largely complete.

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

Parameters3/5

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

The input schema already describes the parameter 'code' as an ISO 3166-1 alpha-2 country code with an example, providing 100% coverage. The tool description does not add any further meaning about the parameter beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'Look up' and identifies the resource as 'a country', then enumerates the returned fields: names, capital, currency, languages, calling code, timezones. This clearly distinguishes it from sibling tools like country_states or continent, which focus on different aspects.

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

Usage Guidelines3/5

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

The description implies when to use this tool (when you need core country details), but does not explicitly state exclusions or alternatives. For instance, it does not mention that country_states should be used for subnational divisions, though the sibling list hints at that distinction. No explicit when-not-to-use guidance is provided.

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

country_statesA
Read-only
Inspect

List the states, provinces or regions of a country.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesISO 3166-1 alpha-2 country code, e.g. US

TDQS

A3.9/5.0
Behavior3/5

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

The annotation readOnlyHint=true already discloses the safe read-only nature. The description adds no further behavioral context such as response format or handling of invalid codes, but it does not contradict the annotation.

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

Conciseness5/5

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

One concise sentence, front-loaded with the verb, and every word adds value. No redundant information.

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

Completeness5/5

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

For a simple list tool with one well-documented parameter and a read-only annotation, the description fully captures the action. No output schema is needed for this type of operation.

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

Parameters3/5

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

Schema coverage is 100% with a clear description of the 'code' parameter (ISO 3166-1 alpha-2). The tool description adds nothing beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'List' and clearly identifies the resource: 'states, provinces or regions of a country.' It distinguishes from siblings like 'state' and 'state_districts' by addressing the full set of subdivisions for a country.

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

Usage Guidelines3/5

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

Usage is implied: if you need the states of a country, this is the tool. However, it does not explicitly mention alternatives or conditions like 'use state for a specific state' or mention invalid country codes.

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

currencyA
Read-only
Inspect

Look up a currency: name, symbol, decimal places, countries using it.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesISO 4217 code, e.g. USD

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, so the description only needs to add extra context. It discloses the returned data fields (name, symbol, decimal places, countries), giving the agent useful expectations beyond a simple read operation. This is consistent with the annotation.

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

Conciseness5/5

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

The description is a single concise sentence, front-loaded with the core action 'Look up a currency' and immediately lists the key return fields. Every word contributes value with no redundancy.

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

Completeness4/5

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

The tool is simple with one parameter, read-only, and no output schema. The description covers the essential return values (name, symbol, decimal places, countries), which is sufficient for most lookup tasks. It does not specify behavior for invalid codes, but this is a minor gap given the tool's simplicity.

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

Parameters3/5

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

The schema provides 100% coverage for the single parameter 'code' with a clear description (ISO 4217 code). The tool description adds no additional parameter information, so it stays at the baseline for high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Look up a currency' with specific details. It lists the returned fields (name, symbol, decimal places, countries), making it distinct from sibling 'currency_rate' which is about exchange rates. The verb and resource are specific and unambiguous.

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

Usage Guidelines3/5

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

The description implies usage: when you need static currency information, use this tool. However, it does not explicitly mention alternatives or when not to use it, so the guidance is implicit rather than direct.

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

currency_rateB
Read-only
Inspect

Exchange rate between two currencies from official central bank data.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseYesBase currency ISO 4217 code, e.g. USD
quoteYesQuote currency ISO 4217 code, e.g. EUR

TDQS

B3.3/5.0
Behavior3/5

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

The annotation readOnlyHint=true already indicates this is a safe read operation, and the description aligns with that. The description adds a small piece of context by specifying 'official central bank data' as the source, but it does not disclose return format, rate limitations, or any other behavioral traits. It's minimally transparent beyond the annotation.

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

Conciseness5/5

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

The description is a single phrase that front-loads the core function ('Exchange rate') and remains concise without extraneous wording. Every word adds value, making it highly efficient.

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

Completeness3/5

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

For a simple two-parameter tool with no output schema, the description is minimally sufficient but lacks detail on the return type (e.g., numeric rate, object with metadata). It also does not mention whether rates are live or historical. Given the simplicity, this is a marginal but acceptable level of completeness.

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

Parameters3/5

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

The input schema fully describes both parameters (base and quote) as ISO 4217 currency codes with examples. The description adds no extra semantics beyond saying 'between two currencies', which is already implied by the schema. With 100% 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.

Purpose4/5

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

The description clearly states the tool provides an exchange rate between two currencies, sourced from official central bank data. It distinguishes itself from the sibling tool 'currency' by specifying it is a rate lookup. However, it lacks an explicit action verb like 'retrieve' or 'get', making it slightly less specific on that front.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives, nor does it mention any exclusions, prerequisites, or context. It simply states the function without indicating whether it should be preferred over the sibling 'currency' tool for certain use cases.

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

districtB
Read-only
Inspect

Look up a district, county or department by code.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesDistrict code, e.g. 37081
countryNoISO 3166-1 alpha-2 country code, e.g. US

TDQS

B3.3/5.0
Behavior3/5

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

The description is consistent with the readOnlyHint annotation ('look up' implies a read operation). However, it adds no behavioral context beyond the annotation, such as what data is returned, whether a country is required to disambiguate codes, or any rate limits.

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

Conciseness5/5

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

The description is a single concise sentence that immediately communicates the core purpose. No wasted words or redundant information.

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

Completeness3/5

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

For a simple lookup tool with full schema coverage and a readOnly annotation, the description is minimally viable. However, it lacks usage guidance and does not indicate what the response contains, which would be more important given the absence of an output schema.

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

Parameters3/5

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

Schema description coverage is 100%, with 'code' and 'country' both described with examples. The description adds the phrase 'by code' but does not explain the relationship between code and country or the expected format beyond what the schema already provides.

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

Purpose4/5

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

The description uses the specific verb 'look up' and identifies the resource as 'a district, county or department' with the method 'by code'. This is clear and distinguishes it from sibling tools like state_districts or country, though it does not explicitly name alternatives.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like state_districts or city. The description only says 'look up ... by code', leaving the agent to infer the appropriate context from the parameter schema and sibling list.

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

domainA
Read-only
Inspect

Look up a domain: registration, DNS, mail setup. Deep adds richer checks.

ParametersJSON Schema
NameRequiredDescriptionDefault
deepNoInclude the nested deep object with richer fields. Paid on most endpoints.
domainYesDomain name, e.g. example.com

TDQS

A3.6/5.0
Behavior3/5

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

The description goes slightly beyond the readOnlyHint annotation by listing the categories of information (registration, DNS, mail setup), which gives a high-level view of what the lookup returns. However, it does not disclose details like rate limits, response format, or potential paid aspects (though the schema mentions deep is paid). 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.

Conciseness5/5

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

The description is a single, well-structured sentence. It front-loads the main action and then adds a brief note about the deep option. Every word contributes to understanding the tool's purpose.

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

Completeness4/5

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

Despite having no output schema, the description provides a reasonable overview of the data categories (registration, DNS, mail setup) that would appear in results. This makes the tool usable at a basic level. However, it could be improved by explicitly mentioning that domain is a read-only lookup and perhaps noting any limitations or overlap with sibling tools.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already documented. The description's mention of 'Deep adds richer checks' reiterates the schema's meaning for the deep parameter without adding new syntax or subtle behavioral details. This baseline score reflects that the description adds little beyond the schema.

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

Purpose5/5

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

The description clearly states the tool performs a lookup for a domain and specifies the areas covered: registration, DNS, and mail setup. This distinguishes it from sibling tools like ip, email, or mx, which focus on other specific data types.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The sentence 'Deep adds richer checks' hints at the deep parameter usage but does not clarify when to prefer domain over related tools such as mx or email. There are no explicit 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.

elevationB
Read-only
Inspect

Elevation in meters at coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude in decimal degrees
lonYesLongitude in decimal degrees

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description adds marginal transparency by specifying the unit (meters) and the input scope (coordinates). It does not disclose edge cases, data sources, or behavior for invalid inputs, but given the simple read-only nature, a score of 3 is appropriate.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys the essential information without redundancy. Every word earns its place, making it highly concise and well-structured.

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

Completeness4/5

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

Given the tool's simplicity (2 params, read-only annotation, no output schema), the description adequately communicates what the tool returns (elevation in meters). While it leaves out details like error handling or return format, the overall context is sufficient for a straightforward look-up tool.

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

Parameters3/5

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

The input schema has 100% description coverage for both 'lat' and 'lon', each clearly defined. The description offers no additional parameter-level meaning beyond restating that coordinates are used, so it does not exceed the baseline of 3.

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

Purpose4/5

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

The description 'Elevation in meters at coordinates' clearly indicates the tool returns elevation based on lat/lon coordinates. It uses a specific resource (coordinates) and output (elevation in meters), which distinguishes it from sibling tools like country, city, or weather. However, it lacks a verb such as 'get' or 'retrieve', making it slightly less explicit.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. Sibling tools cover a wide range of location and data types, but the description does not contextualize elevation among them. This is a clear gap in usage guidance.

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

emailA
Read-only
Inspect

Validate an email address: syntax, domain, MX, disposable and role flags. Deep runs a live mailbox verification.

ParametersJSON Schema
NameRequiredDescriptionDefault
deepNoInclude the nested deep object with richer fields. Paid on most endpoints.
emailYesEmail address to validate

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is known. The description adds behavioral context by explaining that 'Deep runs a live mailbox verification,' which goes beyond the structured data without contradicting it.

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

Conciseness5/5

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

The description is two short sentences, front-loaded with the primary purpose. Every clause adds substance—no filler or redundancy.

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

Completeness4/5

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

With only two parameters and no output schema, the description sufficiently covers the tool's core behavior and the deep option. It doesn't describe the response format, but for a validation tool this is arguably acceptable given the simple scope.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds value by clarifying that 'deep' triggers a live verification, complementing the schema's generic 'richer fields' wording for the boolean parameter.

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

Purpose5/5

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

The description clearly states the tool validates an email address with specific checks (syntax, domain, MX, disposable, role), distinguishing it from sibling tools like phone or mx. The verb 'validate' and resource 'email address' are explicit.

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

Usage Guidelines4/5

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

The description implies usage for email validation but does not explicitly compare to alternatives or state when not to use. However, the clear focus and the 'deep' option provide context, so it's solid but lacks explicit exclusions.

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

emojiA
Read-only
Inspect

Look up an emoji by name or character: unicode, hex, skin tones.

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiYesEmoji name or the character itself, e.g. rocket

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description discloses that the tool accepts both names and characters and returns unicode, hex, and skin tones. This adds useful behavioral context for a read-only lookup.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no waste. Every word contributes to understanding the tool's purpose and output.

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

Completeness4/5

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

For a simple 1-parameter, read-only lookup tool, the description adequately covers purpose and expected output. It could mention handling of not-found input, but overall it is complete enough.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter, so the baseline is 3. The description reinforces the parameter meaning but adds no new parameter-specific details beyond the schema.

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

Purpose5/5

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

The description uses a specific verb ('look up') and clarifies the resource (an emoji), plus the output fields ('unicode, hex, skin tones'). It clearly distinguishes from sibling emoji_search by implying exact lookup vs. search.

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

Usage Guidelines4/5

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

The description provides clear context: use when you have an emoji name or character to look up. It doesn't explicitly mention exclusions or alternatives like emoji_search, but the context is strong enough for a single-purpose lookup tool.

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

holidayA
Read-only
Inspect

Public holidays and cultural observances for a country and year. Each row carries type: public or observance.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoYear, default current
countryYesISO 3166-1 alpha-2 country code, e.g. US

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, so the read-only nature is established. The description adds behavioral detail about the return row structure (each row carries a type field with values 'public' or 'observance'), which enriches beyond annotations. No contradictions detected.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the core purpose, and contains no unnecessary words. Every word contributes to understanding.

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

Completeness3/5

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

The tool is simple with only two parameters, and the description covers its main function. However, without an output schema, the description does not detail other returned fields (e.g., date, name) or ordering, which would be helpful. It is adequate but leaves some gaps.

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

Parameters3/5

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

Schema description coverage is 100%: both 'country' and 'year' have descriptive text in the schema. The description itself adds no extra parameter meaning, but with full 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.

Purpose4/5

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

The description clearly identifies the tool's purpose: returning public holidays and cultural observances for a country and year. It mentions the row type (public or observance), which adds specificity. While it lacks a direct verb like 'list' or 'get', the intent is unambiguous and distinct from sibling tools like holiday_date by the country/year scope.

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

Usage Guidelines3/5

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

The description implies usage when needing holidays for a country and year, but it does not explicitly state when to prefer this tool over alternatives like holiday_date, nor does it mention exclusions. The context is present but guidance on alternatives is absent.

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

holiday_dateA
Read-only
Inspect

Whether a specific date is a holiday or observance in a country. holiday is null when it is not.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate as YYYY-MM-DD
countryYesISO 3166-1 alpha-2 country code, e.g. US

TDQS

A3.8/5.0
Behavior4/5

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

The description discloses that 'holiday is null when it is not', which clarifies the return behavior. Combined with the readOnlyHint annotation, this provides adequate transparency for a simple read operation.

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

Conciseness5/5

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

The description is a single, well-structured sentence that conveys the core purpose and a key behavioral detail. No fluff, front-loaded.

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

Completeness4/5

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

For a simple look-up tool with full schema coverage and a readOnlyHint, the description is sufficiently complete. It could benefit from clarifying the difference from the sibling 'holiday' tool, but the core functionality is clear.

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

Parameters3/5

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

The input schema already provides full descriptions for both parameters (date format and ISO country code), covering 100% of the schema. The description adds no additional parameter semantics, 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.

Purpose4/5

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

The description states the tool checks whether a specific date is a holiday or observance in a country. It is clear and specific about the resource and action, but it does not explicitly differentiate from the sibling tool 'holiday', which could be a related listing tool.

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

Usage Guidelines3/5

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

The usage context is implied: use this tool when you want to check a specific date's holiday status for a country. However, there is no explicit guidance on when to prefer this over the sibling 'holiday' tool or any exclusions.

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

ipA
Read-only
Inspect

Look up an IPv4 or IPv6 address: country, region, ASN, timezone. Deep adds datacenter, relay and tor flags.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIPv4 or IPv6 address, e.g. 8.8.8.8
deepNoInclude the nested deep object with richer fields. Paid on most endpoints.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so the description doesn't need to restate that. It adds useful context that 'deep' returns datacenter, relay, and tor flags, going beyond the schema's generic 'richer fields.' It doesn't mention error handling or rate limits, but the read-only safety is already established.

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

Conciseness5/5

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

The description is a single, concise sentence front-loaded with the action. Every word contributes to understanding the tool's purpose and the deep parameter's effect, with no redundancy.

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

Completeness4/5

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

For a simple 2-parameter lookup tool with no output schema, the description covers purpose and key returned fields. The large sibling tool list is not addressed, but the tool's simplicity makes this less critical. Could mention invalid IP handling, but it's adequate as-is.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for both parameters. The description adds meaning by naming specific fields returned by 'deep' (datacenter, relay, tor) and listing top-level outputs, enriching the semantic value beyond the schema.

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

Purpose4/5

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

The description uses a specific verb ('Look up') and identifies the resource (IPv4/IPv6 address) with key output fields (country, region, ASN, timezone). It doesn't explicitly distinguish from sibling 'ip_self' but the generic phrasing conveys looking up an arbitrary address.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives like ip_self, state, or city. It doesn't mention exclusions or recommend alternative tools for related use cases, leaving the choice to inference.

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

ip_selfA
Read-only
Inspect

Look up the public IP of the machine running this MCP server.

ParametersJSON Schema
NameRequiredDescriptionDefault
deepNoInclude the nested deep object with richer fields. Paid on most endpoints.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the agent knows it is safe. The description adds the 'machine running this MCP server' context but does not mention potential external network calls or cost details (the 'Paid' note is in the schema, not the description). This is adequate but not rich.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that communicates the complete purpose with zero waste. It is highly concise and well-structured.

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

Completeness5/5

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

This is a very simple read-only lookup with strong annotation coverage and a fully documented schema. The description adequately covers the tool's purpose and scope, and no return format explanation is necessary for something as simple as an IP address.

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

Parameters3/5

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

The schema covers 100% of the single parameter with a descriptive explanation ('Include the nested deep object with richer fields. Paid on most endpoints.'). The tool description adds no additional parameter information, so it meets the baseline but does not exceed it.

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

Purpose5/5

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

The description clearly states the action ('Look up') and the specific resource ('public IP of the machine running this MCP server'), which distinguishes it from the sibling 'ip' tool. It is specific and unambiguous.

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

Usage Guidelines4/5

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

The context is clear: this is for the server's own public IP, distinct from the 'ip' tool which likely handles arbitrary IPs. However, it does not explicitly state when not to use it or name alternatives, so it stops short of a 5.

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

languageA
Read-only
Inspect

Look up a language by BCP 47 or ISO 639-3 code: names, script, direction.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesLanguage code, e.g. en, ja, gsw

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so safety is covered. The description adds behavioral context by specifying the accepted code standards (BCP 47, ISO 639-3) and the output fields, going 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.

Conciseness5/5

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

One compact sentence containing the action, parameter scope, and return content. No wasted words, fully front-loaded.

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

Completeness5/5

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

This is a simple one-parameter lookup tool with no output schema, and the description sufficiently covers inputs, accepted standards, and return fields. No significant gaps.

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

Parameters4/5

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

The schema already describes the 'code' parameter with examples. The description enriches parameter understanding by naming the exact code standards accepted, which adds semantic precision not present in the schema alone.

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

Purpose5/5

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

The description clearly states the tool's function: 'Look up a language by BCP 47 or ISO 639-3 code' and specifies the returned data: 'names, script, direction'. This is a specific verb+resource with enough detail to distinguish it from sibling tools.

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

Usage Guidelines4/5

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

The description implies when to use the tool: whenever a language code needs to be resolved to detailed language info. It doesn't explicitly mention alternatives, but no sibling tool provides language lookup, 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.

mxA
Read-only
Inspect

MX records and mail provider for a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name

TDQS

A3.5/5.0
Behavior3/5

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

The annotation readOnlyHint=true already signals this is a safe read operation. The description adds the concept of 'mail provider' but does not mention any behavioral details such as DNS lookup behavior, result formatting, or potential errors. It does not contradict the annotation.

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

Conciseness4/5

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

The description is a single short phrase with no wasted words, making it very concise. However, it lacks a verb, which slightly reduces its clarity as a complete statement of what the tool does.

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

Completeness4/5

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

For a simple one-parameter tool with no output schema, the description gives a reasonable sense of what is returned (MX records and provider). It does not specify the exact format or whether multiple records are returned, but given the simplicity, it is adequate.

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

Parameters3/5

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

The schema fully describes the only parameter 'domain' as 'Domain name', and the description echoes that by saying 'for a domain'. Since schema coverage is 100%, the description does not need to add much, and it adds no additional semantic detail beyond what is already in the schema.

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

Purpose4/5

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

The description clearly identifies the tool as returning MX records and mail provider information for a domain. It distinguishes itself from sibling tools like domain and email by specifying the exact DNS record type, though it lacks an explicit verb such as 'looks up' or 'returns'.

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

Usage Guidelines3/5

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

The phrase 'for a domain' implies the tool should be used when needing MX records or mail provider details for a given domain, but it does not give explicit guidance on when to choose this over related sibling tools like domain or email. There are no stated 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.

phoneA
Read-only
Inspect

Validate and parse a phone number: country, type, formats. Pass country for national-format numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
deepNoInclude the nested deep object with richer fields. Paid on most endpoints.
numberYesPhone number, e.g. +14155552671
countryNoISO 3166-1 alpha-2 country code for national-format numbers, e.g. US

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds a behavioral note about country usage but does not disclose error handling, rate limits, or side effects. It does not contradict annotations, but it also does not go beyond the provided annotation context.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the primary action ('Validate and parse a phone number') and includes a conditional usage tip. Every word 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.

Completeness4/5

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

Given the tool's simplicity and lack of output schema, the description provides enough context by mentioning expected outputs (country, type, formats) and the key parameter condition. It does not explain the return structure in detail, but for a basic validation tool with high schema coverage, it is sufficiently complete.

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

Parameters3/5

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

The schema has 100% parameter description coverage, so the baseline is 3. The description repeats some schema info (e.g., country for national-format numbers) but does not add new meaning to the parameters. The deep parameter is only explained in the schema, not in the description.

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

Purpose5/5

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

The description clearly states the tool validates and parses a phone number, listing specific output aspects: country, type, and formats. It is specific with a verb and resource, and it differentiates from siblings like email or domain by focusing on phone numbers.

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

Usage Guidelines4/5

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

The description provides a concrete usage guideline: 'Pass country for national-format numbers', which tells the agent when the country parameter is needed. It implies general use for phone number validation without explicitly naming alternatives, but the guidance is clear and actionable.

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

pointA
Read-only
Inspect

Reverse geocode coordinates to country, state, district and nearest city. Deep adds richer admin data.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude in decimal degrees
lonYesLongitude in decimal degrees
deepNoInclude the nested deep object with richer fields. Paid on most endpoints.

TDQS

A3.8/5.0
Behavior3/5

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

With readOnlyHint=true in annotations, the safety profile is covered. The description adds the detail that 'deep' provides richer admin data, but does not disclose response structure or error behavior, which is acceptable for a simple read-only tool.

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

Conciseness5/5

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

Two short sentences with no filler. The first sentence states the core function, and the second addresses the optional parameter. Very efficient.

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

Completeness4/5

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

For a read-only reverse geocoder with 3 parameters, the description covers the main purpose and the deep parameter. It lists the output fields, which is helpful given the absence of an output schema. Minor gaps like return format or limitations prevent a perfect score.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description's mention of 'Deep adds richer admin data' adds slight semantic value for the deep parameter, aligning with the schema's 'richer fields' description.

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

Purpose5/5

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

The description clearly states the tool performs reverse geocoding from coordinates, listing the specific administrative outputs (country, state, district, nearest city). This distinguishes it from sibling tools that operate on names or identifiers.

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

Usage Guidelines3/5

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

Usage is implied: if you have coordinates and need admin hierarchy, this is the tool. However, there is no explicit comparison to alternatives like city_nearest or postal_nearby, nor exclusions for when not to use it.

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

postalA
Read-only
Inspect

Look up a postal code: place name, coordinates, state, district, timezone, elevation. Country is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesPostal code, e.g. 28202
countryYesISO 3166-1 alpha-2 country code, e.g. US

TDQS

A4/5.0
Behavior3/5

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

The readOnlyHint annotation already signals a safe read operation. The description adds the return fields and the country requirement, which is useful context, but it does not disclose additional behavioral details like coordinate format or potential limitations.

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

Conciseness5/5

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

The description is two concise sentences that front-load the action and enumerate the return fields without any redundant wording or filler.

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

Completeness4/5

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

Because there is no output schema, the description sensibly lists the return fields. It also states the country requirement, covering the essential context for a simple lookup, though it leaves minor details (e.g., coordinate format) unspecified.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for both code and country. The description only reinforces the required country parameter, adding minimal value beyond the schema.

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

Purpose5/5

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

The description uses a specific verb 'look up' with the resource 'postal code' and lists the returned fields (place name, coordinates, state, district, timezone, elevation). This clearly distinguishes it from sibling tools like postal_nearby and postal_distance which imply proximity-based queries.

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

Usage Guidelines4/5

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

The description clearly frames the tool as a direct postal code lookup, and the note 'Country is required' gives a clear prerequisite. However, it does not explicitly mention alternative tools such as postal_nearby or postal_distance, so it provides context without exclusions.

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

postal_distanceB
Read-only
Inspect

Distance between two postal codes in the same country.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesSecond postal code
fromYesFirst postal code
countryYesISO 3166-1 alpha-2 country code, e.g. US

TDQS

B3.4/5.0
Behavior3/5

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

The readOnlyHint annotation already discloses this is a safe read operation. The description adds the meaningful constraint that both postal codes must be in the same country, but does not disclose return units (e.g., km/miles), behavior for invalid codes, or whether it returns a straight-line or driving distance. This is acceptable but not rich.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero filler. It conveys the core function and the key constraint without unnecessary words, fully earning its place.

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

Completeness3/5

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

The tool is simple with only three required parameters and no output schema. The description does not mention the return value format or units, which could be a gap for an agent needing to interpret the result. However, the tool's purpose is trivial enough that a skilled agent can infer the output is a distance measure. The missing details about units and error handling prevent a higher score.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already describes all three parameters. The description adds semantics beyond the schema by emphasizing the 'same country' requirement, which clarifies that the 'country' parameter must match for both 'from' and 'to' postal codes. This extra context is valuable but not extensive.

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

Purpose4/5

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

The description clearly states the tool's function: computing distance between two postal codes in the same country. It is unambiguous, though expressed as a noun phrase rather than an explicit verb+resource construction. It distinguishes from siblings like 'postal' and 'postal_nearby' by focusing on distance calculation, but does not explicitly name them.

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

Usage Guidelines2/5

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

The description implies usage for distance calculations between postal codes but provides no explicit 'when to use this vs alternatives' guidance. It mentions the constraint 'in the same country,' which is a precondition, but does not discuss exclusions or alternatives such as 'postal_nearby' for proximity queries. There is no comparative guidance.

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

postal_nearbyA
Read-only
Inspect

List postal codes near a given one, sorted by distance.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesPostal code to search around
unitNoRadius unit, default km
radiusNoSearch radius
countryYesISO 3166-1 alpha-2 country code, e.g. US

TDQS

A3.7/5.0
Behavior3/5

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

The readOnlyHint annotation already signals a safe read operation. The description adds the behavioral detail that results are sorted by distance, which is useful beyond the annotation. However, it does not disclose other potential behaviors such as default radius, maximum results, or pagination, leaving room for more context.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the core function and a key behavior (sorting). Every word earns its place, and there is no redundant or missing filler.

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

Completeness3/5

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

With no output schema, the description could have clarified what the result includes (e.g., postal codes with distances). It also does not mention default units or radius limits, though those are in the schema. Given the schema covers parameters and the sibling context provides some structure, the description is adequate but not rich enough for a higher score.

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

Parameters3/5

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

The input schema provides descriptions for all four parameters at 100% coverage. The description does not add much beyond schema semantics—it reiterates the concept of 'near' but does not clarify parameter interactions (e.g., what happens if radius is omitted). Since schema coverage is high, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('List'), resource ('postal codes near a given one'), and distinguishing detail ('sorted by distance'). This separates it from siblings like postal or postal_distance, which focus on individual codes or distance calculations.

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

Usage Guidelines3/5

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

The description implies usage: use this tool when you need nearby postal codes sorted by distance. However, it does not explicitly mention when to prefer this over alternatives like postal_distance or postal, nor does it state any exclusions or prerequisites. The context is clear but not explicitly differentiated.

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

stateA
Read-only
Inspect

Look up a state, province or region by its code within a country.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesState code, e.g. NC
countryYesISO 3166-1 alpha-2 country code, e.g. US

TDQS

A4/5.0
Behavior3/5

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

The readOnlyHint annotation already declares that this is a safe read operation, so the description doesn't contradict it. The description adds 'Look up' which aligns, but it doesn't disclose additional behavioral details such as return format or edge cases. For a simple lookup, this is acceptable but not rich.

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

Conciseness5/5

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

The entire description is a single, focused sentence that directly conveys the tool's purpose without unnecessary words. It front-loads the action and resource.

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

Completeness4/5

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

The tool is a straightforward read-only lookup with both parameters documented in the schema, so the description doesn't need to elaborate much. It lacks an explicit mention of the return value, but given the sibling structure and the name 'state', this is a minor gap. Overall, sufficient for correct invocation.

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

Parameters3/5

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

The input schema already provides descriptions for both parameters with 100% coverage, including examples (NC, US). The description's 'by its code within a country' adds no new information beyond the schema. Under high schema coverage, the baseline is 3.

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

Purpose5/5

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

The description uses a specific verb ('Look up') and clearly identifies the resource (state/province/region) and the lookup key (code within a country). It differentiates from sibling tools like country_states and state_districts, which serve different listing purposes.

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

Usage Guidelines4/5

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

The description implies the required inputs (a code and a country) and the lookup use case. It doesn't explicitly mention alternatives, but the context of sibling tools (e.g., country_states for lists) makes the usage clear. No exclusions are stated, so a 4 is appropriate.

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

state_districtsA
Read-only
Inspect

List the districts, counties or departments of a state.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesState code, e.g. NC
countryYesISO 3166-1 alpha-2 country code, e.g. US

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description does not need to assert read-only behavior. It adds the scope of returned entities (districts/counties/departments), but does not disclose other behavioral traits such as response shape or error behavior. This is consistent with annotations, not contradictory.

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

Conciseness5/5

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

The description is a single, concise sentence with no filler. It front-loads the action and resource, making it efficient and easy to parse.

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

Completeness4/5

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

For a simple two-parameter, read-only list tool with full schema coverage and a read-only annotation, the description is adequate. It lacks an explicit mention of return format (e.g., names vs codes), but given the low complexity and available annotations, it is mostly complete. A full score would require more detail on the output structure.

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

Parameters3/5

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

Schema description coverage is 100% with both 'code' and 'country' explained. The description does not add additional parameter context beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'districts, counties or departments of a state', making the tool's purpose explicit. It distinguishes from sibling tools such as country_states (states of a country) and district (singular lookup) by specifying the plural subdivision of a state.

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

Usage Guidelines3/5

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

The description implies usage when you need subdivisions of a state, but it does not explicitly state when to use this tool versus alternatives like country_states or district. No exclusions or prerequisites are mentioned, so guidance is only implicit.

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

timezoneA
Read-only
Inspect

Look up an IANA timezone: current offset, DST state, local time. Pass at for a specific instant.

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoISO 8601 instant to evaluate, default now
timezoneYesIANA timezone id, e.g. America/New_York

TDQS

A4.3/5.0
Behavior4/5

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

The readOnlyHint annotation is consistent with the description, and the description adds behavioral context beyond the annotation by specifying the exact information returned (offset, DST state, local time) and the optional instant parameter. No contradictory or hidden behaviors are omitted.

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

Conciseness5/5

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

The description is two short sentences, front-loaded with the primary action and output. Every word adds value, with no fluff or repetition of schema fields. This is an example of efficient, concise writing.

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

Completeness5/5

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

For a simple read-only lookup with two parameters and no output schema, the description fully covers the tool's behavior and return values. It explains both the default (current time) and the optional instant, making it complete 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.

Parameters3/5

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

The input schema already provides full descriptions for both parameters (timezone and at), achieving 100% schema coverage. The description adds a minimal semantic hint for 'at' ('Pass at for a specific instant') but does little beyond what the schema states, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Look up an IANA timezone' with a specific verb and resource, and enumerates the output fields: 'current offset, DST state, local time'. This distinguishes it from sibling tools like weather or country lookup.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool and mentions the optional 'at' parameter for evaluating a specific instant. It does not explicitly name alternatives or exclusions, but the tool's purpose is unique among the sibling list, so the guidance is sufficient.

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

useragentA
Read-only
Inspect

Parse a User-Agent string: browser, OS, device, bot detection.

ParametersJSON Schema
NameRequiredDescriptionDefault
uaYesThe User-Agent string to parse
deepNoInclude the nested deep object with richer fields. Paid on most endpoints.

TDQS

A4.2/5.0
Behavior4/5

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

The description adds behavioral context by listing the extracted categories (browser, OS, device, bot detection), complementing the readOnlyHint annotation. It does not contradict annotations and provides useful information about what the tool returns.

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

Conciseness5/5

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

The description is a single, focused sentence that conveys the essential purpose without unnecessary details.

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

Completeness4/5

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

Given the simplicity of the tool and the presence of annotations, the description covers the core functionality. It does not explain return format, but the listed parse outputs (browser, OS, etc.) give a reasonable picture. A 4 is appropriate.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are fully documented in the schema. The description does not add additional parameter-level details beyond stating the tool parses a UA string, so a baseline 3 is appropriate.

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

Purpose5/5

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

The description uses the specific verb 'Parse' and identifies the resource (User-Agent string) and the outputs (browser, OS, device, bot detection). This clearly distinguishes it from sibling tools that handle locations, email, phone, etc.

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

Usage Guidelines4/5

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

The description clearly indicates the tool's purpose but does not explicitly mention when not to use it or name alternatives. However, given the unique domain, the usage context is clear, so it earns a 4.

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

weatherA
Read-only
Inspect

Current weather observation at coordinates from official national agencies. Every measurement ships metric and imperial side by side. Deep adds forecast and alerts where available.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude in decimal degrees
lonYesLongitude in decimal degrees
deepNoInclude the nested deep object with richer fields. Paid on most endpoints.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true; description adds context that data comes from official national agencies, measurements include both metric and imperial, and deep adds forecast/alerts. This goes beyond simple read-only labeling and is consistent 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.

Conciseness5/5

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

Two sentences, front-loaded with the core function, and no wasted words. Each sentence earns its place, providing main behavior and optional enhancement.

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

Completeness4/5

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

Tool has 3 params, no output schema, and simple read-only nature. Description covers purpose, data source, units, and deep option. It doesn't list specific fields like temperature/humidity, but this is acceptable for a straightforward weather observation tool.

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

Parameters4/5

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

Schema covers all three parameters thoroughly (lat, lon, deep). Description adds semantic value by explaining deep's effect ('adds forecast and alerts') beyond the schema's generic 'richer fields' description, giving agents a clearer use-case.

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

Purpose5/5

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

Description clearly states 'Current weather observation at coordinates' – a specific verb (observation) and resource (coordinates). It distinguishes from sibling geo tools by focusing on weather, with no ambiguity.

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

Usage Guidelines4/5

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

Implies usage for current conditions at lat/lon, and mentions 'deep' for forecast/alerts, giving conditional guidance. No explicit alternatives or exclusion criteria, but siblings are clearly not weather tools, making the context clear.

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. 32 tool updatesv0.1.3
    • First observedcity
    • First observedcity_id
    • First observedcity_nearest
    • First observedcity_search
    • First observedcontinent
    • First observedcontinent_countries
    • First observedcountry
    • First observedcountry_states
    • First observedcurrency
    • First observedcurrency_rate
    • First observeddistrict
    • First observeddomain
    • First observedelevation
    • First observedemail
    • First observedemoji
    • First observedemoji_search
    • First observedholiday
    • First observedholiday_date
    • First observedip
    • First observedip_self
    • First observedlanguage
    • First observedmx
    • First observedphone
    • First observedpoint
    • First observedpostal
    • First observedpostal_distance
    • First observedpostal_nearby
    • First observedstate
    • First observedstate_districts
    • First observedtimezone
    • First observeduseragent
    • First observedweather

TDQS

A3.7/5.0

Scored across 32 tools

Disambiguation5/5

Each tool targets a distinct entity or operation. Geographic tools cover separate hierarchical levels (continent, country, state, district, city, postal), and lookups, searches, and 'nearest' operations are clearly differentiated. No two tools appear to do the same thing.

Naming Consistency5/5

All tools use lowercase snake_case with a consistent noun-based pattern, sometimes qualified by an underscore (e.g., city_search, postal_distance, holiday_date). The naming is uniform and predictable across the entire set.

Tool Count2/5

With 32 tools, the server exceeds the 25 threshold for 'too many', making it feel heavy. While the broad scope of data lookups justifies a larger surface, the count is high and may overwhelm agents.

Completeness5/5

The server covers an extensive range of domains—geographic, IP, contact validation, finance, language, time, holidays, and emoji—with both basic and advanced operations. There are no obvious gaps or dead ends within its stated purpose.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers