Public records for every city: permits, alerts, wildfires, laws and funding, linked to the source.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Starts a one-time purchase and returns a Stripe Checkout link for the person who pays, plus a status_url to poll. product: credits_1k ($10), credits_10k ($79) or city_pack ($29, needs place). The person must agree to the data-use terms (no screening or profiling people): pass agree_data_use=true only after they have.
Email of the person paying. Receipts and the account go there.
True once the person accepts: no tenant, employment, credit or insurance screening, and no locating or profiling anyone.
For city_pack: a place id, e.g. us-ca-los-angeles.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http sos-city https://api.sos.city/mcp
Starts a one-time purchase and returns a Stripe Checkout link for the person who pays, plus a status_url to poll. product: credits_1k ($10), credits_10k ($79) or city_pack ($29, needs place). The person must agree to the data-use terms (no screening or profiling people): pass agree_data_use=true only after they have.
| Argument | Type | Description |
|---|---|---|
| email* | string | Email of the person paying. Receipts and the account go there. |
| place | string | For city_pack: a place id, e.g. us-ca-los-angeles. |
| product* | string | |
| agree_data_use* | boolean | True once the person accepts: no tenant, employment, credit or insurance screening, and no locating or profiling anyone. |
{
"type": "object",
"required": [
"product",
"email",
"agree_data_use"
],
"properties": {
"email": {
"type": "string",
"description": "Email of the person paying. Receipts and the account go there."
},
"place": {
"type": "string",
"description": "For city_pack: a place id, e.g. us-ca-los-angeles."
},
"product": {
"enum": [
"credits_1k",
"credits_10k",
"city_pack"
],
"type": "string"
},
"agree_data_use": {
"type": "boolean",
"description": "True once the person accepts: no tenant, employment, credit or insurance screening, and no locating or profiling anyone."
}
}
}Every source that covers one place (with publisher, original link, licence and reuse terms) plus a year of records whose sources allow reuse. Costs 2900 credits from the API key's balance. Without credits, use buy (product city_pack) or the REST URL with x402.
| Argument | Type | Description |
|---|---|---|
| place* | string | Place id, e.g. us-ca-los-angeles. |
{
"type": "object",
"required": [
"place"
],
"properties": {
"place": {
"type": "string",
"description": "Place id, e.g. us-ca-los-angeles."
}
}
}Full details of one source by id: publisher, original link, API endpoint, formats, update rate, last update, licence, location detail, check status and notes.
| Argument | Type | Description |
|---|---|---|
| id* | integer |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer"
}
}
}The SOS.city data store: what's free, what costs credits (1 credit = 1 cent), credit packs, city data packs, building records and deep searches, and every way to pay (credits with an API key, x402 USDC, or a Stripe link for a person). Shows the caller's credit balance when an API key is sent.
No arguments.
{
"type": "object",
"properties": {}
}The 15 departments (shelves) every source sits on, with what each covers.
No arguments.
{
"type": "object",
"properties": {}
}Records people need that the library doesn't hold yet, or that no agency publishes. Check this before telling a user a record doesn't exist.
| Argument | Type | Description |
|---|---|---|
| place | string | |
| status | string |
{
"type": "object",
"properties": {
"place": {
"type": "string"
},
"status": {
"enum": [
"researching",
"sourced",
"no_public_source"
],
"type": "string"
}
}
}The atlas: world, countries, states, counties and cities, with their ids. Filter by parent id (e.g. 'us' for US states) or kind.
| Argument | Type | Description |
|---|---|---|
| kind | string | |
| name | string | Part of a place name. |
| parent | string |
{
"type": "object",
"properties": {
"kind": {
"enum": [
"world",
"country",
"state",
"county",
"city"
],
"type": "string"
},
"name": {
"type": "string",
"description": "Part of a place name."
},
"parent": {
"type": "string"
}
}
}Ask SOS.city to find a public record that isn't in the library. It joins the gap board; give an email to hear back. Never for locating or profiling a person.
| Argument | Type | Description |
|---|---|---|
| string | ||
| place | string | |
| question* | string |
{
"type": "object",
"required": [
"question"
],
"properties": {
"email": {
"type": "string"
},
"place": {
"type": "string"
},
"question": {
"type": "string"
}
}
}Find public-records sources (datasets, portals, registers, reports) by question or keywords. Use `place` to include everything covering a place, from the city up to federal and global sources. Returns the publisher, how to get the data (API endpoint or page), update rate, last update, licence and whether we verified it. Not for finding, profiling or screening people.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| place | string | Place id, e.g. 'us-ca-los-angeles', 'us-ca', 'us', 'germany'. Use list_places to find ids. |
| query* | string | What you're looking for, e.g. 'open code enforcement cases' or 'boil water notices'. |
| department | string | Shelf id: water, power, safety, housing, laws, funding, services, transport, environment, health, people, consumer, education, jobs, portals. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"place": {
"type": "string",
"description": "Place id, e.g. 'us-ca-los-angeles', 'us-ca', 'us', 'germany'. Use list_places to find ids."
},
"query": {
"type": "string",
"description": "What you're looking for, e.g. 'open code enforcement cases' or 'boil water notices'."
},
"department": {
"type": "string",
"description": "Shelf id: water, power, safety, housing, laws, funding, services, transport, environment, health, people, consumer, education, jobs, portals."
}
}
}The records SOS.city reads from agencies' open data, one row each: building permits, code-enforcement cases, inspections, certificates of occupancy, new business registrations, grants, weather alerts, earthquakes, US wildfires (NIFC) and SCE power shutoffs. Filter by place, kind, ZIP or street address. Each row links to the agency's original. History depends on the plan (Free: 30 days, 100 rows). full_history=true (1 credit) and limit over 100 (1 credit per extra 100 rows, up to 1,000) are paid from the API key's credits; see get_store.
| Argument | Type | Description |
|---|---|---|
| zip | string | Five-digit ZIP. |
| kind | string | |
| limit | integer | Over 100 is paid (1 credit per extra 100 rows). |
| place | string | Place id, e.g. 'us-ca-los-angeles'. |
| since | string | YYYY-MM-DD. |
| address | string | Street address, e.g. '200 N Spring St'. Matches by house number and street name. |
| full_history | boolean | Past the plan's history window (1 credit). |
{
"type": "object",
"properties": {
"zip": {
"type": "string",
"description": "Five-digit ZIP."
},
"kind": {
"enum": [
"permit",
"code_case",
"inspection",
"cofo",
"business",
"grant",
"weather_alert",
"earthquake",
"wildfire",
"power_shutoff"
],
"type": "string"
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 1000,
"minimum": 1,
"description": "Over 100 is paid (1 credit per extra 100 rows)."
},
"place": {
"type": "string",
"description": "Place id, e.g. 'us-ca-los-angeles'."
},
"since": {
"type": "string",
"description": "YYYY-MM-DD."
},
"address": {
"type": "string",
"description": "Street address, e.g. '200 N Spring St'. Matches by house number and street name."
},
"full_history": {
"type": "boolean",
"description": "Past the plan's history window (1 credit)."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.