Prerequisites
- A Firma account with an API key
- Cursor installed with MCP support
- At least one Firma template with signing fields configured
Firma uses the raw API key as the
Authorization header value — do not prefix it with Bearer. This differs from many other APIs.Connect the Firma Data MCP server
The Data MCP server gives Cursor direct access to the Firma API. Once connected, you can manage signing requests, templates, webhooks, and workspaces through natural language in Composer or Chat.One-click install
Use the one-click install button on the Firma MCP integration page to add the server to Cursor automatically.Manual setup
Add the following to your project-level config at.cursor/mcp.json, or to your user-level config at ~/.cursor/mcp.json:
- “Show me all pending signing requests in my workspace”
- “Create a signing request from the NDA template and send it to jane@example.com”
- “Set up a webhook for signing_request.completed events”
Connect the Firma Docs MCP server
The Docs MCP server gives Cursor’s AI access to Firma’s documentation. This is what enables Composer and Chat to generate accurate Firma integration code, because it can look up endpoints, request formats, and authentication details in real time instead of guessing. Add it alongside the Data server in your.cursor/mcp.json. The two entries are distinct MCP servers — firma-api for runtime actions against the Firma API, and firma-docs for documentation lookups:
When to use which server: The Data MCP server (
firma-api) is for doing things (sending signing requests, managing templates). The Docs MCP server (firma-docs) is for building things (generating integration code with accurate API details). Most developers will want both connected.Generate a Firma integration with Composer
With both MCP servers connected, Cursor’s Composer can generate working Firma integration code for your project. Here are example prompts that work well:Backend endpoint for sending signing requests
POST /signing-requests/create-and-send), and generate a complete API route using the right base URL, headers, and request body format.
Embedded signing in a React app
Webhook handler for completed signatures
Full integration from scratch
Example: Next.js API route
Here’s what Composer typically generates for a Next.js signing request endpoint. You can use this as a reference or starting point:The
create-and-send endpoint creates the signing request and sends it to recipients in a single call. If you need to review or modify the request before sending, use POST /signing-requests to create a draft, then POST /signing-requests/{id}/send separately..env.local (or your project’s equivalent):
Embedded signing
For apps where signers complete documents directly in your UI, Firma provides an embeddable signing experience. Thecreate-and-send response includes a first_signer.id (the signing_request_user_id) and a ready-made first_signer.signing_link. Load the signer URL in an iframe:
Tips for working with Cursor + Firma
- Be specific in prompts. “Use the Firma create-and-send endpoint” gets better results than “add e-signatures.” The Docs MCP server helps, but specific prompts still produce more accurate code.
- Reference the docs explicitly. Starting a prompt with “Using the Firma docs” or “Check the Firma API documentation” tells Composer to query the Docs MCP server before generating code.
- Use Agent mode for multi-file changes. If you’re adding signing to an existing app, Composer’s Agent mode can create the API route, update the frontend, and add environment variables across files in one pass.
- Test with the Data MCP server. After generating your integration code, you can use the Data MCP server to send test signing requests directly from Cursor’s chat, without leaving the editor.
Next steps
- API authentication — API keys and workspace scoping
- Webhooks guide — event types, payloads, and signature verification
- Embedded signing — in-app signing experience
- Creating workspaces — multi-tenant setups for SaaS apps
- MCP integration — full MCP server reference with all 84 tools
- Complete setup guide — end-to-end Firma integration walkthrough
- API reference — full endpoint documentation