API & MCP
Everything published in this guide can be read by an AI agent or a program: the same papers, news, researcher profiles and debate claims, with the same sources and AI-written labels. It is read-only, free, and needs no key or account.
Connect over MCP
The guide runs a Model Context Protocol server. Any MCP client can add it by URL:
https://api.aifaultline.com/mcp
Streamable HTTP transport, stateless, no sign-in.
Claude Code
claude mcp add --transport http ai-fault-line https://api.aifaultline.com/mcp
Claude (claude.ai and the desktop app)
Open Settings, then Connectors, choose Add custom connector, and paste the URL above. Leave the authentication fields empty.
Cursor, Windsurf and other clients that take a URL
{
"mcpServers": {
"ai-fault-line": {
"url": "https://api.aifaultline.com/mcp"
}
}
}
VS Code
In .vscode/mcp.json:
{
"servers": {
"ai-fault-line": {
"type": "http",
"url": "https://api.aifaultline.com/mcp"
}
}
}
Clients that only run local servers
Bridge the URL with mcp-remote (needs Node.js):
{
"mcpServers": {
"ai-fault-line": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.aifaultline.com/mcp"
]
}
}
}
Tools
| Tool | Arguments | Returns |
|---|---|---|
search | query (required); types: paper, news, author, claim; limit 1–50 | Full-text search over papers, news and podcasts, researcher profiles and the five claims. |
get_paper | id (required): a paper key from search, or its site slug | Bibliographic data, abstract, AI-written summary and explainer when there is one. |
get_author | id (required), e.g. daron-acemoglu | Role, documented-facts-only bio with sources, links, and documented positions with evidence. |
list_claims | none | The five debate claims with how many coded researchers agree, are mixed or disagree. |
get_claim | id (required): productivity, jobs, inequality, regulation or pace | The claim, its state-of-the-debate note with sources, and the coded positions. |
list_recent_news | kind: article or podcast; topic; region (e.g. US, EU); limit 1–50 | The newest published news articles and podcast episodes. |
get_letter | none | The wemustactnow.ai letter: verbatim text and a labeled AI summary. |
Results are JSON. A typical session searches first, then fetches the full
record with get_paper, get_author or get_claim.
JSON API
The same content over plain HTTP GET, at https://api.aifaultline.com. There is an
OpenAPI description, and CORS is open, so it
works from a browser too.
| Endpoint | Parameters | What it returns |
|---|---|---|
/api/search?q=… | type (paper,news,author,claim), limit, theme, topic, region, kind | Search everything published |
/api/papers | limit | Published papers, newest first |
/api/papers/{id} | — | One paper by key or slug |
/api/news | limit, kind, topic, region | Published news and podcast episodes |
/api/authors | — | Every profiled researcher |
/api/authors/{id} | — | One profile with documented positions |
/api/claims | — | The five debate claims with stance counts |
/api/claims/{id} | — | One claim with its note and coded positions |
/api/letter | — | The open letter |
/api/status | — | Record counts and the time of the last sync |
/export/ | — | The CSV and JSON downloads: files, record counts, sizes, build time |
curl "https://api.aifaultline.com/api/search?q=productivity&type=paper,claim&limit=5"
Calling the MCP server by hand
Each request is one JSON-RPC message in a POST:
curl https://api.aifaultline.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_claim","arguments":{"id":"jobs"}}}'
Using what you get
Summaries, explainers, claim notes and researcher bios are AI-written; each record says so
in its labels. Researcher positions are documented positions with citations, not
characterizations. When you quote the guide, keep the source links, say where text is
AI-written, and give stance counts with their denominator (“n of N coded researchers”). The scores used to curate the collection are internal and not exposed.
A plain-text overview for crawlers and language models is at llms.txt. Calls are logged anonymously to see which tools are used (usage statistics). Whole-collection CSV and JSON files are on Download.