# Netstate

> Search 128 million official company registrations across every US state, DC, Puerto Rico and Canada.

- name: co.netstate/netstate
- version: 1.0.0
- connection class: unknown (unknown)
- trust: 79/100 flags: no-repository
- quality: 86/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/co.netstate%2Fnetstate
- tools: https://api.protogrid.dev/v1/servers/co.netstate%2Fnetstate/tools

**Not classified yet.** The remote endpoints have not been probed successfully, or the listing has nothing to connect to.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "netstate": {
      "type": "http",
      "url": "https://netstate.co/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 99
- freshness: 85
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-97% ~updated-55d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 86/100 (good)

### protocol: n/a (weight 25)

- n/a `protocol.modern`, `protocol.stateless`, `protocol.transport`, `protocol.list_ttl`: no remote answered a protocol handshake (not probed yet, unreachable, or local-only)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- warn `tools.annotations`: only 1 of 4 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: search_companies (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_site_info (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_jurisdictions (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 835 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 4, about 835 tokens to load them all
- tool set hash: ebf41bf6a642e2b7b7268731817e775c
- badge: [![protogrid quality](https://protogrid.dev/badge/co.netstate/netstate.svg)](https://protogrid.dev/servers/co.netstate/netstate)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://netstate.co/mcp (streamable-http, auth unknown, reachable true, uptime30d 0.9652174)

## Packages

_none_

## Tools (4)

- `get_site_info`: What Netstate is, its pricing plans, API endpoints, FAQ and usage restrictions. Call this to learn what the site offers before using the data tools.
- `list_jurisdictions`: The taxonomy for building queries: countries with regions (and cities when a country+region is given), industries, statuses, and total company count. Call this first to find valid slugs for the other tools.
- `register_agent`: Self-register as an agent and receive a working Netstate API key in the response — no human step. The key authenticates the REST API at /v1: send it as the x-api-key header. Search and taxonomy are free; premium endpoints (e.g. court records) spend 1 credit per company and need a paid plan (from $15/mo, see /pricing) — new keys start with no credits. Idempotent per email: registering the same email again returns a fresh key.
- `search_companies`: Full-text search across 128 million registered companies in official US and Canadian state registers — by legal name, officer or director name, phone number, email or website. Contact-shaped queries (phone/email/website) resolve through the official records carrying that exact value; the response's matched_by field says which channel matched. Filters mirror the website's facet rail; the response carries up to 25 matching profiles plus facet counts. Facet counts describe every name match (not just the filtered set), so they show which filter values would widen or narrow the search. Records are for human review — not for automated decisions covered by the FCRA.
