MCP Integration

Connect any AI assistant to Pulse synthetic market data using the Model Context Protocol.

The Pulse MCP server exposes our market data and backtesting tools as LLM-callable functions via the Model Context Protocol. Ask your AI assistant to analyse spread behaviour, run a TWAP backtest, or profile order book depth — all in natural language.

The MCP server never returns raw market data. All responses are aggregated statistics or backtest results, keeping payloads small and LLM-friendly.

Available tools

The following tools are registered on the MCP server. Your AI assistant will automatically discover them when connected.

ToolDescription
list_available_dataDiscover available symbols and calibration dates, filtered by symbol, exchange, provider or date
list_scenariosList market scenarios and their default parameters
run_simulationSubmit a Monte Carlo simulation job
check_jobGet status of a simulation job
list_jobsList all simulation jobs for the current user
get_job_resultsGet results for all simulations in a job
list_cached_simulationsList cached baseline simulations (free tier)
list_sim_filesList available files for a simulation
get_mid_price_seriesDownload mid-price time series for a simulation
get_exec_scheduleDownload execution schedule for algo simulations
get_sim_paramsGet simulation configuration parameters
get_sim_metricsGet simulation result metrics

Available data

See Download data for the full symbol list, available cached simulations, and output file details.

Discovering symbols and dates

list_available_data is where most conversations start, and the catalog is too large to hand an assistant in one response. It therefore summarises by default — one row per instrument with date_count, first_date and last_date in place of the per-date detail — and accepts filters to narrow the listing:

ArgumentDescription
symbolExact ticker, e.g. "700.HK". Returns that instrument's full date detail
dateCalibration date "YYYY-MM-DD". Returns the instruments ready on it
exchangeExchange protocol, e.g. "hkex_securities"
providerData provider, e.g. "omd" or "bmll"
limit / offsetPage the listing; defaults to the first 50 instruments
include_datesReturn per-date detail for every instrument in the page

You rarely need to name these yourself — asking "which dates can I simulate 700.HK on?" or "what is ready on 2 September 2025?" is enough for the assistant to pick the right filter. The response reports total alongside returned, so it can tell when a listing was truncated and page for the rest.

The same ticker can appear under more than one data provider, with different dates and tick sizes — Tencent is 700.HK from omd and 700 from bmll. A date that exists for one will not necessarily exist for the other, so if a simulation is rejected for an unavailable date, check the provider before the date.

Prerequisites

  • A Pulse API key — get one from your Dashboard
  • Node.js installed (for the mcp-remote bridge used by Claude Desktop)

Claude Code (CLI)

The quickest way to connect — add the server in one command:

bash
claude mcp add pulse -s user \
  --transport http \
  https://pulse-mcp.simudyne.com/mcp \
  --header "X-API-Key: YOUR_API_KEY"

Restart Claude Code and you are ready to go. Ask it to "run a flash crash simulation for 700.HK".

Claude Desktop

1. Open your config file

On macOS it is located at:

path
~/Library/Application Support/Claude/claude_desktop_config.json

On Windows:

path
%APPDATA%\\Claude\\claude_desktop_config.json

2. Add the Pulse MCP server

Paste the following into the mcpServers object, replacing YOUR_API_KEY with your actual key:

json
{
  "mcpServers": {
    "pulse": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://pulse-mcp.simudyne.com/mcp",
        "--header",
        "X-API-Key: YOUR_API_KEY"
      ],
      "timeout": 300000
    }
  }
}

The timeout is set to 5 minutes (300 000 ms). Some tools like run_simulation submit asynchronous jobs, so you can use check_job to poll for completion. 5 minutes is a safe default for most operations.

3. Restart Claude Desktop

Fully quit Claude Desktop (Cmd+Q on macOS) and reopen it. You should see a tools icon at the bottom of the chat input showing pulse with 12 tools available.

Try asking: "What symbols are available for simulation?"

Any MCP-compatible client

The Pulse MCP server works with any tool that supports the Model Context Protocol — including Cursor, Windsurf, VS Code + GitHub Copilot, Cline, Zed, and many others. To connect, you need three things:

What you need

  • MCP server URL https://pulse-mcp.simudyne.com/mcp
  • Your API key — passed as an X-API-Key header with every request
  • Node.js — required for the mcp-remote bridge that converts between stdio and HTTP (most desktop clients use stdio under the hood)

Generic configuration

MCP is a client- and model-agnostic protocol, so the same server works regardless of which assistant you use — only the config file location differs between clients. Replace YOUR_API_KEY with your actual key and paste this block into your client's MCP server configuration:

json
{
  "mcpServers": {
    "pulse": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://pulse-mcp.simudyne.com/mcp",
        "--header",
        "X-API-Key: YOUR_API_KEY"
      ],
      "timeout": 300000
    }
  }
}

If your client supports Streamable HTTP transport directly (e.g. via a url field), you can point it straight at https://pulse-mcp.simudyne.com/mcp and skip the mcp-remote bridge entirely. Pass your API key as an X-API-Key header.