DouxProcess Directory

Find a US business by what you need and where, with licences checked against the issuer's file.

使うべきか

品質と安全性

A
説明の品質
98%
スキーマの完全性
89%
命名の品質
89%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~3,992トークン数(ツール定義)
~3.9 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 3.12%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

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

リモートエンドポイント

https://douxprocess.directory/mcpstreamable-http

できること

ツール一覧

ツール(9)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢find_businesses(query, where, category, state, city, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "What the person needs, in their words."
    },
    "where": {
      "type": "string",
      "description": "A place: 'Pasadena, CA', a 5-digit ZIP, or a state. Never the person's own address or GPS."
    },
    "category": {
      "type": "string",
      "description": "A category id from list_categories, e.g. roofer."
    },
    "state": {
      "type": "string",
      "description": "Two-letter US state."
    },
    "city": {
      "type": "string"
    },
    "postal_code": {
      "type": "string",
      "description": "A 5-digit ZIP."
    },
    "radius_miles": {
      "type": "number",
      "minimum": 1,
      "maximum": 250
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    },
    "cursor": {
      "type": "string",
      "description": "next_cursor from the previous call."
    },
    "page": {
      "type": "integer",
      "minimum": 0,
      "description": "Older clients: a page number. Prefer cursor."
    }
  }
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "intent": {
      "type": "object"
    },
    "covered": {
      "type": "boolean"
    },
    "note": {
      "type": "string"
    },
    "total": {
      "type": [
        "integer",
        "null"
      ]
    },
    "count": {
      "type": "integer"
    },
    "has_more": {
      "type": "boolean"
    },
    "next_cursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "ranking": {
      "type": "string"
    },
    "businesses": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "slug",
          "name",
          "page"
        ],
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "page": {
            "type": "string"
          },
          "about": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "quote_link": {
            "type": "string"
          },
          "booking_link": {
            "type": "string"
          },
          "mcp_url": {
            "type": "string"
          },
          "street": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "postal": {
            "type": "string"
          },
          "service_area": {
            "type": "object"
          },
          "languages": {
            "type": "array"
          },
          "licences": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "issuer": {
                  "type": "string"
                },
                "number": {
                  "type": "string"
                },
                "classification": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "status": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "expires": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "source_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "checked_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "basis": {
                  "type": "string",
                  "enum": [
                    "issuer_file",
                    "stated"
                  ]
                }
              },
              "required": [
                "issuer",
                "number"
              ]
            }
          },
          "licenses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "issuer": {
                  "type": "string"
                },
                "number": {
                  "type": "string"
                },
                "classification": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "status": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "expires": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "source_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "checked_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "basis": {
                  "type": "string",
                  "enum": [
                    "issuer_file",
                    "stated"
                  ]
                }
              },
              "required": [
                "issuer",
                "number"
              ]
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "seeded",
              "claimed",
              "verified"
            ]
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "disclosure": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "request_contact": {
            "type": "string"
          },
          "can_take_requests": {
            "type": "boolean"
          },
          "agent": {
            "type": "object",
            "properties": {
              "mcp": {
                "type": "string"
              },
              "a2a": {
                "type": "string"
              },
              "agent_card": {
                "type": "string"
              },
              "json": {
                "type": "string"
              },
              "markdown": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "required": [
    "businesses",
    "count",
    "has_more",
    "covered",
    "ranking"
  ]
}
🟢get_business(slug)

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).

入力スキーマ

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The slug from find_businesses."
    }
  },
  "required": [
    "slug"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "page": {
      "type": "string"
    },
    "about": {
      "type": "string"
    },
    "website": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "quote_link": {
      "type": "string"
    },
    "booking_link": {
      "type": "string"
    },
    "mcp_url": {
      "type": "string"
    },
    "street": {
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "region": {
      "type": "string"
    },
    "postal": {
      "type": "string"
    },
    "service_area": {
      "type": "object"
    },
    "languages": {
      "type": "array"
    },
    "licences": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "issuer": {
            "type": "string"
          },
          "number": {
            "type": "string"
          },
          "classification": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": [
              "string",
              "null"
            ]
          },
          "expires": {
            "type": [
              "string",
              "null"
            ]
          },
          "source_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "checked_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "basis": {
            "type": "string",
            "enum": [
              "issuer_file",
              "stated"
            ]
          }
        },
        "required": [
          "issuer",
          "number"
        ]
      }
    },
    "licenses": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "issuer": {
            "type": "string"
          },
          "number": {
            "type": "string"
          },
          "classification": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": [
              "string",
              "null"
            ]
          },
          "expires": {
            "type": [
              "string",
              "null"
            ]
          },
          "source_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "checked_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "basis": {
            "type": "string",
            "enum": [
              "issuer_file",
              "stated"
            ]
          }
        },
        "required": [
          "issuer",
          "number"
        ]
      }
    },
    "status": {
      "type": "string",
      "enum": [
        "seeded",
        "claimed",
        "verified"
      ]
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "disclosure": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "request_contact": {
      "type": "string"
    },
    "can_take_requests": {
      "type": "boolean"
    },
    "agent": {
      "type": "object",
      "properties": {
        "mcp": {
          "type": "string"
        },
        "a2a": {
          "type": "string"
        },
        "agent_card": {
          "type": "string"
        },
        "json": {
          "type": "string"
        },
        "markdown": {
          "type": "string"
        }
      }
    }
  },
  "required": [
    "slug",
    "name",
    "page"
  ]
}
🟢verify_license(number, name, phone, issuer)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "number": {
      "type": "string",
      "description": "The license number."
    },
    "name": {
      "type": "string",
      "description": "The business name."
    },
    "phone": {
      "type": "string"
    },
    "issuer": {
      "type": "string",
      "description": "The issuer code, e.g. CA-CSLB."
    }
  }
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "found": {
      "type": "boolean"
    },
    "note": {
      "type": "string"
    },
    "why": {
      "type": "string"
    },
    "query": {
      "type": "object"
    },
    "how_checked": {
      "type": "string"
    },
    "matches": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "slug",
          "name"
        ],
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "page": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "disclosure": {
            "type": "string"
          },
          "workers_comp": {
            "type": "string"
          },
          "business_type": {
            "type": "string"
          },
          "discrepancies": {
            "type": "array"
          },
          "licenses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "issuer": {
                  "type": "string"
                },
                "number": {
                  "type": "string"
                },
                "classification": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "status": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "expires": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "source_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "checked_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "basis": {
                  "type": "string",
                  "enum": [
                    "issuer_file",
                    "stated"
                  ]
                }
              },
              "required": [
                "issuer",
                "number"
              ]
            }
          }
        }
      }
    }
  },
  "required": [
    "ok",
    "matches"
  ]
}
🟢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).

入力スキーマ

