Cursor

Cursor has had native MCP support since late 2024. Setup is JSON-based and identical across platforms.

Prerequisites

  • Cursor 0.42 or later
  • A Transactional API token (tk_live_…)

1. Open the MCP config

Cursor stores MCP servers in ~/.cursor/mcp.json (global, used across all projects). To scope to one project, create .cursor/mcp.json at the project root.

If the file doesn't exist, create it.

2. Add the Transactional server

{
  "mcpServers": {
    "transactional": {
      "url": "https://mcp.transactional.dev",
      "headers": {
        "Authorization": "Bearer tk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

If you already have other MCP servers, just add the transactional block alongside them.

3. Reload Cursor

Settings → MCP and toggle the server off/on, or just restart Cursor entirely. You should see a green dot next to transactional and the list of five tools (list_documents, get_document, generate_pdf, list_folders, get_usage).

4. Use it

Open the chat (Cmd-L) and try:

"List my Transactional documents."

Cursor will pop a tool-call card. Approve it, see the templates, then iterate:

"Generate a PDF using the Invoice template, customer Acme Corp, amount 1280.50 €."

Cursor builds the variables object from your template's sample shape and calls generate_pdf.

Project-scoped tip

If your codebase has Transactional templates referenced by UUID, drop a .cursor/mcp.json at the project root so anyone cloning the repo gets the connector. Pull the token from an env var:

{
  "mcpServers": {
    "transactional": {
      "url": "https://mcp.transactional.dev",
      "headers": {
        "Authorization": "Bearer ${env:TRANSACTIONAL_API_TOKEN}"
      }
    }
  }
}

Add TRANSACTIONAL_API_TOKEN=... to your shell's env or a .env Cursor can pick up.

Troubleshooting

Red dot, "Failed to start" — JSON syntax error. Open the Cursor MCP panel's "Show logs" to see the parser output.

Tools list but every call hangs — Wrong URL. Should be https://mcp.transactional.dev exactly — no trailing slash, no /v1/ path.

unauthorized on every call — Token revoked or missing the Bearer prefix.

Next steps