Not an emergency service · In an emergency, call 911 PlansAccountAPI & MCPStore ↗Watt Street ↗
Independent · Est. 2026
THE PUBLIC RECORD · ORGANISED · SOS.CITY · SOS.cityThe public record of every place, organised.

Type a question, a place, a dataset or an agency. We answer from the record first, with sources. When we can't, Claude looks further.

Connect

Plug the public record into anything

One key works everywhere: in Claude and other AI assistants through MCP, in your own code through the REST API, and in spreadsheets through CSV. No key? You still get the free allowance.

StatusLive: api.sos.city and the MCP server are open now. Everything on this page is the final setup: copy it now and it will work on day one.
  1. Step 1Get a key

    Free works without one. For more, pick a plan; your key appears on the welcome page and in your account.

  2. Step 2Choose how you connect

    An AI assistant, your own code, or a spreadsheet. Pick a tab below.

  3. Step 3Ask

    Every answer names the publisher and links to the original, so you can show it to anyone.

Claude (claude.ai and the apps)
  1. Open Settings → Connectors.
  2. Choose Add custom connector.
  3. Name it SOS.city and paste the server URL.
https://api.sos.city/mcp
Server URL
Claude Code
claude mcp add --transport http sos-city https://api.sos.city/mcp --header "Authorization: Bearer YOUR_SOS_KEY"
One command in your terminal
Cursor

.cursor/mcp.json

{
  "mcpServers": {
    "sos-city": {
      "url": "https://api.sos.city/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_SOS_KEY"
      }
    }
  }
}
VS Code

.vscode/mcp.json

{
  "servers": {
    "sos-city": {
      "type": "http",
      "url": "https://api.sos.city/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_SOS_KEY"
      }
    }
  }
}
Any desktop client using a config file

Bridges to the remote server with mcp-remote

{
  "mcpServers": {
    "sos-city": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.sos.city/mcp",
        "--header",
        "Authorization: Bearer ${SOS_KEY}"
      ],
      "env": {
        "SOS_KEY": "YOUR_SOS_KEY"
      }
    }
  }
}
Any other MCP client

Use Streamable HTTP at the URL below and send your key as Authorization: Bearer. JSON responses; protocol 2025-06-18.

https://api.sos.city/mcp

What the assistant can do

ToolWhat it does
search_librarySearch the public record by question or keywords, scoped to a place (includes everything covering it) and a shelf.
get_sourceFull details of one source: publisher, original link, API endpoint, licence, check status.
list_placesThe atlas: world, countries, states, counties and cities, with their ids.
list_departmentsThe 15 shelves and what each covers.
list_gapsRecords people need that no one publishes yet. Check before saying a record doesn't exist.
request_recordAsk SOS.city to find a record that isn't in the library.
Try asking your assistant: "Using SOS.city, which datasets record building code cases in Los Angeles, and how do I pull them?"