Economic exposure to climate and geopolitical shocks: signals, data series, reviewed dossiers.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
The dossier. Without a key, a preview: the question, the causal chain as link ends with a status per link (observed, consistent, untested, contradicted), two constants with their source quotes, the review verdict, and counts for the rest (constants, constraints, alternatives, conjectures, trajectories). A member key opens the complete dossier: every constant, bounded constraints, alternatives with their discriminators, checks, falsifiers, paths and implications.
A member key (dfk1…), issued with the plan; omit it for the free sample
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http atlas https://shockatlas.com/api/mcp
The dossier. Without a key, a preview: the question, the causal chain as link ends with a status per link (observed, consistent, untested, contradicted), two constants with their source quotes, the review verdict, and counts for the rest (constants, constraints, alternatives, conjectures, trajectories). A member key opens the complete dossier: every constant, bounded constraints, alternatives with their discriminators, checks, falsifiers, paths and implications.
| Argument | Type | Description |
|---|---|---|
| key | string | A member key (dfk1…), issued with the plan; omit it for the free sample |
| slug* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"key": {
"type": "string",
"maxLength": 400,
"description": "A member key (dfk1…), issued with the plan; omit it for the free sample"
},
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"maxLength": 120
}
}
}The published edition in full: title, lead, the "In 30 seconds" brief when the edition has one, the three vectors, the text blocks with each paragraph labelled FACT, HYPOTHESIS or SCENARIO, the indicators to watch, and the figures recomputed at build time.
| Argument | Type | Description |
|---|---|---|
| slug* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"maxLength": 120
}
}
}With a member key: three signed links, valid seven days, to the complete export of one signal (bundle.json with the full dossier, counter-analysis and every series; organisations.csv; series.csv). Without a key it answers MEMBER_KEY_REQUIRED with the Premium plan.
| Argument | Type | Description |
|---|---|---|
| key | string | A member key (dfk1…), issued with the plan; omit it for the free sample |
| slug* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"key": {
"type": "string",
"maxLength": 400,
"description": "A member key (dfk1…), issued with the plan; omit it for the free sample"
},
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"maxLength": 120
}
}
}Premium is the only paid offer: 49 USD per month, every published analysis while the subscription is active. Review and rights limits remain; there is no agent payment.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}An organisation named in the atlas and every documented exposure it has, across signals: direction (exposed, beneficiary, competitor, adjacent), evidenced or deduced, decision type, and the dated verbatim quote it rests on.
| Argument | Type | Description |
|---|---|---|
| slug* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"maxLength": 120
}
}
}One series with its publisher, source URL, SHA-256 of the collected file, licence (rights) and observations: the last twelve without a key (sample: true, observations_total says how many exist), all of them with a member key. A restricted series returns observations_withheld: true and no values for everyone: read it at source_url.
| Argument | Type | Description |
|---|---|---|
| key* | string | |
| slug* | string | |
| member_key | string | A member key (dfk1…), issued with the plan; omit it for the free sample |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug",
"key"
],
"properties": {
"key": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"maxLength": 120
},
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"maxLength": 120
},
"member_key": {
"type": "string",
"maxLength": 400,
"description": "A member key (dfk1…), issued with the plan; omit it for the free sample"
}
}
}The same object as /api/atlas/<slug>: the signal, every series with its provenance, licence and observations (the last twelve without a key, all of them with a member key), the edition's vectors, figures and watch list, the dated hypotheses, the organisations with their verbatim evidence, the reasoning dossier under analysis (public part, or complete with a member key), the offers, and an access block saying which of the two you got.
| Argument | Type | Description |
|---|---|---|
| key | string | A member key (dfk1…), issued with the plan; omit it for the free sample |
| slug* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"key": {
"type": "string",
"maxLength": 400,
"description": "A member key (dfk1…), issued with the plan; omit it for the free sample"
},
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"maxLength": 120
}
}
}Every published signal: slug, title, date, mechanism, geography codes, series keys with whether their values are redistributable, counts of organisations and hypotheses, the edition title, a summary of the reviewed dossier (verdict, counts, contradicted links) and the URLs to read it. Optional filters: q (text in title or slug), mechanism, geography (ISO code).
| Argument | Type | Description |
|---|---|---|
| q | string | |
| geography | string | |
| mechanism | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"q": {
"type": "string",
"maxLength": 200
},
"geography": {
"type": "string",
"maxLength": 10
},
"mechanism": {
"type": "string",
"maxLength": 40
}
}
}Asks the free weekly edition for one email address. The address receives a single confirmation link and nothing else until its owner clicks it (double opt-in); one request per address per hour. Call it only for a person who asked to receive the editions, and say so with consent: true. The paid plan cannot be subscribed here: get_offers.premium.subscribe_url is where a person signs in and subscribes.
| Argument | Type | Description |
|---|---|---|
| email* | string | The address of the person who asked for the free weekly |
| consent* | boolean | true: the owner of this address asked for the editions |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"email",
"consent"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254,
"description": "The address of the person who asked for the free weekly"
},
"consent": {
"type": "boolean",
"const": true,
"description": "true: the owner of this address asked for the editions"
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 7, 2026.