Skip to main content
Firma provides an MCP server that lets AI assistants interact with the Firma API directly. You can manage templates, create signing requests, configure workspaces, and more through natural language conversations.

What is MCP?

The Model Context Protocol (MCP) is an open standard that connects AI assistants to external tools and data sources. Instead of writing API calls manually, you describe what you need in plain language, and the AI assistant uses the Firma MCP server to execute the right API calls on your behalf.

Supported clients

The Firma MCP server works with any client that supports the MCP Streamable HTTP transport:
  • Claude — Claude Code, Claude Desktop, Claude.ai
  • ChatGPT — Via Developer Mode connectors
  • Cursor — Native MCP support
  • GitHub Copilot — VS Code 1.101+
  • OpenAI Codex — Via CLI or config
  • Other MCP clients — Any client implementing the Streamable HTTP transport

Authentication

The MCP server authenticates via OAuth 2.1 with PKCE using your Firma account credentials. When you connect through any supported client, the OAuth flow is handled automatically — you’ll be redirected to sign in with your Firma account and authorize access.

Setup

Add the Firma MCP server via the CLI:
claude mcp add firma-api --type url --url https://mcp.firma.dev/mcp
Or add it to your Claude Code configuration (.claude/settings.json):
{
  "mcpServers": {
    "firma-api": {
      "type": "url",
      "url": "https://mcp.firma.dev/mcp"
    }
  }
}
You’ll be prompted to sign in with your Firma account on first use.

Available tools

Once connected, the AI assistant can use the following tools. There are 84 tools organized across 10 categories.
The core workflow tools for creating and managing signing requests.
ToolDescription
signing_requests_listList signing requests with filtering and pagination
signing_requests_createCreate a new signing request from a document or template
signing_requests_create_and_sendCreate and send a signing request in one step
signing_requests_getGet details of a specific signing request
signing_requests_partial_updateUpdate specific fields on a signing request
signing_requests_updateFull update of a signing request
signing_requests_sendSend a draft signing request to recipients
signing_requests_cancelCancel an active signing request
signing_requests_resendResend to specific recipients
signing_requests_users_listList recipients on a signing request
signing_requests_fields_listList fields on a signing request
signing_requests_reminders_listList reminders for a signing request
signing_requests_audit_listGet the audit trail for a signing request

Workspace selection

After signing in, you start without a workspace selected. You can either:
  • Ask the assistant to select a workspace — e.g., “Switch to the Marketing workspace”
  • Let the assistant pass a workspace ID per request — the assistant can include a workspace_id parameter on individual tool calls
The assistant will typically list your workspaces first and ask which one to use.

Example conversations

List all signing requests

“Show me all pending signing requests in my Marketing workspace”
The assistant will select the workspace, call the signing requests list endpoint, and present the results.

Create and send a signing request

“Create a signing request from the NDA template and send it to jane@example.com
The assistant will find the template, duplicate it into a signing request, set the recipient, and send it.

Check signing status

“What’s the status of the signing request I sent to John last week?”
The assistant will search recent signing requests and return the current status, including which recipients have signed.

Rate limits

MCP requests are subject to the same rate limits as direct API calls. Each tool call maps to one API request.

Troubleshooting

Tools not loading

If your client shows the server as connected but no tools appear:
  • Claude.ai / ChatGPT: Try disconnecting and reconnecting the connector from Settings
  • Cursor / VS Code: Restart the application after adding the configuration
  • Claude Desktop: Restart the app — changes to claude_desktop_config.json require a restart

Workspace not found

Make sure you’ve selected a workspace after connecting. Use “List my workspaces” to see available options.

Authentication errors

Try signing out and back in to refresh your session. If the issue persists, disconnect and reconnect the server in your client’s settings.