Skip to main content
Conduit ships a native Model Context Protocol server that exposes the public API as agent tools. Add it to Claude Code, Claude Desktop, or Cursor and your agent can query official-source macro indicators, rates, FX reference rates, the economic calendar, and derived analytics conversationally, with no glue code. The server is read-only by design: every tool maps to a GET endpoint on the Conduit HTTP API and returns the raw JSON envelope as text, so the agent sees data, meta, and requestId and can follow next_cursor for pagination itself.
Transport is stdio. The server’s stdout is reserved for the MCP protocol; it logs only to stderr. You do not need to interact with this directly, but it is why the server is launched as a long-running subprocess by your agent host.

Read-only tools

ToolWhat it does
screen_macroScreen countries by macro indicator values using the filter DSL (field:operator:value, AND-ed).
get_latest_observationsGet the latest public observation per canonical indicator, optionally scoped to one country.
cross_countryCross-country macro differentials for a scope or country versus its peer basket.
rates_analyticsRates analytics (real rate, curve spread, policy-cycle position) for a scope or country.
observation_provenanceThe provenance (source, raw payload metadata, ingestion evidence) for a single observation by id.
The server also exposes supporting tools: list_indicators, list_countries, country_indicators, get_observations, screener_fields (discover screener fields and operators), economic_calendar, official_events, source_health, and resolve_entity (resolve a country, company, or instrument by alias such as a ticker or ISO code).
Tell your agent to call screener_fields before screen_macro. It returns the screenable canonical-indicator slugs, the operators (gt, lt, gte, lte, eq, in), and the DSL syntax, so the agent builds a valid filter instead of guessing field names.

Build the server

Build once to emit the runnable entry point at mcp/dist/index.js.
cd mcp
npm install
npm run build   # emits dist/index.js

Add it to your agent

Add to Claude Code

Register the server with the claude mcp add command, passing your key via --env and the built entry point after the -- separator. Use an absolute path.
claude mcp add conduit \
  --env CONDUIT_API_KEY=your_key_here \
  -- node /absolute/path/to/conduit/mcp/dist/index.js
Everything after -- is the launch command for the server. The CONDUIT_API_KEY value is sent as x-api-key on every request.

Add to Claude Desktop

Add a conduit entry to the mcpServers block in claude_desktop_config.json, then restart Claude Desktop.
{
  "mcpServers": {
    "conduit": {
      "command": "node",
      "args": ["/absolute/path/to/conduit/mcp/dist/index.js"],
      "env": {
        "CONDUIT_API_BASE_URL": "https://data.quantoraresearch.com",
        "CONDUIT_API_KEY": "your_key_here"
      }
    }
  }
}

Add to Cursor

Add the same mcpServers block to ~/.cursor/mcp.json.
{
  "mcpServers": {
    "conduit": {
      "command": "node",
      "args": ["/absolute/path/to/conduit/mcp/dist/index.js"],
      "env": {
        "CONDUIT_API_KEY": "your_key_here"
      }
    }
  }
}

Try a prompt

Ask your agent something macro and let it pick the tool, for example: “Which countries have CPI inflation above 3% and unemployment below 5%?” The agent will call screener_fields, then screen_macro with filter=cpi_inflation_yoy:gt:3,unemployment_rate:lt:5, and read the result envelope directly.

Configuration

Env varDefaultNotes
CONDUIT_API_BASE_URLhttps://data.quantoraresearch.comConduit API base URL.
CONDUIT_API_KEY(unset)Sent as x-api-key when present. Production requires a key.
During development you can run the server without building it with npm run dev from the mcp/ directory. It uses tsx and runs the TypeScript source directly. For agent hosts, prefer the built dist/index.js.

How errors surface

Because each tool returns the raw HTTP result, an agent sees Conduit’s stable error codes verbatim. A request that fails validation returns a bad_request body (for example, an unknown query parameter, which Conduit rejects rather than ignores), and a missing or insufficient key returns unauthorized or forbidden. The agent can read error.code and adjust, rather than retrying blindly.