← AtlasAdapt API documentation

AtlasAdapt MCP server

Use AtlasAdapt from an AI assistant. It can look up the hazards at an address, recommend a resilience plan, price each upgrade, and find the public funding that applies, through the Model Context Protocol (MCP). It uses the same engine as the AtlasAdapt product and the REST API.

1. Connect

Endpointhttps://mcp.atlasadapt.com/mcp
Until that name is live, use https://atlasadapt.com/apigw/v1/mcp. It is the same server.
TransportStreamable HTTP. Every request is a POST and gets a single JSON reply. The server is stateless and keeps no sessions.
AuthenticationYour AtlasAdapt API key, sent as Authorization: Bearer aa_live_… (request one). Without a key you can list the tools, but not call them. The key needs the mcp grant, plus the grant for each tool you want (see Tools).
Protocol versions2025-03-26, 2025-06-18, 2025-11-25 and 2026-07-28.
AccessRead-only. No tool changes anything.

Claude Code

claude mcp add --transport http atlasadapt https://mcp.atlasadapt.com/mcp \
  --header "Authorization: Bearer aa_live_YOUR_KEY"

Other clients that accept a URL and headers (Cursor, agent frameworks, your own code)

{
  "mcpServers": {
    "atlasadapt": {
      "url": "https://mcp.atlasadapt.com/mcp",
      "headers": { "Authorization": "Bearer aa_live_YOUR_KEY" }
    }
  }
}
Not yet supported: clients that can only connect through an OAuth sign-in, such as custom connectors in claude.ai or ChatGPT. Sign-in support is planned. Until then, use a client that lets you send the key in a header.

Check the connection

Ask your assistant to run my_usage. It reports what your key can do and how many requests you have left this month. To check without an assistant:

curl -s https://mcp.atlasadapt.com/mcp \
  -H "Authorization: Bearer aa_live_YOUR_KEY" -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

2. Tools

A tool shows up only when your key holds its grant. Each tool runs one REST API call and returns that call's response unchanged in structuredContent. The text reply starts with a short summary that leads with anything that must not be lost (amounts that are not counted, conditions), followed by the full response as JSON.

ToolYou sendYou get backGrant
resolve_addressaddress, countryCoordinates, state, county (and US FIPS code), postcode, FEMA flood zone, and how precise the match isgeo.resolve
assess_riskaddress, country (US, UK, DE, FR or CH)Each hazard at the address, with its rating and the public source it came fromrisk.address
list_upgradescountry, segment (both optional)The upgrade ids we price thereupgrades.catalogue
estimate_plancountry, segment, address, building, horizon_years; upgrades if you want specific onesThe recommended plan (commercial, when upgrades is left out) or the plan you named; the cost of each upgrade; the yearly loss for each hazard without and with the plan; incentives counted; net upfront cost; annual benefit; payback; net over the horizonestimate.roi
find_incentivesThe same building, plus upgradesGrants, tax credits, rebates and loans in three groups (available, contingent, non_cash), each with its reference, funding state, stated conditions, who can apply and its sourceestimate.incentives
get_incentiveref, e.g. US12c or FR33The full record for one programmeincentives.get
compare_plansThe same building, plus 2 to 5 options, each a list of upgrades with an optional labelThe options side by side: cost, incentives counted, net upfront, annual benefit, yearly loss avoided, payback, net over the horizon. Commercial buildings also get our recommended plan as an extra option. Each option is billed as one estimateestimate.roi
estimate_portfoliosites (up to 500), defaultsA job id, returned at once. Each site is billed as one requestestimate.portfolio
get_portfolio_jobjob_idThe job's status and, once done, the results for each site. Polling is freeestimate.portfolio
supply_chain_exposureA manufacturing or warehouse site, its site_annual_revenue and the customer dependencyHow long one event stops the site and its customer, and what that costs the customer. This is one event, not a yearly figure, and is never added to anythingestimate.supplychain
my_usagenothingYour grants, countries and the requests left this monthnone

The fields in building and every response field are the REST API's own. See POST /v1/estimate/roi and POST /v1/estimate/incentives.

Example prompts

Prompt

site_resilience_brief (arguments: address, and optionally country, building_type and floor_area) asks the assistant for a brief in the same order as the AtlasAdapt report: hazards with their sources, the recommended plan and its payback, then the funding, keeping counted and not-counted amounts apart.

3. Showing our numbers correctly

The same funding rules apply as in the REST API (see the funding contract in the API documentation). The tool descriptions repeat them so the assistant sees them every time:

The resource atlasadapt://contract/funding holds the full funding-rules table, and atlasadapt://incentive/{ref} reads one incentive.

4. Getting a key

Request access

Access is by API key. Tell us who you are and what you would use it for, and we will reply by email.

5. Requests and limits

Each tool call is billed as the REST call behind it, usually one request against your allowance (monthly, or for a trial, the whole term). Connecting, listing the tools and reading the funding rules are free. Per-minute limits, country restrictions and IP restrictions on your key apply as they do for the REST API.

6. Errors

When a tool is refused, for example because of a missing grant, an unknown building type, a country we don't cover or an exhausted quota, you get isError: true and a sentence naming the cause and the parameter or grant involved. A protocol error, such as an unknown method, a malformed message or an unsupported version, comes back as a standard JSON-RPC error. A request sent from a web page (with an Origin header) is refused unless your key lists that origin.