1-800Deals Directory
Server Details
Search a national directory of 1-800 / toll-free / vanity-number businesses and services.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 3 tools
Each tool targets a clearly distinct purpose: search_listings for discovery, get_listing for full single-record details, and list_categories for the taxonomy. Descriptions explicitly cross-reference each other (search returns ids, get_listing consumes them), leaving no overlap or ambiguity.
All three tools follow a clean verb_noun pattern (get_listing, list_categories, search_listings) with consistent snake_case. The verbs are distinct and accurately signal the operation.
Three tools is a lean but sensible surface for a read-only public directory, covering discovery, detail, and browsing. It sits at the low end—slightly thin—but each tool earns its place without redundancy.
The read-only lifecycle (search → detail → category browsing) is fully covered with no dead ends for a public directory. Minor gaps exist for a read-only scope, such as filtering by hours/open-now or pagination controls, but nothing that blocks core workflows.
Available Tools
3 toolsget_listingARead-onlyIdempotentInspect
Read-only. Full public details for one 1-800Deals listing by the id from search_listings (or its slug): full description, address, phone, website, hours, FAQ and photos. Returns NOT_FOUND for an unknown id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Listing id from search_listings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered elsewhere. The description still adds genuinely new behavior: the NOT_FOUND outcome for an unknown id and the fact that only public fields (description, address, phone, website, hours, FAQ, photos) are exposed. It does not mention rate limits or pagination, which is a minor gap for a single-record fetch.
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 tight sentences, front-loaded with the read-only/single-record scope before the detail list. No filler, and the trailing error case is the last and least important clause.
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, but the description compensates by enumerating the returned public fields and the failure mode (NOT_FOUND), and annotations cover safety. For a one-parameter read tool, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single id parameter, so the baseline would be 3. The description goes beyond the schema by stating a slug is also accepted as an identifier and by pointing at the originating tool, information the schema's 'Listing id from search_listings' does not convey.
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 (get) and resource (one 1-800Deals listing) with explicit scope ('one ... by the id'), and clarifies it is the detail counterpart to the search tool. It enumerates exactly which fields are returned, so an agent can distinguish it from search_listings and list_categories without opening a 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?
It tells the agent where the argument comes from ('the id from search_listings'), effectively establishing this as the follow-up call after a search. It does not state a when-not case or a true alternative, but for a leaf lookup tool the usage context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesARead-onlyIdempotentInspect
Read-only. List the 1-800Deals directory's business categories with listing counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the description's 'Read-only' is largely redundant. It does add useful behavioral context by saying results include listing counts, but it doesn't describe pagination, caching, or how counts are scoped.
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 definition is a single efficient sentence that front-loads the operation and resource. The leading 'Read-only' duplicates annotation data rather than adding new information, which is minor waste but not harmful.
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 read-only directory taxonomy tool, the description supplies enough context to call it correctly and sets expectations that counts accompany categories. With no output schema, a little more detail about the return shape would help, but the essential information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify at the parameter level. The baseline for a parameterless tool is 4, and no parameter-related ambiguity is introduced.
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 a specific verb (List) and resource (business categories) and states the source directory (1-800Deals), including that counts are returned. It is clearly differentiated from the listing-oriented siblings get_listing and search_listings.
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 read-only nature implies safe discovery usage, and the category focus suggests it is for browsing taxonomy rather than retrieving listings. However, it never explicitly says when to use this instead of get_listing or search_listings, nor does it state any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_listingsARead-onlyIdempotentInspect
Search 1-800Deals, a national directory of toll-free and vanity-number businesses (water damage restoration, plumbing, pest control, HVAC, garage doors, electricians, roofing). Read-only. Filter by keyword, category and city. Returns public listing fields only: id, name, listing page url, description, address, phone, website, hours and photos. Every search word must match; a query with no matches returns total 0. Use get_listing for one listing's full details.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Keywords, e.g. 'plumber houston' or 'water damage' | |
| area | No | City, e.g. 'Houston' | |
| page | No | Page number | |
| limit | No | Max results (1-50) | |
| category | No | Category name or slug from list_categories, e.g. 'Plumbing' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds genuine behavioral context beyond them: AND-matching semantics ('Every search word must match') and the empty-result behavior (total 0), plus an explicit enumeration of returned fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the resource identity, then read-only status, filtering, return fields, matching semantics, and the sibling pointer — a sensible order with little waste. The return-field list is a dense clause, but each part carries information an agent needs.
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 compensates by enumerating returned fields (id, name, url, description, address, phone, website, hours, photos) and explaining the no-match case. Pagination is covered by the page/limit schema entries, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: the AND semantics of the q parameter and the fact that category accepts a name or slug sourced from list_categories. The area parameter is described as 'City' in both places with no extra detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (1-800Deals directory), scopes the domain with concrete examples, and explicitly contrasts with the sibling get_listing. An agent can distinguish it from get_listing and list_categories 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?
Says to filter by keyword, category and city, and routes the agent to get_listing for a single listing's full details. It does not explicitly state when NOT to use search (e.g. for category enumeration, where list_categories applies), so the routing is clear but not exhaustive.
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.
2 tool updates
- Added
get_listing - Changed
search_listings6 fields changed- added
Input schema / properties / areaAdded value: +{ + "description": "City, e.g. 'Houston'", + "type": "string" +} - changed
Input schema / properties / category / descriptionPrevious value: -"Category name filter, e.g. 'Restaurants'"New value: +"Category name or slug from list_categories, e.g. 'Plumbing'" - added
Input schema / properties / limit / maximumAdded value: +50 - added
Input schema / properties / limit / minimumAdded value: +1 - added
Input schema / properties / page / minimumAdded value: +1 - changed
Input schema / properties / q / descriptionPrevious value: -"Keyword search, e.g. 'plumber' or 'junk removal'"New value: +"Keywords, e.g. 'plumber houston' or 'water damage'"
2 tool updates
- First observed
list_categories - First observed
search_listings
Related MCP Connectors
Find phone numbers that spell a word, toll free or local, with status, price and history.
Search 7,000+ local service businesses across America by category, location, or keyword.
Search a directory of real, owner-confirmed small businesses. Read-only; attribution required.
Local providers worldwide, plus travel and public data. Free search; paid answers via x402.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables searching 12M+ verified businesses across 10 countries and 19 directories, with tools for lead generation, competitive analysis, and market research.29 PyPIMIT
- AlicenseAqualityCmaintenanceSearch for local businesses worldwide. Structured data optimized for AI agents. • Search Millions of businesses over 49 countries (Europe, Northamerica, Southamerica, Asia, Oceania) • Quality & demand scoring for every business • Ranking based on real user click-through data • No API key needed, free access • Rate limit: 500 requests/hour per IP61MIT

Yellow Pages MCP Serverofficial
AlicenseAqualityBmaintenanceEnables MCP clients to search Yellow Pages local businesses by keyword and location and retrieve full listing details such as phone, hours, services, brands, and payment methods.210 npm10MIT- AlicenseAqualityDmaintenanceEnables agents to search, retrieve, and contribute business data from a directory of 11M+ businesses across 195 countries, returning markdown prose by default.22115 npm3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.