// MCP_SERVER

Connect to Data Corridor via MCP

A free Model Context Protocol server over the same evidence-scored smart city dataset as the public API. Any MCP client — Claude, Cursor, a custom agent — can search cities, rank them, pull a full evidence profile, or compare cities directly as tool calls.

Endpoint https://mcp.datacorridor.io · Streamable HTTP, stateless JSON-RPC · no API key · read-only · CC BY 4.0

Setup

Claude Code (CLI)

claude mcp add --transport http datacorridor-cities https://mcp.datacorridor.io

Claude Desktop

Settings → Developer → Edit Config, and add this to claude_desktop_config.json:

{
  "mcpServers": {
    "datacorridor-cities": {
      "url": "https://mcp.datacorridor.io"
    }
  }
}

Cursor & other MCP clients

Most MCP-compatible tools (Cursor, Windsurf, custom agents) accept the same shape in their MCP settings file:

{
  "mcpServers": {
    "datacorridor-cities": {
      "url": "https://mcp.datacorridor.io"
    }
  }
}

Raw JSON-RPC

No client library needed — every call is a single POST:

curl -X POST https://mcp.datacorridor.io \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "search_cities",
      "arguments": { "query": "birmingham" }
    }
  }'
{
  "framework": "smart-cities-iso",
  "nation": null,
  "count": 1,
  "cities": [
    {
      "rank": 116,
      "name": "Birmingham",
      "scopeId": "uk.birmingham",
      "countryCode": "GB",
      "smartnessPct": 33.3,
      "evidencePct": 39.5,
      "present": 23,
      "total": 86
    }
  ]
}

Tools

search_cities

Find assessed cities by name, optionally scoped to one nation. Returns each match's global rank and score.

{ query: string, nation?: string, framework?: "iso" | "dc20", limit?: number }
rank_cities

The smart-city leaderboard, globally or within one nation — for "top smart cities" questions.

{ nation?: string, framework?: "iso" | "dc20", limit?: number, offset?: number }
get_city

A city's full evidence-scored profile: every criterion marked present/partial/absent, grouped by category, each with its source links. Pass a scopeId (e.g. uk.birmingham) to disambiguate a name shared with another country.

{ city: string, framework?: "iso" | "dc20" }
compare_cities

Compare 2–5 cities side by side: overall scores plus each city's strongest and weakest categories.

{ cities: string[], framework?: "iso" | "dc20" }
list_frameworks

The assessment frameworks available (UN ISO-aligned and DC20), with how many cities and criteria each has.

{}

Notes

  • Defaults to the UN ISO-aligned framework. Pass framework: "dc20" to any tool to use the DC20 model instead.
  • Cities with a name shared across countries (Birmingham UK vs. Alabama, Cambridge UK vs. Massachusetts) resolve unambiguously via scopeId — nation-prefixed, e.g. uk.birmingham. If a plain name is ambiguous, get_city returns candidates instead of guessing.
  • Every finding a tool returns links back to its public source — nothing is summarised without a citation trail.
  • Not resolving yet? https://dcio-mcp.web.app is the same server, live now, while https://mcp.datacorridor.io finishes DNS setup.