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.
- Step 1Get a key
Free works without one. For more, pick a plan; your key appears on the welcome page and in your account.
- Step 2Choose how you connect
An AI assistant, your own code, or a spreadsheet. Pick a tab below.
- 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)
- Open Settings → Connectors.
- Choose Add custom connector.
- Name it SOS.city and paste the server URL.
https://api.sos.city/mcp
Claude Code
claude mcp add --transport http sos-city https://api.sos.city/mcp --header "Authorization: Bearer YOUR_SOS_KEY"
Cursor
{
"mcpServers": {
"sos-city": {
"url": "https://api.sos.city/mcp",
"headers": {
"Authorization": "Bearer YOUR_SOS_KEY"
}
}
}
}VS Code
{
"servers": {
"sos-city": {
"type": "http",
"url": "https://api.sos.city/mcp",
"headers": {
"Authorization": "Bearer YOUR_SOS_KEY"
}
}
}
}Any desktop client using a config file
{
"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
| Tool | What it does |
|---|---|
| search_library | Search the public record by question or keywords, scoped to a place (includes everything covering it) and a shelf. |
| get_source | Full details of one source: publisher, original link, API endpoint, licence, check status. |
| list_places | The atlas: world, countries, states, counties and cities, with their ids. |
| list_departments | The 15 shelves and what each covers. |
| list_gaps | Records people need that no one publishes yet. Check before saying a record doesn't exist. |
| request_record | Ask 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?"