# DouxProcess Directory (remote · douxprocess.directory)

Is a US business licensed, bonded and insured today? From the government record. Free, no paid rank.

- Trust score: 80/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `douxprocess.directory`: 80/100 (this document), [markdown](https://verifymcp.io/servers/directory-douxprocess-white-pages/douxprocess.md), [page](https://verifymcp.io/servers/directory-douxprocess-white-pages/douxprocess)

## Channel facts

- Endpoint: `https://douxprocess.directory/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.2.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 81/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2618 tokens (~137/item across 19 items; 13 tools + 6 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 43/100
  - Stability observed for 13 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 92% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).
  - Supports UI / widget rendering.

## Install

### How do I install the DouxProcess Directory MCP server?

DouxProcess Directory is a hosted endpoint at https://douxprocess.directory/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http directory-douxprocess-white-pages 'https://douxprocess.directory/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "directory-douxprocess-white-pages": {
      "url": "https://douxprocess.directory/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "directory-douxprocess-white-pages": {
      "type": "http",
      "url": "https://douxprocess.directory/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.directory-douxprocess-white-pages]
url = "https://douxprocess.directory/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "directory-douxprocess-white-pages": {
      "type": "remote",
      "url": "https://douxprocess.directory/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add directory-douxprocess-white-pages --url 'https://douxprocess.directory/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  directory-douxprocess-white-pages:
    url: "https://douxprocess.directory/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "directory-douxprocess-white-pages": {
      "Transport": "http",
      "Url": "https://douxprocess.directory/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add directory-douxprocess-white-pages -t streamable-http -u 'https://douxprocess.directory/mcp'
```

### Other

```json
{
  "mcpServers": {
    "directory-douxprocess-white-pages": {
      "type": "http",
      "url": "https://douxprocess.directory/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-03 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 78, +1)

- [functional improvement] Schema quality: 192 → 137
- [functional] Schema quality: excellent → good

### 2026-10-30 (score 77, 0)

- [functional regression] Schema quality: 137 → 192
- [functional] Schema quality: good → excellent
- [functional] This server's schema is too large to store in full, so we cannot compare its tools day to day

### 2026-10-29 (score 77, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional regression] Schema quality: 123 → 137
- [functional] New tool “book_estimate”
- [functional] New tool “request_quotes”

### 2026-10-28 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 76, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional regression] Schema quality: pass → fail
- [functional improvement] Tool coverage: 83% → 89%
- [functional] Server version: 1.1.0 → 1.2.0
- [functional] New tool “verify_business”
- [functional] New tool “watch_business”
- [functional] New tool “license_history”
- [functional] New tool “watch_licenses”

### 2026-10-24 (score 75, +5)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “find_businesses” rewrote its description, which is the text the model reads
- [security] Tool “get_business” rewrote its description, which is the text the model reads
- [security] Tool “list_categories” rewrote its description, which is the text the model reads
- [security] Tool “request_contact” rewrote its description, which is the text the model reads
- [functional improvement] Schema quality: 119 → 106
- [functional improvement] Tool coverage: 58% → 83%
- [functional improvement] Stability: unverified → 0.03
- [functional improvement] MCP protocol: fail → pass
- [functional improvement] Tool “find_businesses” now declares an output schema
- [functional improvement] Tool “get_business” now declares an output schema
- [functional improvement] Tool “list_categories” now declares an output schema
- [functional improvement] Tool “request_contact” now declares an output schema
- [functional] The server now declares the “prompts” capability
- [functional] The server now declares the “resources” capability
- [functional] First check of Capabilities: pass
- [functional] First check of Schema quality: 100
- [functional] First check of Tool coverage: 100
- [functional] New prompt “find_a_pro”
- [functional] New prompt “verify_a_license”
- [functional] MCP protocol version: 2025-06-18 → 2026-07-28
- [functional] New resource “business-view”
- [functional] New resource “categories”
- [functional] New resource “ranking-rule”
- [functional] New resource “request-service”
- [functional] New resource “results-view”
- [functional] New resource “sources”
- [functional] Server version: 1.0.0 → 1.1.0
- [functional] New tool “ask”
- [functional] New tool “request_service”
- [functional] New tool “verify_license”
- [cosmetic] “find_businesses” added an optional parameter “cursor”
- [cosmetic] “find_businesses” added an optional parameter “limit”
- [cosmetic] “find_businesses” added an optional parameter “postal_code”
- [cosmetic] “find_businesses” added an optional parameter “radius_miles”
- [cosmetic] “find_businesses” added an optional parameter “where”
- [cosmetic] “find_businesses” reworded the description of “page”
- [cosmetic] “request_contact” reworded the description of “consent”
- [cosmetic] “request_contact” reworded the description of “details”
- [cosmetic] “request_contact” reworded the description of “email”
- [cosmetic] “request_contact” reworded the description of “phone”
- [cosmetic] “request_contact” reworded the description of “slug”

## MCP tools (13)

### `find_businesses` (~277 tokens)

Find businesses

Search the DouxProcess Directory for US businesses by what the person needs (roofer, electrician, insurance agency...) and where (a city and state, a ZIP, or a state). Returns the matches in the published ranking order with license, how it was checked, phone, website and listing page. covered=false with a note means the directory does not hold that kind of business or place yet: say so, do not guess. Nobody pays for placement; listings affiliated with DouxProcess's owner carry a disclosure, pass it on. Do not rank, rate or recommend; show the options and let the person choose.

Input parameters:

- `category` (string): A category id from list_categories, e.g. roofer.
- `city` (string)
- `cursor` (string): next_cursor from the previous call.
- `limit` (integer)
- `page` (integer): Older clients: a page number. Prefer cursor.
- `postal_code` (string): A 5-digit ZIP.
- `query` (string): What the person needs, in their words.
- `radius_miles` (number)
- `state` (string): Two-letter US state.
- `where` (string): A place: 'Pasadena, CA', a 5-digit ZIP, or a state. Never the person's own address or GPS.

Output parameters:

- `businesses` (array)
- `count` (integer)
- `covered` (boolean)
- `has_more` (boolean)
- `intent` (object)
- `next_cursor` (string|null)
- `note` (string)
- `ranking` (string)
- `total` (integer|null)

### `get_business` (~84 tokens)

Get one business

One business's details: licenses with their 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), contact, whether it takes requests, and its own agent addresses (MCP and A2A).

Input parameters:

- `slug` (string, required): The slug from find_businesses.

Output parameters:

- `about` (string)
- `agent` (object)
- `booking_link` (string)
- `can_take_requests` (boolean)
- `categories` (array)
- `city` (string)
- `disclosure` (string)
- `languages` (array)
- `licences` (array)
- `licenses` (array)
- `luma` (object)
- `mcp_url` (string)
- `name` (string)
- `note` (string)
- `page` (string)
- `phone` (string)
- `postal` (string)
- `quote_link` (string)
- `region` (string)
- `request_contact` (string)
- `service_area` (object)
- `slug` (string)
- `status` (string)
- `street` (string)
- `website` (string)

### `verify_license` (~100 tokens)

Check a license

Look up a license by number, business name or phone and say which listings carry it and how it was checked. When nothing matches, tell the person to check the issuer's own lookup; never say a license is valid without a match.

Input parameters:

- `issuer` (string): The issuer code, e.g. CA-CSLB.
- `name` (string): The business name.
- `number` (string): The license number.
- `phone` (string)

Output parameters:

- `found` (boolean)
- `how_checked` (string)
- `matches` (array)
- `note` (string)
- `ok` (boolean)
- `query` (object)
- `why` (string)

### `list_categories` (~50 tokens)

List categories

Every category with its id, NAICS 2022 code, plain name, Google Business Profile names, how many listings it has, and whether requests for it are sent (health is listed but never routed).

Output parameters:

- `categories` (array)
- `note` (string)
- `total` (integer)

### `ask` (~93 tokens)

Ask the directory

Ask in plain words ('licensed electrician near 92101 who does EV chargers') and get a short answer built only from listings, plus the businesses it rests on, in the published order. Same rules as find_businesses: no ranking or recommendation language, coverage stated honestly.

Input parameters:

- `question` (string, required): The person's question, in their words.
- `where` (string): A place, if it is not in the question.

Output parameters:

- `businesses` (array)
- `covered` (boolean)
- `followups` (array)
- `has_more` (boolean)
- `intent` (object)
- `label` (string)
- `more_url` (string)
- `note` (string)
- `ranking` (string)
- `text` (string)

### `request_contact` (~219 tokens)

Send a request to one business

Sends the person's request to the ONE business they chose, so it can reply to them. Only claimed listings take requests, and health businesses never do. Before calling, show the person this sentence and get their agreement: 'I agree that DouxProcess sends my name, my contact details and this request to <business>, and only to them, so they can reply to me about it.' Set consent=true only if they agreed. Clients that support forms get a consent form instead. Never include health details, card numbers, ID numbers or passwords.

Input parameters:

- `consent` (boolean, required): True only if the person read and agreed to the consent sentence.
- `details` (string, required): What they need, in their words. No health details, card numbers, ID numbers or passwords.
- `email` (string): An email address the business can reply to.
- `name` (string, required): The person's name.
- `phone` (string): Or a phone number the business can reply to.
- `slug` (string, required): The slug from find_businesses or get_business.

Output parameters:

- `business` (string)
- `consent_text` (string)
- `contact_directly` (object)
- `next` (string)
- `reference` (string)
- `routed` (boolean)
- `sent` (boolean)
- `why` (string)

### `request_service` (~82 tokens)

Request a quote

Open the request form for one business the person chose (ChatGPT local services Get Quote). The form shows the consent sentence and sends only when the person ticks it. For a business that does not take requests it shows the business's own phone and website.

Input parameters:

- `business_id` (string, required): The business id (its slug) from find_businesses or the business feed.

Output parameters:

- `business` (object)
- `can_request` (boolean)
- `consent_text` (string)
- `how` (string)

### `license_history` (~142 tokens)

License history

A California contractor license's record in the CSLB's public file, and every change since the directory began reading it daily: status and suspensions, workers' comp type and dates, bond amounts and dates, classes, expiry. Give a CSLB license number or a listing link. It never includes an insurer, surety or person's name, or a policy, bond or case number. Report what it says; do not judge the business. Not for decisions about a person's credit, employment, insurance or housing.

Input parameters:

- `license` (string, required): A CSLB license number (e.g. 1000002), or a listing link or slug from find_businesses.

Output parameters:

- `found` (boolean)
- `how_checked` (string)
- `license` (string)
- `licenses` (array)
- `note` (string)
- `page` (string)
- `slug` (string)
- `watch` (string)

### `watch_licenses` (~145 tokens)

Watch licenses

Emails the person a link to watch these CSLB licenses: once they open it, they get one short email on any day something changes on one (status, workers' comp, bonds, classes, expiry). Nothing is watched until the person opens the link. Use the person's own email, only when they asked. Free watches 25 licenses, Pro up to 500 for $99 a year, Unlimited every license they add for $999 a year. Not for decisions about a person's credit, employment, insurance or housing.

Input parameters:

- `email` (string, required): The person's own email address.
- `licenses` (array, required): CSLB license numbers or listing links, up to 500.

Output parameters:

- `email` (string)
- `licenses` (integer)
- `note` (string)
- `sent` (boolean)
- `tiers` (string)
- `unknown` (array)
- `why` (string)

### `verify_business` (~207 tokens)

Is it licensed, bonded and insured

Is this business licensed, bonded and insured today, from the government record. Give a listing slug, a license number, or a business name with its two-letter state. Returns licensed, bonded and insured as true, false or null (the record does not say), each with its source, checked_at day and record_url, the board's open gaps, and the listing URL. For CSLB contractors insured means workers' comp. Report the facts and link the record; do not judge the business. Not for decisions about a person's credit, employment, insurance or housing.

Input parameters:

- `issuer` (string): The issuer code with a license number, e.g. CA-CSLB.
- `license` (string): A license number, e.g. CSLB 1050000.
- `name` (string): The business name (with state).
- `slug` (string): A listing slug or link from find_businesses.
- `state` (string): Two-letter US state, required with name.

Output parameters:

- `bonded` (boolean|null)
- `disclosure` (string)
- `facts` (object)
- `found` (boolean)
- `how_checked` (string)
- `insured` (boolean|null)
- `license` (string)
- `licensed` (boolean|null)
- `listing` (string)
- `name` (string)
- `note` (string)
- `open_gaps` (array)
- `other_matches` (array)
- `place` (string)
- `record_url` (string)
- `red_flags` (array)
- `secondary_status` (string)
- `slug` (string)
- `source` (object)

### `watch_business` (~196 tokens)

Watch businesses (free)

Emails the person a link to watch up to 25 listings free: once they open it, they get one short email on any day the board's record changes (status, workers' comp, bonds, classes, expiry). CSLB contractors only. Use the person's own email, only when they asked. Before calling, show them this and get their yes: 'I agree that DouxProcess Directory may email <email> about changes to these licenses (status, workers' comp, bonds, classes, expiry). Nothing is watched until I open the link, and I can stop any time.' Set consent=true only if they agreed; clients with forms get a consent form.

Input parameters:

- `consent` (boolean, required): True only if the person read and agreed to the consent sentence.
- `email` (string, required): The person's own email address.
- `slugs` (array, required): Listing slugs (or CSLB license numbers), up to 25.

Output parameters:

- `consent_text` (string)
- `email` (string)
- `listings` (integer)
- `note` (string)
- `plan` (string)
- `sent` (boolean)
- `unknown` (array)
- `why` (string)

### `request_quotes` (~255 tokens)

Get quotes from contractors nearby

Sends the person's request to up to 3 licensed contractors near them who use Luma (the contractor app DouxProcess Inc. builds), Luma Pro members first, and returns the other matches with their own contact details. Call it once without consent to get consent_text and the disclosure, show both to the person, and call again with consent=true only if they agree. Never include card numbers, ID numbers or passwords.

Input parameters:

- `address` (string): Optional: the job address, only if the person gave it for this request.
- `category` (string, required): A category id from list_categories, e.g. roofer.
- `consent` (boolean, required): True only if the person read and agreed to consent_text.
- `details` (string, required): What they need, in their words. No card numbers, ID numbers or passwords.
- `email` (string): Or an email address.
- `name` (string, required): The person's name.
- `phone` (string): A phone number the businesses can reply to.
- `preferred_times` (string): Optional: when they are free.
- `where` (string, required): A city and state ('Pasadena, CA') or a 5-digit ZIP. Never the person's own street address.

Output parameters:

- `consent_text` (string)
- `count` (integer)
- `disclosure` (string)
- `next` (string)
- `others` (array)
- `sent` (boolean)
- `sent_to` (array)
- `why` (string)

### `book_estimate` (~201 tokens)

Book an estimate visit

Books an estimate visit with ONE contractor the person chose whose listing shows luma.books_online. The contractor calls the person to confirm the time. Call it once without consent to get consent_text, show it, and call again with consent=true only if they agree.

Input parameters:

- `address` (string, required): The address of the job, as the person gave it for this booking.
- `consent` (boolean, required): True only if the person read and agreed to consent_text.
- `job` (string, required): What the job is, in the person's words.
- `name` (string, required): The person's name.
- `phone` (string, required): A 10-digit phone number the contractor calls to confirm.
- `preferred_times` (string): Optional: days and times that suit them.
- `site` (string): Or the Luma site from the listing's luma.site.
- `slug` (string): The listing slug from find_businesses (a listing with luma.books_online).

Output parameters:

- `booked` (boolean)
- `business` (string)
- `consent_text` (string)
- `contact_directly` (object)
- `next` (string)
- `reference` (string)
- `site_url` (string)
- `why` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/directory-douxprocess-white-pages/douxprocess#diagnostics

## Score history

- 2026-11-05: 80
- 2026-11-04: 80
- 2026-11-03: 80
- 2026-11-02: 79
- 2026-11-01: 79
- 2026-10-31: 78
- 2026-10-30: 77
- 2026-10-29: 77
- 2026-10-28: 77
- 2026-10-27: 76
- 2026-10-26: 76
- 2026-10-25: 76
- 2026-10-24: 75
- 2026-10-23: 70

## Common questions

### What is the DouxProcess Directory MCP server?

DouxProcess Directory is an MCP server listed in the public MCP registry as directory.douxprocess/white-pages. Is a US business licensed, bonded and insured today? From the government record. Free, no paid rank. This page covers its hosted endpoint (https://douxprocess.directory/mcp).

### Is the DouxProcess Directory MCP server safe to use?

DouxProcess Directory scores 80 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the DouxProcess Directory MCP server expose?

DouxProcess Directory exposes 13 tools: find_businesses, get_business, verify_license, list_categories, ask, and 8 more. Their descriptions and schemas cost roughly 2,051 tokens of context every time the server is loaded.

### Does the DouxProcess Directory MCP server require authentication?

No. We connected to DouxProcess Directory without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the DouxProcess Directory MCP server still maintained?

DouxProcess Directory is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://douxprocess.directory/mcp
- Website: https://douxprocess.directory/
- Changelog RSS feed: https://verifymcp.io/servers/directory-douxprocess-white-pages/douxprocess.xml
- Changelog JSON feed: https://verifymcp.io/servers/directory-douxprocess-white-pages/douxprocess.json
- HTML version of this page: https://verifymcp.io/servers/directory-douxprocess-white-pages/douxprocess
