Skip to main content
ClaudeWave

sos-entities — state business-entity registries in one normalised shape (fleet #2867).

MCP ServersOfficial Registry0 stars0 forks● TypeScriptMITUpdated today
ClaudeWave Trust Score
95/100
✓ Verified
Passed
  • ✓Open-source license (MIT)
  • ✓Actively maintained (<30d)
  • ✓Clear description
  • ✓Topics declared
  • ✓Documented (README)
Last scanned: 10/22/2026
Install in Claude Code / Claude Desktop
Method: NPX · @pipeworx/mcp-sos-entities
Claude Code CLI
claude mcp add mcp-sos-entities -- npx -y @pipeworx/mcp-sos-entities
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "mcp-sos-entities": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-sos-entities"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Use cases

MCP Servers overview

# @pipeworx/sos-entities

US state business-entity registries (Secretary of State) in one normalised shape. It covers Florida, New York, Colorado, Oregon, Connecticut and Pennsylvania, plus Texas through the Comptroller's franchise-tax registrations. A record gives the entity number, legal name, type, status, formation date, principal address and registered agent, with officers given as names and roles where the state publishes them. A formation feed lists new entities in a state since a given date. Keyless.

Part of [Pipeworx](https://pipeworx.io) — an MCP gateway connecting AI agents to 1855+ live data sources. This is an independent, unofficial integration — not affiliated with, endorsed by, or published by the upstream provider.

## Tools

- `sos_search(name, state?, status?, limit?)`: finds entities by company name. It matches names that start with the query, and retries as a contains-match when nothing starts with it. Leave out `state` to search all seven states at once. Each state reports its own `count`, `match` and `data_as_of`. A state whose registry failed to answer appears in `state_errors`, and `complete` is then false.
- `sos_entity(state, entity_number)`: returns the full record for one entity, including `officers: [{name, role}]` where the state publishes them. Florida gives up to six officers, Connecticut its principals, Pennsylvania all listed parties, New York the chairman or CEO, and Oregon the authorized representative. Colorado and Texas publish no officers. `found: false` only means the registry answered and has no such number.
- `sos_new_entities(state, since, name_query?, entity_type?, limit?)`: lists entities formed from `since` through today, newest first, ordered by formation date and then entity number. Future-dated (delayed-effective) filings are left out. Florida reaches back 70 days; the other states reach any date. This is the feed for new-business lists and formation monitoring.

## Auth

Keyless.

## Personal data

Bruce ruled on 2026-10-08 (decision PD, "names-and-roles") that officer, director, manager and agent names are served with their roles and source. Addresses of individuals are never served and never fetched:

- Every Socrata query names its columns.
- A person's address column is either left out of the query entirely, or wrapped in a SoQL `case()` that returns null unless the holder is a business.
- A registered agent's address appears only when the agent is a business.

Florida's ingest drops officer addresses at parse time. It also keeps an agent's address only when the agent is flagged as an entity **and** is named like one: about 37% of agents Florida flags as entities are people.

Removal requests go to hello@pipeworx.io. Names are withheld through `src/removals.ts`, which applies to every state.

## Data sources

- NY: <https://data.ny.gov/d/n9v6-gdp6>. Department of State Active Corporations. Lists active entities only.
- CO: <https://data.colorado.gov/d/4ykn-tg5h>. Secretary of State Business Entities in Colorado. Covers all statuses.
- OR: <https://data.oregon.gov/d/tckn-sxa6>. Corporation Division Active Businesses. It has one row per associated name (place of business, mailing address, registered agent, authorized representative), and the pack groups the rows by `registry_number`.
- CT: <https://data.ct.gov/d/n7gp-d28j> (Business Master), <https://data.ct.gov/d/ka36-64k6> (Principals) and <https://data.ct.gov/d/qh2m-n44y> (Agents), joined on the internal `business_id`. The public entity number is `accountnumber`.
- TX: <https://data.texas.gov/d/9cir-efmm>. Comptroller Active Franchise Taxpayers. This is not the Texas SOS registry, which is a paid service. The type, status and right-to-transact codes come from the dataset's attached "Franchise Layout.docx".
- PA: <https://data.pa.gov/d/xvd7-5r2c>. Department of State Registered Businesses in PA. It has one row per party, and its address is the business's registered address. The search portal at file.dos.pa.gov answers automated clients with HTTP 999 "Security Check". This open-data dataset is the route a Worker can reach.
- FL: the Florida Division of Corporations' public SFTP server, `sftp.floridados.gov`. The user `Public` and its password are posted by the Division on <https://dos.fl.gov/sunbiz/other-services/data-downloads/>. It serves a quarterly full file `doc/Quarterly/Cor/cordata.zip` (about 1.8 GB, Deflate64, about 13.0M records) and daily files `doc/cor/YYYYMMDDc.txt`. Records are 1,440-byte fixed-width; the layout is in `scripts/sos-entities/ingest_fl.py`.

### Florida is not a live call

Sunbiz search gives automated clients a JavaScript challenge. Florida's per-entity data is published only as SFTP files, and a Worker cannot use SFTP. `scripts/sos-entities/ingest_fl.py`, run by `.github/workflows/sos-entities-fl-refresh.yml` (daily filing files, plus a weekly full build), parses those files into the gateway's dataset bucket. The pack range-reads one gzipped chunk per lookup. Daily files newer than the full build are overlaid, so a new filing is searchable the day Florida publishes it. Florida responses carry `data_as_of`, the latest daily file date. Without the gateway's dataset binding (a bare npm install), Florida calls raise an error that says so; the other six states still work.

Design note: `docs/sos-entities-design.md`.

### Gotchas

- data.ny.gov returns HTTP 414 once a URL passes about 8 KB. The business-name test is repeated once per address in the `$select`, so the pattern list is kept short and each address is fetched as one `|`-joined column.
- Florida's formation date can be a future effective date. Colorado and Texas also carry dates in late 2026. `sos_new_entities` stops at today.
- NY, OR and PA publish active entities only. `status: "inactive"` for those states returns a `state_notes` entry, not an empty result.
- Florida person names are fixed-width: last (20), first (14), middle initial (1), suffix (7). A lone letter in the suffix slot is a middle initial typed into the wrong field.

## Quick Start

Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):

```json
{
  "mcpServers": {
    "sos-entities": {
      "url": "https://gateway.pipeworx.io/sos-entities/mcp"
    }
  }
}
```

### What this endpoint actually serves

`tools/list` at `https://gateway.pipeworx.io/sos-entities/mcp` returns the tools in the table
above **plus the shared Pipeworx meta-tools** — `ask_pipeworx`,
`discover_tools`, `search_within`, `remember`/`recall` and the rest of the
gateway-wide set. So the tool count you see is larger than this table: a
single-pack endpoint currently lists roughly 30 shared tools alongside the
pack's own. The connection's `initialize` response states its exact scope, and
is the authoritative answer for a given day.

This is deliberate, not multiplexing by accident. The meta-tools are what let a
scoped connection answer a question this pack does not cover — via
`ask_pipeworx`, which routes across the whole catalog — without you adding a
second MCP server. There is currently no way to mount a pack endpoint without
them; if the extra schemas cost you more context than the routing is worth,
connect to the full gateway once rather than to several pack endpoints.

Or connect to the full Pipeworx gateway to get every pack's tools listed
directly, instead of just this one's:

```json
{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}
```

Both URLs reach the same gateway and the same 1855+ data sources. The
only difference is which pack's tools are listed **directly**; `ask_pipeworx`
reaches all of them from either one.

## No MCP client? Call it over HTTP

```bash
curl -X POST https://gateway.pipeworx.io/v1/tools/sos_search \
  -H 'Content-Type: application/json' \
  -d '{"name":"Goldman Sachs & Co","state":"NY","limit":3}'
```

No account needed for the first calls. Inspect any tool: `GET https://gateway.pipeworx.io/v1/tools/sos_search`. Find one: `POST https://gateway.pipeworx.io/v1/tools/search_packs` with `{"query":"..."}`.

## Standalone (no gateway account)

This package also runs as a local stdio MCP server — no Pipeworx account, no
gateway round-trip:

```json
{
  "mcpServers": {
    "sos-entities": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-sos-entities"]
    }
  }
}
```

Or run it directly to confirm it starts:

```bash
npx -y @pipeworx/mcp-sos-entities
```

It speaks MCP over stdin/stdout and answers `initialize`/`tools/list`/`tools/call`
for **only** this pack's tools — none of the shared meta-tools the gateway
connection above adds. Same source, same tools, no ask_pipeworx routing.

## Using with ask_pipeworx

Instead of calling tools directly, you can ask questions in plain English —
this works on the pack endpoint above as well as on the full gateway:

```
ask_pipeworx({ question: "your question about Sos Entities data" })
```

The gateway picks the right tool and fills the arguments automatically.

## More

- [Docs and guides](https://pipeworx.io/docs)
- [pipeworx.io](https://pipeworx.io)

## License

MIT
mcpmcp-servermodel-context-protocolpipeworxsos-entities

What people ask about mcp-sos-entities

What is pipeworx-io/mcp-sos-entities?

+

pipeworx-io/mcp-sos-entities is mcp servers for the Claude AI ecosystem. sos-entities — state business-entity registries in one normalised shape (fleet #2867). It has 0 GitHub stars and its last recorded update is dated 2026-10-21.

How do I install mcp-sos-entities?

+

You can install mcp-sos-entities by cloning the repository (https://github.com/pipeworx-io/mcp-sos-entities) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is pipeworx-io/mcp-sos-entities safe to use?

+

Our security agent has analyzed pipeworx-io/mcp-sos-entities and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.

Who maintains pipeworx-io/mcp-sos-entities?

+

pipeworx-io/mcp-sos-entities is maintained by pipeworx-io. The last recorded GitHub activity is dated 2026-10-21, with 0 open issues.

Are there alternatives to mcp-sos-entities?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy mcp-sos-entities to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: pipeworx-io/mcp-sos-entities
[![Featured on ClaudeWave](https://claudewave.com/api/badge/pipeworx-io-mcp-sos-entities)](https://claudewave.com/repo/pipeworx-io-mcp-sos-entities)
<a href="https://claudewave.com/repo/pipeworx-io-mcp-sos-entities"><img src="https://claudewave.com/api/badge/pipeworx-io-mcp-sos-entities" alt="Featured on ClaudeWave: pipeworx-io/mcp-sos-entities" width="320" height="64" /></a>

More MCP Servers

mcp-sos-entities alternatives