{
  "type": "object",
  "properties": {}
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer"
    },
    "note": {
      "type": "string"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "naics": {
            "type": [
              "string",
              "null"
            ]
          },
          "naics_title": {
            "type": [
              "string",
              "null"
            ]
          },
          "gbp": {
            "type": "array"
          },
          "takes_requests": {
            "type": "boolean"
          },
          "count": {
            "type": [
              "integer",
              "null"
            ]
          }
        }
      }
    }
  },
  "required": [
    "categories"
  ]
}
🟢ask(question, where)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "description": "The person's question, in their words."
    },
    "where": {
      "type": "string",
      "description": "A place, if it is not in the question."
    }
  },
  "required": [
    "question"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "businesses": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "slug",
          "name",
          "page"
        ],
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "page": {
            "type": "string"
          },
          "place": {
            "type": "string"
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "phone": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "licenses": {
            "type": "array"
          },
          "status": {
            "type": "string"
          },
          "can_take_requests": {
            "type": "boolean"
          },
          "health": {
            "type": "boolean"
          },
          "disclosure": {
            "type": "string"
          },
          "agent": {
            "type": "object",
            "properties": {
              "mcp": {
                "type": "string"
              },
              "a2a": {
                "type": "string"
              },
              "agent_card": {
                "type": "string"
              },
              "json": {
                "type": "string"
              },
              "markdown": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "intent": {
      "type": "object"
    },
    "covered": {
      "type": "boolean"
    },
    "note": {
      "type": "string"
    },
    "followups": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "has_more": {
      "type": "boolean"
    },
    "more_url": {
      "type": "string"
    },
    "ranking": {
      "type": "string"
    }
  },
  "required": [
    "text",
    "businesses",
    "ranking"
  ]
}
🟡request_contact(slug, name, email, phone, details, ...)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The slug from find_businesses or get_business."
    },
    "name": {
      "type": "string",
      "description": "The person's name."
    },
    "email": {
      "type": "string",
      "description": "An email address the business can reply to."
    },
    "phone": {
      "type": "string",
      "description": "Or a phone number the business can reply to."
    },
    "details": {
      "type": "string",
      "description": "What they need, in their words. No health details, card numbers, ID numbers or passwords."
    },
    "consent": {
      "type": "boolean",
      "description": "True only if the person read and agreed to the consent sentence."
    }
  },
  "required": [
    "slug",
    "name",
    "details",
    "consent"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "sent": {
      "type": "boolean"
    },
    "routed": {
      "type": "boolean"
    },
    "business": {
      "type": "string"
    },
    "reference": {
      "type": "string"
    },
    "next": {
      "type": "string"
    },
    "why": {
      "type": "string"
    },
    "consent_text": {
      "type": "string"
    },
    "contact_directly": {
      "type": "object"
    }
  },
  "required": [
    "sent"
  ]
}
🟢request_service(business_id)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "string",
      "description": "The business id (its slug) from find_businesses or the business feed."
    }
  },
  "required": [
    "business_id"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "business": {
      "type": "object",
      "required": [
        "slug",
        "name",
        "page"
      ],
      "properties": {
        "slug": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "page": {
          "type": "string"
        },
        "about": {
          "type": "string"
        },
        "website": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "quote_link": {
          "type": "string"
        },
        "booking_link": {
          "type": "string"
        },
        "mcp_url": {
          "type": "string"
        },
        "street": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "postal": {
          "type": "string"
        },
        "service_area": {
          "type": "object"
        },
        "languages": {
          "type": "array"
        },
        "licences": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "issuer": {
                "type": "string"
              },
              "number": {
                "type": "string"
              },
              "classification": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "status": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "expires": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "source_url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "checked_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "basis": {
                "type": "string",
                "enum": [
                  "issuer_file",
                  "stated"
                ]
              }
            },
            "required": [
              "issuer",
              "number"
            ]
          }
        },
        "licenses": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "issuer": {
                "type": "string"
              },
              "number": {
                "type": "string"
              },
              "classification": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "status": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "expires": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "source_url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "checked_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "basis": {
                "type": "string",
                "enum": [
                  "issuer_file",
                  "stated"
                ]
              }
            },
            "required": [
              "issuer",
              "number"
            ]
          }
        },
        "status": {
          "type": "string",
          "enum": [
            "seeded",
            "claimed",
            "verified"
          ]
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "disclosure": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "request_contact": {
          "type": "string"
        },
        "can_take_requests": {
          "type": "boolean"
        },
        "agent": {
          "type": "object",
          "properties": {
            "mcp": {
              "type": "string"
            },
            "a2a": {
              "type": "string"
            },
            "agent_card": {
              "type": "string"
            },
            "json": {
              "type": "string"
            },
            "markdown": {
              "type": "string"
            }
          }
        }
      }
    },
    "can_request": {
      "type": "boolean"
    },
    "consent_text": {
      "type": "string"
    },
    "how": {
      "type": "string"
    }
  },
  "required": [
    "business",
    "can_request",
    "consent_text"
  ]
}
🟢license_history(license)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "license": {
      "type": "string",
      "description": "A CSLB license number (e.g. 1000002), or a listing link or slug from find_businesses."
    }
  },
  "required": [
    "license"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "found": {
      "type": "boolean"
    },
    "license": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "page": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "how_checked": {
      "type": "string"
    },
    "watch": {
      "type": "string"
    },
    "licenses": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "issuer",
          "number",
          "status"
        ],
        "properties": {
          "issuer": {
            "type": "string"
          },
          "number": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "expires": {
            "type": "string"
          },
          "as_of": {
            "type": "string"
          },
          "source_url": {
            "type": "string"
          },
          "record": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "history": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "day": {
                  "type": "string"
                },
                "kind": {
                  "type": "string"
                },
                "change": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "required": [
    "found"
  ]
}
🟡watch_licenses(email, 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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "The person's own email address."
    },
    "licenses": {
      "type": "array",
      "maxItems": 500,
      "items": {
        "type": "string"
      },
      "description": "CSLB license numbers or listing links, up to 500."
    }
  },
  "required": [
    "email",
    "licenses"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "sent": {
      "type": "boolean"
    },
    "email": {
      "type": "string"
    },
    "licenses": {
      "type": "integer"
    },
    "unknown": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "note": {
      "type": "string"
    },
    "why": {
      "type": "string"
    },
    "tiers": {
      "type": "string"
    }
  },
  "required": [
    "sent"
  ]
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 9 件