site
Server Details
VPNCompareHQ: the site's own MCP server — dataset, enquiry (enquiry = a human handoff, not a...
- Status
- Healthy
- Uptime
- 99.8% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 10 tools
Each dataset tool targets a distinct query shape: schema, provenance, exact row lookup, substring search, aggregates, ranking, and multi-value comparison. The three enquiry tools are also cleanly separated into explain, introspect, and submit roles, so an agent is unlikely to misselect.
All names use snake_case with domain prefixes (dataset_, enquiry_) and a final action or noun token. There are minor inconsistencies—dataset_compare and enquiry_describe are verb-like while most dataset_* names are noun-like, and submit_enquiry places the verb first—but the pattern remains predictable.
Ten tools is well within the typical 3–15 range for a dataset Q&A plus enquiry server. The seven dataset tools each cover a distinct query shape, and the three enquiry tools cover description, fields, and submission without redundancy.
For a read-only dataset, the surface covers schema discovery, provenance, exact and free-text lookup, aggregation, ranking, and comparison. The enquiry flow covers explanation, field introspection, validation, consent, and two-step submission, leaving no obvious dead ends.
Available Tools
10 toolsdataset_columnsDataset columns and shapeAInspect
The columns, which of them are numeric, the row count and the provenance banner of the VPNCompareHQ dataset. Call this first to learn the schema.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it fully enumerates what the caller receives, which is the key behavioral fact for a no-parameter metadata reader. It omits anything about permissions or response format, but there are no destructive or side-effecting behaviors to disclose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, contents front-loaded followed by an actionable directive, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description is responsible for describing the return value, and it does so by enumerating the four things returned. It is complete enough to call correctly, though it does not mention ordering or format of the returned banner/column list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is no parameter syntax the description needs to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete outputs (columns, numeric flags, row count, provenance banner) of a specific dataset, so an agent knows exactly what this returns. It stops short of explicitly distinguishing itself from the sibling dataset_provenance, whose territory the 'provenance banner' overlaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Call this first to learn the schema' gives clear ordering guidance for orientation before other dataset_* calls. It does not name alternatives or state when not to use it, but the intended workflow is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataset_compareCompare rows side by sideBInspect
The rows of the VPNCompareHQ dataset whose column is any of the given values, in the order given — for "X vs Y" questions.
| Name | Required | Description | Default |
|---|---|---|---|
| column | Yes | ||
| values | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the whole behavioral burden. It does disclose a real trait beyond the schema: returned rows preserve the order of the supplied values. But it says nothing about read-only semantics, output shape, error behavior when a value matches nothing, or the 10-value ceiling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, and the core matching rule leads. The em-dash usage clause lands awkwardly at the end of a grammatically tangled clause, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations mean the description should describe the return payload, and 'the rows' is only a vague gesture at it. For a compare-oriented tool, it also omits the value-count limit and how missing matches surface, leaving meaningful gaps for an agent to guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does clarify that 'values' are matched against 'column' and that value order drives row order, which is real added meaning. It still never explains what a valid column name looks like (presumably from dataset_columns) or the minimum/maximum value count.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (rows of the VPNCompareHQ dataset), the matching condition (column equals any of the given values), and the ordering guarantee. It is a noun-phrase fragment rather than a verb-led statement, and it never differentiates itself from the closely related dataset_search or dataset_row siblings, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a genuine usage trigger with '"X vs Y" questions', which tells the agent when this is the right call. However it names no alternative tool and no when-not condition, so the agent must infer the boundary between this and dataset_search on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataset_provenanceWhere this data comes from, and how to cite itAInspect
The source, the date it was computed, the licence and the citation for the VPNCompareHQ dataset. Read this to attribute a figure correctly.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. With zero parameters and no output schema, it usefully enumerates the returned fields (source, date, licence, citation) and implies a read-only metadata lookup, though it never states read-only status, caching, or freshness guarantees explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the returned content front-loaded and the use case trailing; every clause earns its place and there is no filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, annotation-free tool with no output schema, the description does the necessary work by listing the exact fields an agent will receive and telling it why to call the tool. Nothing required to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline is 4. Schema coverage is reported as 100%, but with an empty properties object it is simply a parameterless call with no syntax to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact content the tool returns (source, computation date, licence, citation) for a named dataset, which cleanly separates it from the data-oriented siblings (dataset_columns, dataset_stats, dataset_search, dataset_row). An agent can tell what this tool produces without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Read this to attribute a figure correctly" gives a concrete triggering situation, which is exactly when an agent would need provenance rather than raw values. It does not name an explicit alternative or a when-not condition, but no sibling overlaps this purpose, so the missing exclusion is low-cost.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataset_rowLook a row up by an exact keyBInspect
The rows of the VPNCompareHQ dataset where a column equals a value exactly (case-insensitive).
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| column | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses matching semantics (exact equality, case-insensitive), which is real behavioral information. It does not disclose how many rows may be returned, any limit/pagination behavior, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the dataset scope and the matching rule are both stated efficiently. Slightly compressed for the amount of behavior it must convey.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and 0% parameter coverage, the description should clarify what a result looks like and whether multiple matching rows are returned. A case-insensitive equality match can plausibly return many rows, yet limits and return shape are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the two required parameters, so the description must compensate. Its 'a column equals a value' phrasing maps loosely onto the column/value pair and adds the case-insensitive equality rule, but neither the expected column identifier format nor valid value forms are explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific operation on a specific resource: retrieves rows of the VPNCompareHQ dataset where a column equals a value. The 'exactly (case-insensitive)' qualifier distinguishes it from the sibling dataset_search, though it never names that alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The title 'Look a row up by an exact key' and the exact-match qualifier imply usage (lookup known value vs exploration), but there is no explicit when-to-use, when-not-to-use, or named alternative among the seven dataset_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataset_searchSearch the datasetBInspect
Rows of the VPNCompareHQ dataset whose cells contain the query (case-insensitive), up to 50.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | text to look for in any cell |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses case-insensitive matching and the 50-row cap, which are real behavioral traits, but says nothing about result ordering, truncation indication, permissions, or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the resource and matching rule and appends the result cap. Every clause carries information; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema, the description is adequate but thin: it does not state what a returned row contains beyond being rows, nor the ordering of matches, and limit remains undocumented except for its ceiling. The essentials to invoke it are present, but not enough to predict results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: query is documented in the schema while limit is not (only min/max constraints). The description partially compensates by restating the 'up to 50' ceiling on limit, but adds no ordering or semantics for how limit interacts with ranking.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: search rows of a named dataset by cell content, case-insensitive, capped at 50. That is far more precise than the title alone, but it never names or distinguishes itself from siblings like dataset_row or dataset_top, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives among the nine siblings (dataset_row for a specific row, dataset_top, dataset_stats, etc.). The scope is implied by the word 'search' but nothing routes the agent explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataset_statsSummary statistics for a numeric columnAInspect
count, min, max, mean, median and sum of a numeric column of the VPNCompareHQ dataset (grouping commas and currency are handled; non-numeric rows are excluded and counted).
| Name | Required | Description | Default |
|---|---|---|---|
| column | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does meaningful work: grouping commas and currency symbols are handled, and non-numeric rows are silently excluded but counted. It does not state what happens when the named column does not exist or is entirely non-numeric, so error behavior remains unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the returned metrics before the parsing caveats in parentheses. Nothing is wasted, though the parenthetical is crammed rather than broken out.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields, which is the key missing structured information. With no annotations and one simple parameter, the remaining gaps (error cases, column naming convention) are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% with one required string parameter, so the description must compensate. It adds the constraint that the column must be numeric and belong to the VPNCompareHQ dataset, but gives no format, casing, or example value for the column argument.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the exact metrics returned (count, min, max, mean, median, sum) and scopes them to a numeric column of the VPNCompareHQ dataset, which an agent can distinguish from dataset_top or dataset_compare. It stops short of explicitly contrasting itself with any sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the metrics listed — an agent can infer this is for summarizing one numeric column — but the description never states when to choose this over dataset_top, dataset_compare, or dataset_search, nor any prerequisite (e.g., the column must be numeric).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataset_topRank rows by a numeric columnBInspect
The highest (or lowest) rows of the VPNCompareHQ dataset by a numeric column — "which is the most/least X".
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| column | Yes | ||
| ascending | No | true for the lowest first; default highest first |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says nothing about the 50-row cap, tie-breaking behavior, whether the column must be numeric, or read-only status. For a mutation-free ranking tool the risk is low, but the disclosure is essentially just a restatement of the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler; the operation and the motivating question are stated immediately. It is arguably too terse to be fully helpful, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should ideally explain the return shape (top rows with all columns?) and limit/tie behavior. For a simple ranking tool the omission is not severe, but the definition is thinner than ideal given the empty structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only 'ascending' is documented). The description conveys that 'column' is a numeric column and that direction is either highest or lowest, which covers the two most important parameters semantically. The 'limit' parameter and its 1–50 bound remain unexplained in both description and schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific operation (return highest/lowest rows) on a specific resource (the VPNCompareHQ dataset) via a numeric column. An agent can distinguish it from dataset_row or dataset_search. It stops short of naming the sibling alternatives, but the verb+resource combination is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The quoted framing "which is the most/least X" implies the intended question type (extremum lookups), which is a form of usage guidance. However, it never states when to prefer this over dataset_search, dataset_stats, or dataset_columns, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enquiry_describeWhat you get: an ENQUIRY with a human (not a purchase, not a guaranteed quote)AInspect
Read first. States plainly what submit_enquiry does on VPNCompareHQ: it starts an enquiry with human providers who quote directly. Nothing is bought, ordered or paid; no quote is guaranteed; it is free. Also returns who receives the details, the consent wording, and how the person confirms.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the behavioral profile of the thing being described (nothing bought/ordered/paid, no guaranteed quote, it's free) and enumerates the returned content, which gives good context. However it says little about the tool's own behavior (that it is a side-effect-free read, has no auth/rate considerations, etc.), so it is adequate rather than rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the imperative 'Read first.' Most content earns its place, though the title's 'not a purchase, not a guaranteed quote' is partially restated in the body ('Nothing is bought, ordered or paid; no quote is guaranteed'), a minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema info tool, the description tells the agent what it will get back (recipients, consent wording, confirmation flow) and what the described process entails, which is sufficient. It stops short of stating the return format explicitly, but the content is clear enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so per the rubric the baseline is 4. There is nothing for the description to add or clarify on parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys that this read-only tool states plainly what submit_enquiry does and returns the recipients, consent wording, and confirmation flow. The framing is a bit meta ('Read first. States plainly what submit_enquiry does'), describing the subject matter rather than the tool's own action, but an agent can still infer this returns an explainer of the enquiry process. It does not differentiate itself from the nearby sibling enquiry_fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Read first' is an explicit ordering instruction that tells the agent to consult this before acting, and the tool is contrasted with submit_enquiry (which starts the enquiry). No exclusions or alternative info-tools (e.g. enquiry_fields) are named, so it is clear context without full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enquiry_fieldsThe questions the enquiry asksAInspect
Every field of the VPNCompareHQ enquiry: key, label, type, whether required, help text and the allowed options where there are any. Pass answers to submit_enquiry keyed by field key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it does disclose the complete shape of what is returned (key/label/type/required/help/options). It never explicitly states the call is a read-only, zero-argument lookup, which is a minor omission given no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the returned field set front-loaded and the usage note second. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no input params and no output schema, the description covers the important ground by enumerating return fields and the downstream consumer. It could be marginally fuller on the return container format, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline for a no-param tool. The mention of 'keyed by field key' usefully explains how the returned keys are consumed downstream.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact resource ('Every field of the VPNCompareHQ enquiry') and enumerates the returned attributes (key, label, type, required, help text, options), which is more specific than a tautology. It does not explicitly differentiate itself from the close sibling enquiry_describe, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It does not state when to prefer it over enquiry_describe, but it clearly supplies the workflow context: 'Pass answers to submit_enquiry keyed by field key', telling the agent this is the discovery step preceding submission. Clear context without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_enquirySubmit an ENQUIRY to human providers (two steps; not a purchase)AInspect
Submits an enquiry to VPNCompareHQ — NOT a purchase, NOT a guaranteed quote. Step 1: call with the answers (keyed by field key from enquiry_fields) and consent=true; it validates and returns a summary, the consent line and a confirmation token — show the person the summary and the consent line. Step 2: only if the person agrees, call again with the same answers, consent=true and the confirmation token; the enquiry is then submitted, and the person receives an email with a link they must click before any provider sees it. Consent means the person has read and agreed to: "By submitting you agree VPNCompareHQ emails you a recommendation and shares nothing else with anyone."
| Name | Required | Description | Default |
|---|---|---|---|
| answers | Yes | the person's answers, keyed by field key | |
| consent | Yes | true only when the person has agreed to: By submitting you agree VPNCompareHQ emails you a recommendation and shares nothing else with anyone. | |
| confirmation | No | the confirmation token from step 1, after the person has approved the summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so: it discloses that step 1 validates and returns a summary, consent line and confirmation token; that step 2 performs the actual submission; that an email confirmation link gates provider visibility; and the literal consent text. It also clarifies the non-committal nature (not a purchase, not a quote), which is the key behavioral trait an agent must not misrepresent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded — the 'NOT a purchase' disclaimer leads, followed by the two-step flow in order. Dense and largely waste-free, though the embedded quoted consent text makes it longer than strictly necessary; that length is justified by the compliance requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe returns itself, and it does: step 1 returns a summary, consent line and confirmation token to show the user; step 2 triggers an email requiring a click. All gates, prerequisites and outcomes needed to invoke this two-step tool correctly are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a baseline of 3 applies, but the description adds real meaning: answers are 'keyed by field key from enquiry_fields', consent requires the specific quoted agreement, and confirmation is the step-1 token supplied only after the person approves the summary. It exceeds what the schema alone conveys, though it does not enumerate answer types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (submits) and resource (an enquiry to human providers), and immediately negates the two most likely misreadings — 'NOT a purchase, NOT a guaranteed quote'. It also cross-references the sibling enquiry_fields and enquiry_describe's field keys, so an agent can distinguish it from the read-only enquiry siblings without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly stages the usage: Step 1 with answers+consent, then Step 2 only if the person agrees, with the same answers plus the confirmation token. The when-not condition (do not submit before consent/approval) and the downstream gate (email link must be clicked before a provider sees it) are both stated rather than left to inference.
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.
10 tool updates
- First observed
dataset_columns - First observed
dataset_compare - First observed
dataset_provenance - First observed
dataset_row - First observed
dataset_search - First observed
dataset_stats - First observed
dataset_top - First observed
enquiry_describe - First observed
enquiry_fields - First observed
submit_enquiry
Related MCP Connectors
RMMCompare: the site's own MCP server — dataset, enquiry (enquiry = a human handoff, not a...
Rechner HQ: the site's own MCP server — dataset, enquiry (enquiry = a human handoff, not a...
TelescopeCompareHQ: the site's own MCP server — dataset, enquiry (enquiry = a human handoff, not...
Outsourced IT Quotes: the site's own MCP server — dataset, enquiry (enquiry = a human handoff,...
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceUnbiased vendor intelligence MCP server that helps AI agents and developers make informed infrastructure decisions by providing current, structured, neutral vendor comparisons and recommendations.48 npm1MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for qualifying and responding to inbound leads in seconds using a multi-agent AI pipeline.1MIT
- AlicenseAqualityBmaintenanceUK due diligence MCP server — Companies House, corporate research, compliance checks1825 PyPI3MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that lets agents run free, keyless lead-leak audits on UK local service businesses — detecting form platforms and their outreach implications, checking whether phone numbers are tappable tel: links, comparing phone numbers across a site and free directories, screening website hygiene, and locating a business's own site. It also bundles these into a single full audit that returns a prioritised list of fixable issues alongside top local competitors.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.