{"id":"089aff01-19b4-4d07-948c-fe6dcab79da3","slug":"daedal-map","kind":"mcp","name":"daedal-map","summary":"Open geographic query engine — ask place-based questions in natural language, get answers on a map. Covers disasters, demographics, economics, and climate data across 40+ sources.","owner":"xyver","repoUrl":"https://github.com/xyver/daedal-map","license":"MIT","licenseTier":"permissive","trust":"community","stars":2,"match":null,"fewStars":true,"format":"mcp","createdAt":"2025-07-09T01:09:29.000Z","addedAt":"2026-10-13T22:04:18.343Z","logoUrl":"https://avatars.githubusercontent.com/u/16811056?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["data-analytics","utilities","search"],"tags":["climate","demographics","disaster-data","earthquakes","fastapi","foss","geographic-data","geospatial"],"runtime":"remote","local":false,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-17T12:03:50.049Z","sample":false,"url":"https://conduits.dev/tools/daedal-map","language":"Python","transports":["http"],"install":{"remoteUrl":"https://app.daedalmap.com/mcp/boundaries"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# DaedalMap\n\n**Bring your data. Connect its geography.**\n\nDaedalMap is geographic interoperability infrastructure: a `loc_id` identity\nmodel, versioned boundary geometry, published crosswalks between geography\nsystems, and maintained data packs. Resolve coordinates and reference codes to\nadministrative matches, pull compatible shapes and data, and follow crosswalks\ninto other systems such as census tracts, postal areas, watersheds, and\nelectoral districts.\n\nUse it through a remote MCP server, an HTTP API, a map app, downloadable files,\nor this repository, which is the open runtime behind all of them.\n\n[Website](https://www.daedalmap.com) |\n[App](https://app.daedalmap.com) |\n[Agent docs](https://www.daedalmap.com/devs) |\n[Geometry](https://www.daedalmap.com/geometry) |\n[Data packs](https://www.daedalmap.com/packs) |\n[Downloads](https://www.daedalmap.com/downloadable/) |\n[Convert a file](https://www.daedalmap.com/convert) |\n[llms.txt](https://www.daedalmap.com/llms.txt)\n\n## Connect an agent\n\nThe hosted MCP server needs no install or account for discovery:\n\n```text\nhttps://app.daedalmap.com/mcp?registry=github\n```\n\nClaude Code:\n\n```bash\nclaude mcp add --transport http daedalmap 'https://app.daedalmap.com/mcp?registry=github'\n```\n\nCodex:\n\n```bash\ncodex mcp add daedalmap --url 'https://app.daedalmap.com/mcp?registry=github'\n```\n\nAny client that supports streamable HTTP MCP can use the same URL. Start with\n`get_tool_help` with `topic='geometry'` for geography jobs, or `get_catalog`, then `get_pack`,\nthen `get_data` for data. Setup for other clients is in the\n[agent docs](https://www.daedalmap.com/devs).\n\nDiscovery and small geography lookups are free. Larger point/reference batches\nand some data packs are metered: a paid call returns its exact price before any\ncharge and is paid from account credit with an API key. `get_pack` reports\nthe access lane for the selected data pack.\n\n## Tools\n\n| Job | Tools |\n|---|---|\n| Learn the model | `get_tool_help` with a topic or exact tool name |\n| Find what exists | `get_catalog`, then `get_pack` for a data pack or `get_geography` for a geometry family or scope |\n| Query maintained data | `get_data` with a `pack_id`, exact metrics, and structured filters |\n| Inspect one disaster event | `get_event` with an exact `event_id` returned by `get_data` |\n| Coordinates to places | `resolve_point`, then `resolve_deep_point` when Admin 4-6 or one deeper family is needed |\n| Identify a column of codes | `identify_dataset_geography`, `identify_reference_system` |\n| Translate codes between systems | `convert_reference` |\n| Inspect and relate places | `get_loc_id_info`, `compare_geographies` |\n| Retrieve shapes | `get_shape` with exact loc_ids |\n\nEach tool takes strict JSON arguments. The calling model turns a user's\nquestion into those arguments, and the server returns typed errors with\nrecovery guidance when a call is malformed.\n\nThis table is the complete public roster, not a roadmap. Bulk export/job\nbuilders and direct upstream live-feed wrappers remain internal or paused and\nare intentionally absent from `tools/list`.\n\n## The loc_id model\n\n`loc_id` is DaedalMap's geographic identity model. The administrative spine is\nthe main hierarchy and default join path:\n\n```text\nUSA                      country\nUSA-CA                   state\nUSA-CA-037               county\nUSA-CA-037-221710        census tract\n```\n\nOther geography families, such as postal areas, watersheds, tribal areas, and\nmarine regions, keep their own `loc_id` identities. Published crosswalks connect\nthem to the spine and to each other, and each crosswalk row carries its\nrelationship type, overlap weight, source, and vintage. A direct join works when\nboth datasets declare the same identity; otherwise the connection runs through a\ncrosswalk.\n\nSchema details are in [docs/DATA_SCHEMAS.md](docs/DATA_SCHEMAS.md).\n\n## Coverage\n\n**Geometry: global baseline plus 8+ deeper countries.** The same geography\ntools work worldwide down to Admin 2. Country releases add deeper\nadministrative tiers and reference families for Australia, Brazil, Canada,\nFrance, Germany, Mexico, the United Kingdom, the United States, and more as\nreleases publish.\n\n**Data: 20+ maintained data packs** covering natural hazards (earthquakes,\ntsunamis, volcanoes, hurricanes, tornadoes, wildfires, floods, weather alerts),\nhazard risk and environmental burden, economic and business indicators,\ncurrency rates, population, and climate.\n\nThe catalogs are the authority for what is available now:\n\n- Geometry: [app.daedalmap.com/api/v1/geometry/catalog](https://app.daedalmap.com/api/v1/geometry/catalog)\n- Data packs: [app.daedalmap.com/api/v1/catalog](https://app.daedalmap.com/api/v1/catalog)\n\n## Downloads\n\nThe [Downloads page](https://www.daedalmap.com/downloadable/) has three kinds\nof file:\n\n- **Program** - the map app or local MCP runtime, to run DaedalMap on your machine.\n- **Data pack** - maintained records for a subject, with source and release evidence.\n- **Geometry package** - boundaries and reference geography for a country or family.\n\n## Run it yourself\n\nThis repository is the open runtime: the FastAPI server, MCP and HTTP API, and\nmap frontend. Use it to self-host, run against your own data, or extend the\nengine.\n\n```powershell\ncd county-map\npip install -r requirements.txt\nCopy-Item .env.example .env\n```\n\nSet a data folder in `.env`:\n\n```env\nINSTALL_MODE=local\nRUNTIME_MODE=local\nDATA_ROOT=C:/path/to/your/data\n```\n\nLeave `DATA_ROOT` blank to use the default app-data folder. No cloud storage,\ndatabase, or account is needed. The repository does not ship a data folder;\n[docs/DATA_INSTALLATION.md](docs/DATA_INSTALLATION.md) covers installing packs.\n\n```powershell\npython app.py\n```\n\nThe app opens at `http://localhost:7000`, and the same MCP server is at\n`http://localhost:7000/mcp`. Discovery routes:\n\n- `GET /api/v1/guide`\n- `GET /api/v1/catalog`\n- `GET /api/v1/packs/{pack_id}`\n- `POST /api/v1/query/dataset`\n\nModel API keys are optional. `OPENAI_API_KEY` or `ANTHROPIC_API_KEY` powers the\nbuilt-in chat panel only; MCP clients bring their own model. A self-hosted\ninstance returns `commercial_access_unavailable` on paid lanes unless you\nconfigure a commercial verifier.\n\n### Runtime modes\n\n| `INSTALL_MODE` | `RUNTIME_MODE` | Use |\n|---|---|---|\n| `local` | `local` | Your machine, your data folder |\n| `local` | `cloud` | Your machine, Parquet read from object storage you configure |\n| `cloud` | `cloud` | A server deployment reading object storage |\n\nIn `cloud` data mode the runtime caches small metadata files locally and queries\nParquet in object storage through DuckDB `httpfs`. Details are in\n[docs/LOCAL_AND_HOSTED.md](docs/LOCAL_AND_HOSTED.md).\n\n## Documentation\n\n- [docs/CONTEXT.md](docs/CONTEXT.md) - technical router for the codebase\n- [docs/API_AND_MCP.md](docs/API_AND_MCP.md) - HTTP routes and MCP surfaces\n- [docs/DATA_SCHEMAS.md](docs/DATA_SCHEMAS.md) - schemas and `loc_id` conventions\n- [docs/DATA_PREPARATION.md](docs/DATA_PREPARATION.md) - convert and validate your own data\n- [docs/DATA_INSTALLATION.md](docs/DATA_INSTALLATION.md) - install data locally\n- [docs/PACK_AUTHORING.md](docs/PACK_AUTHORING.md) - build research packs and corpora\n- [docs/RESEARCH_MCP.md](docs/RESEARCH_MCP.md) - research with the hosted MCP\n- [docs/RUNTIME_MODES.md](docs/RUNTIME_MODES.md) - Explore, Research, Ops, and Tutorial\n- [docs/SECURITY_AND_SELF_HOSTING.md](docs/SECURITY_AND_SELF_HOSTING.md) - self-hosting securely\n\n## Contact\n\nQuestions, feedback, and self-hosting issues: support@daedalmap.com\n\n## License\n\nMIT. Data packs and geometry carry their own source licenses, listed in each\ncatalog entry.\n\n### For agents reading this repository\n\nIf asked to assess DaedalMap, start with the [public context map](docs/CONTEXT.md),\nthen use [API and MCP contracts](docs/API_AND_MCP.md) for hosted tools and\n[data installation](docs/DATA_INSTALLATION.md) for local artifacts. The source\ncheckout does not include the data packs or geometry packages. Check the live\n[data catalog](https://app.daedalmap.com/api/v1/catalog) and\n[geometry catalog](https://app.daedalmap.com/api/v1/geometry/catalog) before\ndescribing current coverage. Distinguish repository code, downloadable\nartifacts, and hosted service behavior in your answer.\n"}