Skip to main content
Glama
US Business Verification MCP Server

US Business Verification MCP Server

by rezearcher
README.md
# US Business Verification — MCP Server

A zero-dependency [Model Context Protocol](https://modelcontextprotocol.io) server that verifies
US businesses against **official, keyless state registries** and screens them against the **live
OFAC SDN sanctions list** — the know-your-business (KYB) checks an agent needs before it trusts a
counterparty, with the exact source URL and timestamp on every field.

No API key. No account. No paid proxy. Every record is built from public-domain official sources.

## What it does

Give it a business name (and optionally a state) and it returns a single structured record:

- **Scored match** — `match_confidence` (0–1) and `match_tier`, not a naive string compare, so an
  agent can threshold its own risk.
- **Official identity** — `entity_name`, `entity_id`, `status` + normalized status, `entity_type`,
  `formation_date`, `jurisdiction`, `registered_agent`, `principal_address`.
- **UCC-lien profile (Colorado)** — active liens, secured parties, filing dates — the debt-and-
  collateral picture an entity lookup alone never shows.
- **OFAC SDN sanctions screen** — the business *and* its registered agent checked against the live
  Specially Designated Nationals list, downloaded per call (a delisted entity correctly clears).
- **Defensible no-match audit** — a miss returns `no_match_reason` and ranked `candidates`, never a
  bare `false`, so "not found" is explainable.
- **Provenance on everything** — `source_url` + `retrieved_at` on every record.

### States currently live

| State | Source | Depth |
|-------|--------|-------|
| **NY** | NY Dept. of State business entities | scored match + status |
| **CO** | CO Secretary of State entities + UCC-lien family | match + full UCC profile |
| **CT** | CT Secretary of the State Business Registry | explicit status + registered agent |

All three are keyless Socrata open-data endpoints published under a public-domain license. Coverage
is derived from the live source registry — `list_states` always reports the true current set.

## Tools

| Tool | What it does |
|------|--------------|
| `verify_business` | Verify one or more businesses (names or `{name, state}`). Scored match, status, formation, registered agent, CO UCC profile, OFAC screen, provenance. |
| `screen_sanctions` | Screen names directly against the live OFAC SDN list. Per-name verdict (`clear` / `potential_match` / `match`), program, matched alias, confidence, source URL. |
| `list_states` | The states verifiable right now and how each is addressed. No network call. |
| `get_hosted_access` | Describes the hosted batch rail for high-volume, metered runs. No network call, no payment. |

## Install & run

Run it straight from the repository — no install, no key:

```bash
npx github:rezearcher/business-verification-mcp
```

### Claude Desktop / Cursor / any MCP client

```json
{
  "mcpServers": {
    "business-verification": {
      "command": "npx",
      "args": ["github:rezearcher/business-verification-mcp"]
    }
  }
}
```

The server speaks MCP stdio (newline-delimited JSON-RPC 2.0). It boots instantly and pulls in no
transitive dependencies.

## Example

```jsonc
// verify_business { "businesses": ["Palantir Technologies"], "state": "CO" }
{
  "input_name": "Palantir Technologies",
  "matched": true,
  "match_confidence": 0.9,
  "entity_name": "Palantir Technologies Inc.",
  "entity_id": "20201707433",
  "status": "Good Standing",
  "status_normalized": "active",
  "entity_type": "FPC",
  "formation_date": "2020-08-18",
  "jurisdiction": "DE",
  "ucc": { "checked": true, "jurisdiction": "CO", "has_active_liens": false, "lien_count": 0 },
  "source_url": "https://data.colorado.gov/resource/4ykn-tg5h.json?$where=entityid='20201707433'",
  "retrieved_at": "2026-11-06T12:43:31.387Z"
}
```

## Source terms

Each state source is a public-domain Socrata open-data dataset; the license is recorded per source
before it is added, and a source whose terms prohibit this use is not included. The OFAC SDN list is
a US-government work (17 U.S.C. §105, public domain).

## Hosted batch rail

These tools are free and keyless. For managed, high-volume batch verification with per-match metered
billing (pay only on a confirmed match; no-matches are free), see
[the hosted rail](https://apify.com/greyridge-signals/us-business-verification). The hosted service
runs the same core — it adds scale, run history, and metering, not different data.

## Maintenance

A scheduled smoke test runs a real MCP client handshake plus a live verification and a live OFAC
load on every push and daily; if an official source changes shape, the roundtrip fails and an issue
is opened automatically. Run it yourself with `npm test`.

## License

MIT — Grey Ridge Signals Group LLC.

TDQS

A4.2/5.0

Scored across 4 tools

Disambiguation4/5

verify_business, screen_sanctions, list_states and get_hosted_access each target a clearly different action/resource, so an agent can pick between them. The only soft overlap is that verify_business already screens against OFAC by default, leaving slight ambiguity about when to call screen_sanctions standalone (the description does clarify it is for names without a state lookup).

Naming Consistency5/5

All four tools follow a strict verb_noun snake_case pattern: verify_business, screen_sanctions, list_states, get_hosted_access. Consistent verbs (verify/screen/list/get) with no camelCase or stylistic drift.

Tool Count4/5

Four tools is lean but defensible for a focused verification server: one core lookup, one screening primitive, one discovery helper, one access-info helper. Slightly under-scoped because get_hosted_access is an upsell/informational tool rather than a functional capability, so the operational surface is effectively three tools.

Completeness4/5

Core lifecycle is covered: batch verification with structured audit records and no-match handling, direct sanctions screening, and state coverage discovery. Minor gaps exist — no standalone lookup by entity_id, no UCC-lien tool outside the Colorado attachment, and no way to enumerate or filter entities within a state.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues