site
Server Details
DoorsetBook: the site's own MCP server — dataset; every answer cites the site.
- Status
- Healthy
- Uptime
- 94.3% over 28 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Each tool has a distinct primary purpose—schema, provenance, exact lookup, multi-value comparison, search, stats, and top rows. The main ambiguity is between dataset_row and dataset_compare, since both retrieve rows by column value, though dataset_compare is specifically for ordered multi-value comparisons.
All tools share the consistent dataset_ prefix and snake_case naming, making them easy to group. However, the suffix style is mixed: some are nouns (columns, row, stats), some are verbs (compare, search), and one is an adjective (top), which is a minor deviation from a fully uniform verb_noun pattern.
Seven tools is well-scoped for a dataset query server. Each tool covers a meaningful query need—schema discovery, provenance, exact lookup, comparison, search, statistics, and ranking—without unnecessary bloat or missing core access patterns.
The tool surface covers the main ways to interact with the DoorsetBook dataset: schema, metadata, exact and fuzzy lookup, comparisons, aggregates, and top/bottom rows. Minor gaps exist, such as no explicit pagination for large result sets or numeric range filtering, but common questions are well supported.
Available Tools
7 toolsdataset_columnsDataset columns and shapeAInspect
The columns, which of them are numeric, the row count and the provenance banner of the DoorsetBook 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 behavioral burden. It discloses what the operation returns (column metadata, row count, provenance banner) and implies a read-only schema inspection. It does not explicitly state whether it has side effects or how the provenance banner is represented, leaving some behavior unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief—a list of returned content plus a one-sentence usage instruction. Both sentences are informative with no filler. The opening is a noun phrase rather than an imperative verb, which slightly weakens structural front-loading but does not waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with no output schema or annotations, the description covers the main return values but leaves some context ambiguous, such as the exact meaning of 'provenance banner' when a sibling tool dataset_provenance exists, and the response format. It is adequate for deciding to call it first but not fully self-contained.
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, and the schema is fully covered by the empty input schema. The description does not need to explain parameters; the baseline for a parameterless tool is met, and the description adds clarity about the output rather than parameters.
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 specifies the resource (DoorsetBook dataset) and the exact pieces of information returned (columns, numeric flags, row count, provenance banner), and states the intent: 'Call this first to learn the schema.' It does not explicitly contrast with sibling tools, but the primary purpose 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 instruction 'Call this first to learn the schema' provides clear guidance on when to invoke this tool relative to others, establishing a first-step ordering. It does not name alternatives or exclusions, so it stops short of a full when-to-use/when-not-to-use explanation.
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 sideAInspect
The rows of the DoorsetBook 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 burden of explaining behavior. It usefully discloses that rows are filtered by column match and ordered by the given values, but it does not describe the output structure, handling of missing values, exact matching semantics, or whether the tool merely returns rows or actually renders them side by side.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tight sentence that front-loads the core behavior and ends with a practical use case. There is no redundant phrasing or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only two required parameters, and the description covers the selection logic. However, without an output schema or annotations, more detail about the return format, exact-match behavior, and edge cases (e.g., values not found, duplicate values) would make the description fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does: 'column' is the field used to match, and 'values' are the comparison values; the phrase 'in the order given' adds important semantic meaning for the values array. Minor details like case sensitivity and column existence are not addressed, but the core meaning of both parameters is clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: retrieve rows from the DoorsetBook dataset filtered by a column matching any of the given values, in a specified order. This distinguishes it from siblings like dataset_row, dataset_search, and dataset_top by describing a precise selection and ordering behavior.
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 explicit 'for "X vs Y" questions' provides a clear intended use case. It does not name sibling alternatives or state when not to use the tool, but the context is clear enough for an agent to select it appropriately.
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 DoorsetBook 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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It is transparent about what the tool returns: source, computed date, licence, and citation. It implies a read-only metadata operation by saying 'Read this,' and no side effects are suggested. It could mention output format, but the content disclosure is sufficient for this simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence enumerates the key content fields, and the second gives the practical use case. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool whose output is a small set of provenance metadata fields, the description is complete. It tells the agent what data is returned and why to use the tool. No output schema exists, but the description explicitly lists the return fields, so an agent knows what to expect.
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 there is nothing for the description to explain about parameter usage. Schema coverage is 100% by default. The description correctly focuses on behavior rather than parameters, matching the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the specific resource (DoorsetBook dataset provenance) and states exactly what information is provided: source, computation date, licence, and citation. This clearly distinguishes it from sibling tools like dataset_row or dataset_search, which operate on data content rather than metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: 'Read this to attribute a figure correctly.' This tells the agent when the tool is appropriate. It does not explicitly name alternative tools or state when not to use it, but the unique provenance purpose makes the intended usage unambiguous.
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 DoorsetBook 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?
With no annotations, the description must carry behavioral disclosure. It usefully notes exact equality and case-insensitivity, but it does not clarify whether one row or many rows are returned, what happens on no match, or whether there are result limits. The title's singular 'a row' versus the description's plural 'rows' adds ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence with no filler. The core semantics are front-loaded, and the case-insensitive qualifier adds value without unnecessary length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter lookup, this is minimally viable: it names the dataset, the query mechanism, and matching behavior. But with no output schema and no annotations, it should clarify multiplicity, no-match behavior, and any limits. The row/rows ambiguity leaves a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains that 'column' is a dataset field and 'value' is the comparison value, and adds the important case-insensitive exact-match behavior. However, it does not enumerate valid columns, give examples, or explain value format beyond the schema's string type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (DoorsetBook dataset) and the matching semantics (column equals value exactly, case-insensitive), which distinguishes it from dataset_search. It relies on the title for the explicit verb 'look up', but the intent 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 phrase 'equals a value exactly' implies this is for exact-match lookups rather than broad searching, so usage is somewhat evident. However, the description does not name alternatives like dataset_search or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataset_searchSearch the datasetAInspect
Rows of the DoorsetBook 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 provided, the description carries the burden and does disclose meaningful behavior: case-insensitive matching, substring containment semantics, and a 50-row cap. It does not mention ordering, pagination, or empty-result behavior, but the key behavioral traits of a search tool are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the core behavior and includes the limiting constraint with zero filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with two parameters and no output schema, the description is largely sufficient: it states what rows are returned, the matching rule, and the cap. Minor gaps like sorting and pagination are not critical for a basic search operation.
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 only 50% (query documented, limit not). The description adds value by explaining query semantics ('cells contain the query', case-insensitive) and the effective meaning of the limit bound ('up to 50'). This compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('search' implied), names the resource ('Rows of the DoorsetBook dataset'), and defines the matching behavior ('cells contain the query, case-insensitive, up to 50'). This clearly differentiates it from siblings like dataset_get_rows (row retrieval) and dataset_columns (schema/column info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use clear — full-text substring search across all cells — but does not explicitly state when to prefer this over sibling tools or when not to use it. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dataset_statsSummary statistics for a numeric columnAInspect
count, min, max, mean, median and sum of a numeric column of the DoorsetBook 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 behavioral burden. It discloses meaningful data-handling behavior: grouping commas and currency are parsed, and non-numeric rows are excluded from calculations while still being counted. This is valuable beyond the schema, though the exact output shape is left to inference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one dense, front-loaded sentence. Every clause adds information: the statistics computed, the dataset scope, input formatting, and invalid-row behavior. 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 single-parameter read-only statistics tool, this is nearly complete: the return values are enumerated, and edge-case handling is described. A small ambiguity remains in how the non-numeric count is surfaced, and whether an empty numeric subset returns zeros or null is not addressed.
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%, so the description must define the lone column parameter. It does so by restricting it to a numeric column and explaining formatting handling and non-numeric treatment, which materially clarifies how the parameter is interpreted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation (computing count, min, max, mean, median, sum) and the target resource (a numeric column of the DoorsetBook dataset). It is unambiguous, though it does not explicitly contrast itself with sibling tools such as dataset_top or dataset_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the obvious use case: obtaining univariate summary statistics for a numeric column. It provides clear context but does not state when an alternative tool should be preferred or mention any exclusions.
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 columnAInspect
The highest (or lowest) rows of the DoorsetBook 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?
With no annotations, the description carries the burden of explaining behavior, and it does state the core behavior: returning top or bottom rows based on a numeric column. However, it does not disclose edge cases such as non-numeric input, tie handling, return shape, or the default limit 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?
The description is a single front-loaded sentence with a compact use-case paraphrase. There is no filler or repetition, and the key information appears immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition is usable for a simple top-k query: it identifies the column type and that rows are returned, and the schema covers limit bounds and ascending direction. But with no output schema and no annotations, details like the default limit, returned fields, and edge-case behavior remain undocumented.
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%, with only 'ascending' having a description. The description compensates for 'column' by specifying it must be numeric and for direction via 'highest/lowest', but the 'limit' parameter's meaning is left to its name and min/max bounds rather than 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?
The description clearly identifies the action and resource: returning the highest or lowest rows of the DoorsetBook dataset by a numeric column. The 'most/least X' phrasing maps directly to the ranking use case and distinguishes it from siblings like dataset_search or dataset_stats.
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 'which is the most/least X' phrasing provides a concrete decision trigger for when to use this tool. It does not explicitly name alternatives or state when not to use it, 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 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
Related MCP Connectors
WallChartBook: the site's own MCP server — dataset; every answer cites the site.
Tieoutly: the site's own MCP server — dataset; every answer cites the site.
MultiplesBook: the site's own MCP server — dataset; every answer cites the site.
RunbookDesk: the site's own MCP server — dataset; every answer cites the site.
Related MCP Servers
- FlicenseAqualityCmaintenanceMCP server for querying a page-citable research knowledge base built from PDFs, with exact filename and page citations.6-
- AlicenseAqualityCmaintenanceHosted MCP server for antiquarian first-edition identification and New Mexico book-donation logistics. 12 tools over a CC-BY, DOI-cited dataset of 6,700+ titles and 870 publisher conventions.12MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that acts as a governed customer-support tool, resolving questions only when the knowledge base supports a cited, grounded answer and honestly escalating everything else with provenance and evidence.20 PyPIMIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that exposes grounded, source-attributed question-answering over a collection of PDF documents.-
Glama MCP Gateway
Add one secure layer between your agents and this server.