DouxProcess Directory
Server Details
Find a US business by what you need and where, with licences checked against the issuer's file.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: search listings, retrieve one listing's details, list category taxonomy, and send a consent-based contact request. The boundaries between find_businesses and get_business are especially clear (search vs. single-record detail), and request_contact is unmistakably a write/contact action.
All tools use a consistent verb_noun snake_case pattern: find_businesses, get_business, list_categories, request_contact. Singular/plural use is appropriate to each operation.
Four tools is well-scoped for a directory service: discovery, detail lookup, category reference, and contact initiation. No tool feels redundant or gratuitous.
The surface covers the core consumer workflow: find businesses, inspect a business, browse categories, and contact a chosen business with consent. Minor gaps exist around explicit category browsing/pagination or broader listing discovery, but agents can work around them through find_businesses.
Available Tools
4 toolsfind_businessesFind businessesARead-onlyInspect
Search the DouxProcess Directory for businesses by what the person needs (e.g. roofer, dentist, insurance agency), city and two-letter US state. Returns every match in the published ranking order with phone, website, licence and listing page. Nobody pays for placement; listings affiliated with DouxProcess's owner carry a disclosure.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| page | No | ||
| query | No | What the person needs, in their words. | |
| state | No | Two-letter US state. | |
| category | No | A category id from list_categories, e.g. roofer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and closed-world, so the description earns credit for disclosing return fields (phone, website, licence, listing page), ranking order, absence of paid placement, and owner-affiliation disclosure. It omits any pagination behavior even though a 'page' parameter 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?
Three tight sentences, front-loaded with the action and inputs before the return/shape details. No filler, though the opening slightly repeats the tool 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?
With no output schema, the description usefully names what comes back and the integrity/disclosure context. The main gap is pagination, which matters for a tool with a 'page' parameter and no required inputs.
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 60%, so the schema carries most of the load. The description restates query/city/state in prose but adds nothing on the 'page' parameter's semantics or on combining query vs. category filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search the DouxProcess Directory for businesses') plus the intended lookup axes (need, city, state). Clear that this is a multi-result search versus the sibling get_business, though the distinction is inferred rather than stated.
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 examples ('roofer, dentist, insurance agency'), but there is no explicit when-to-use, when-not-to-use, or routing to get_business or list_categories. The category-to-list_categories link lives only in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_businessGet one businessARead-onlyInspect
One business's details, licences and how to contact it. Each licence carries its basis: issuer_file = matched against the issuer's own published file on checked_at; stated = given by the business, not yet matched (send the person to source_url).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The slug from find_businesses. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=false), so credit goes to the domain context the description adds: it explains the two licence-basis values, that issuer_file is matched against the issuer's own published file at checked_at, and that 'stated' means unmatched. That is real interpretive guidance an agent could not get from the schema, though missing-slug behaviour is unstated.
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, front-loaded with what the tool returns, then the licence-basis semantics. The second sentence is dense but every clause earns its place by defining terms the agent must interpret correctly; the parenthetical could be tightened slightly.
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 exists, so the description appropriately enumerates the return contents (details, licences, contact) and pre-explains the licence-basis fields an agent will encounter. Missing only error/not-found behaviour, which for a simple read tool is a minor 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?
With 100% schema description coverage and a single required parameter whose provenance ('from find_businesses') is already documented, the schema carries the burden. The description adds nothing further about the slug format or validation, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb-resource pair: retrieves one business's details, licences, and contact info. The singular framing implicitly contrasts with the sibling find_businesses, and the slug parameter ('from find_businesses') reinforces the lookup relation, though the sibling is never named 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?
Usage is implied rather than stated: the schema tells the agent the slug comes from find_businesses, so the call order is inferable. The description adds a genuine downstream instruction ('send the person to source_url' for 'stated' licences), but never says when to prefer this over other siblings or what to do if the slug is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList categoriesARead-onlyInspect
Every category with its NAICS 2022 code, plain name and Google Business Profile names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds value that annotations cannot: it enumerates the three return fields (NAICS 2022 code, plain name, GBP names), which is important because no output schema exists. It stops short of saying whether the list is exhaustive/static or ordered, but the added context is real.
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 scope ('Every category') and then lists the payload. Zero padding, nothing to trim.
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 lookup with no output schema, the description does the essential job of naming the returned fields. Minor gaps remain — ordering, whether the list is fixed versus dynamic — but nothing an agent needs in order to call 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 the baseline is 4. Nothing in the description needs to explain arguments, and it does not waste words pretending to.
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 precisely what the tool returns: an enumeration of all categories with their NAICS 2022 code, plain name, and Google Business Profile names. This is clearly a different resource from the siblings (find_businesses, get_business, request_contact), though it never explicitly contrasts itself with them — it relies on the name's verb for the action.
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, no mention of prerequisites, and no reference to alternatives. An agent must infer that this is the lookup to call before resolving business categories; nothing in the text says so.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_contactSend a request to one businessAInspect
Sends the person's request to the ONE business they chose, so it can reply to them. Call only after the person has read and agreed to this: 'I agree that DouxProcess sends my name, my contact details and this request to , and only to them, so they can reply to me about it.' Set consent=true only if they agreed. Do not include health details, card numbers, ID numbers or passwords.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The person's name. | |
| slug | Yes | ||
| No | |||
| phone | No | ||
| consent | Yes | True only if the person agreed to the consent sentence. | |
| details | Yes | What they need, in their words. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and openWorldHint=true, and the description adds genuinely useful context beyond them: exactly which personal data leaves the system (name, contact details, request) and to whom, plus explicit prohibitions on health details, card numbers, ID numbers and passwords. It does not discuss failure behavior, retry/idempotency, or what a successful send returns, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and its effect, then the gating precondition, then the field-level constraint — a logical order. The embedded consent quote is lengthy but is required verbatim for the agent to display, so it earns its space.
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 6-parameter, non-idempotent, PII-transmitting mutation with no output schema, the description covers the essential safety story: consent gating and forbidden data types. It omits what happens after the send (confirmation, errors, delivery guarantees), which an agent might want before reporting success to a person.
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% — slug, email and phone carry no descriptions — yet the description says nothing about slug format or when email vs. phone should be supplied. It only reinforces meaning for consent ('only if they agreed') and constrains details content (no health/card/ID/password data), so it partially but not fully compensates for the coverage 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?
States a specific verb and resource ('sends the person's request to the ONE business they chose') and the resulting effect ('so it can reply to them'). This clearly distinguishes it from the sibling lookup tools (find_businesses, get_business, list_categories), which do not transmit anything.
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?
Gives an explicit precondition: 'Call only after the person has read and agreed to this' followed by the verbatim consent sentence, plus a rule for setting consent=true only when agreement is given. Nothing about when to call is 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.
4 tool updates
- First observed
find_businesses - First observed
get_business - First observed
list_categories - First observed
request_contact
Related MCP Connectors
Search 7,000+ local service businesses across America by category, location, or keyword.
Search licensed US contractors by trade or location, fetch profiles and reviews, and submit leads.
Verify a contractor, real estate or cosmetology license in 12 US states from the boards' own files.
Confirm a US business is real and find who controls it. 32.6M official registry records.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents and procurement systems to verify contractor licenses against official state boards, search contractors by trade and location, audit workers' comp, surety bonds and OSHA safety records, and check SAM.gov federal debarment status. It returns a deterministic ALLOW/WARN/BLOCK compliance decision plus registry health metrics for US trade contractors.MIT
- AlicenseAqualityDmaintenanceReal-time contractor license verification across 45 US states. Verifies license status, expiration, and disciplinary history directly against state licensing board portals.422 npmMIT
- AlicenseAqualityDmaintenanceProvides AI agents with access to real, verifiable businesses with provenance and source URLs, enabling natural-language business search and profile retrieval.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables US business intelligence lookups including Secretary-of-State registrations, UCC liens, and TIN/EIN verification.16 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.