pulse-ai SDK.
Choose how to connect
Both send documents to Pulse’s API for processing and use your organization’s credits.
Hosted MCP
Choose your client below. The MCP server runs on Pulse, with no local installation. Existing Pulse OAuth connections use browser sign-in. The API-key examples are for manual connections when a Pulse OAuth connection is unavailable.- Claude (web and desktop)
- Claude Code
- Codex
- VS Code
- Cursor
- Open Claude’s connector directory and select Pulse → Connect.
- Sign in to Pulse and approve access.
- Give Claude a public or presigned document URL.
Local MCP
Your client launches the MCP server on your computer and can give it local file paths. Local Parse uploads files directly to Pulse, up to 100 MB.1
Install uv
2
Authenticate
Run:This opens your browser to sign in to Pulse and approve access. It creates a device
API key, saves it to
~/.pulse/mcp.toml with owner-only permissions (0600), and exits.3
Add to your MCP client
Choose your client below. These configs use your saved login automatically;
leave
--login out of the launch command.- Claude Code
- Claude Desktop
- Codex
- VS Code
- Cursor
Run:Run
/mcp to check that Pulse is connected.PULSE_API_KEY overrides saved login. See credentials and troubleshooting.
Run a workflow
Give your agent a document and describe the output you want. For example:“Use Pulse to read this bank statement: https://platform.runpulse.com/api/examples/637e5678-30b1-45fa-acc4-877f2d636419/pdf. Return the account holder, statement period, ending balance and transactions as JSON. Include page references so I can check the values.”The agent chooses the Pulse tools and handles their inputs and job polling. With local MCP, you can provide an absolute file path in place of the URL.
For large documents or organizations that delete results on first read, see
result limits and retention.
Advanced details
Authentication and troubleshooting
Authentication and troubleshooting
PULSE_API_KEY overrides the login saved in ~/.pulse/mcp.toml. If the device key
expires, run --login again and restart the connection. Each login creates a new key;
remove unused keys from API Keys in Pulse.Custom hosted connectionsWhen adding a custom server in your client, choose Streamable HTTP and enter
this in its Server URL field:x-api-key: <key> or
Authorization: Bearer <key>.Local API-key setupTo use an API key in place of browser login, set it in your client’s environment:Codex: local API key
“Use only Pulse. List its available tools without processing documents.”
Tool inputs and job handling
Tool inputs and job handling
Supply exactly one of
config or config_id to job-starting tools. Config fields
follow the V2 SDK; unknown fields are forwarded for engine validation, so typos
return errors. For example, Tables accepts config={"format":["json"],"effort":"high"}.Hosted Parse requires a URL. Local Parse uploads files directly, up to 100 MB;
chat attachments are not local file paths.Parse, then extractParse tool arguments
get_job with include_result=false, then reuse the parse_id:Extract tool arguments
split to find pages, then pass them as
extract.config.page_range with the original parse_id.See Parse, Extract, Split,
Tables, Charts, Batch and
Pipelines for full config and result shapes.Asynchronous jobsTools submit asynchronously and poll for up to 15 seconds by default. Set
async_=true to return immediately; parse_batch always does. Continue with
get_job(job_id=...). Completed output is under result.
The polling budget does not cap submission or individual HTTP request time.Pipeline manifests expose step IDs while processing. Read each completed step’s
output with get_job using its own ID.Polling and result-read errors retain the job ID and any last known status, with
isError=true on the MCP call. When poll_with is get_job, retry that ID.
Permanent errors, such as expired results, omit the retry hint.Result limits and retention
Result limits and retention
Full V2 results, including Markdown and elements, are returned inline. They can
exceed a client’s size limit; there is no automatic download-link fallback.
Use a smaller
config.page_range, or retrieve and save large results through the SDK/API.Upgrading from pulse-mcp 0.1
Upgrading from pulse-mcp 0.1
Reconnect to refresh tools, and update workflows:
Use V2
parse_id values and config/config_id. V1 job IDs and saved pipelines
are incompatible; old parameter aliases and generate_schema are removed.
Pin pulse-mcp==0.1.4 locally to retain V1 tools.