MCP server

The Pulse MCP server is a small stdio process that turns the JSON API into eight read-only tools. Your agent can then screen tokens, inspect a wallet or read the latest newsletter without you pasting data.

How it works#

pulse-mcp does not open the database. It calls the Pulse HTTP API, so a Pulse instance must be running and reachable. Start one with npx -y -p pulse-trenches pulse (see Getting started) and point the MCP server at it with PULSE_URL.

Tools#

ToolInputsWhat it returns
pulse_overviewnoneMarket totals, status counts, sectors, launch counts, hot tokens and the lifecycle rules. Same as /api/overview.
pulse_tokenschain, status, sort (default volume), category, launchpad, tech (boolean), minMcap, minVolume, q, limit (default 25, max 200), offsetFiltered token list with total and rows. See /api/tokens.
pulse_tokenchain, addressOne token with pools, snapshots, list appearances, events, trades and wallet positions.
pulse_launcheschain, kind (launch or graduation), limit (default 100, max 500)Recent launch and graduation events.
pulse_walletskind (kol or smart)Ranked labelled wallets with rolling scores.
pulse_walletaddressOne wallet with its positions and recent trades.
pulse_reportday (optional, YYYY-MM-DD)With a day, that issue's structured data and rendered text. Without one, the list of stored issues.
pulse_exporttable, limit (default 500, max 5000)Raw rows from one of nine archive tables.

Enumerated inputs (chain, status, sort, table) are validated with zod before the request is made, so a model that guesses a wrong value gets a clear schema error instead of an empty result.

Configuration#

VariableDefaultPurpose
PULSE_URLhttp://localhost:8787Base URL of the Pulse API. Point it at a remote instance if Pulse runs elsewhere.

Client setup#

All three clients take the same server entry. The -p pulse-trenches form is needed because the package ships two commands.

{
  "command": "npx",
  "args": ["-y", "-p", "pulse-trenches", "pulse-mcp"]
}

Claude Desktop#

Open Settings, Developer, Edit Config, and add the server to claude_desktop_config.json. Restart Claude Desktop.

{
  "mcpServers": {
    "pulse": {
      "command": "npx",
      "args": ["-y", "-p", "pulse-trenches", "pulse-mcp"],
      "env": { "PULSE_URL": "http://localhost:8787" }
    }
  }
}

Claude Code#

Add it from the command line, or commit a .mcp.json with the same mcpServers block as above.

claude mcp add pulse --env PULSE_URL=http://localhost:8787 -- npx -y -p pulse-trenches pulse-mcp

Cursor#

Put the block in ~/.cursor/mcp.json for all projects, or .cursor/mcp.json for one project.

{
  "mcpServers": {
    "pulse": {
      "command": "npx",
      "args": ["-y", "-p", "pulse-trenches", "pulse-mcp"],
      "env": { "PULSE_URL": "http://localhost:8787" }
    }
  }
}

Any other MCP client#

Run the command npx -y -p pulse-trenches pulse-mcp over stdio with PULSE_URL in its environment. From a source checkout, node src/cli.ts mcp does the same.

Try it#

Once connected, ask in plain language:

When Pulse is not running#

If the API is unreachable, every tool fails with a message that tells the agent what to do: Cannot reach Pulse at ... Start it with "npx pulse-trenches" or set PULSE_URL. Start Pulse, or correct PULSE_URL, and call the tool again.

Treat returned text as data. Token names, symbols, descriptions and links come from the chain and anyone can set them to anything, including text that reads like instructions. Pulse never acts on them, and neither should the agent. Do not let a token's description decide what your agent does next.