Implementation GuideUpdated September 2026 · 12 min read

MCP E-Sign for AI Agents: npx -y signbee-mcp Setup Guide

Equip Claude Desktop, Cursor, and Windsurf with native e-signature capabilities via the Model Context Protocol (MCP). With two hyper-focused tools—send_document and send_document_pdf—your AI agents can draft, validate, and dispatch legally binding agreements without SDK bloat, complex OAuth ceremonies, or manual PDF coordinate mapping.

Michael Beckett
Michael Beckett

Founder, Signbee

60s

Setup Time

stdio

IPC Transport

0 Config

OTP Fallback

ESIGN

Enforceability

One-Line Execution (TL;DR)

Run npx -y signbee-mcp inside your MCP host config. Your agent immediately gains the ability to transform chat conversations into certified, legally binding agreements. No credit card or initial API key required—first-time senders authenticate seamlessly via email OTP.

The Signbee MCP Tool Schema Specification

Unlike generic legacy document signing integrations that expose dozens of fragmented endpoints and require multi-step tab coordinate placements, Signbee MCP exposes two cleanly typed tools designed specifically for LLM tool calling accuracy.

Tool NamePrimary ArgumentsReturn ObjectTarget Use Case
send_documentmarkdown, sender_name, sender_email, recipient_name, recipient_email, expires_in_daysdocument_id, signing_url, statusDynamically generated NDAs, proposals, statements of work drafted by the AI.
send_document_pdfpdf_base64 / file_path, sender_name, sender_email, recipient_name, recipient_emaildocument_id, signing_url, statusExisting pre-rendered PDF contracts, scanned leases, or export files stored on disk.

JSON-RPC Stdio Protocol Trace

When Claude or Cursor triggers send_document, the client sends this JSON-RPC payload over stdio:

Stdio JSON-RPC Request to signbee-mcp
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "send_document",
    "arguments": {
      "markdown": "# Non-Disclosure Agreement\n\n**Effective Date:** 2026-09-04\n\nBetween Acme Corp and Jane Doe...",
      "sender_name": "Acme Legal AI",
      "sender_email": "legal@acme.com",
      "recipient_name": "Jane Doe",
      "recipient_email": "jane@example.com",
      "expires_in_days": 7
    }
  }
}
Stdio JSON-RPC Response from signbee-mcp
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "Document successfully dispatched for signature!\nDocument ID: doc_7f3b891a2e\nSigning URL: https://signb.ee/sign/doc_7f3b891a2e\nAudit Hash: sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
      }
    ]
  }
}

Context Efficiency: Signbee MCP vs Alternative Implementations

In production agent architectures, every token injected into an agent's system prompt consumes valuable context window capacity and increases per-turn inference costs. When an agent exposes bloated tool suites, attention drift and tool hallucination rates rise sharply.

MetricSignbee MCP (signbee-mcp)DocuSeal MCP ServerDocuSign Community MCP
Number of Tools Exposed2 focused tools6 tools18 tools
System Prompt Token Load~340 tokens~1,150 tokens~2,850 tokens
Coordinate Mapping NeededNone (Automated Anchor Flow)Field ID referencesRequired (X/Y pixels & page)
Rounds to Signature Dispatch1 turn (zero-shot)2-3 turns4-5 turns
Zero-Config OTP SupportNative Email OTPNo (Requires DB/Admin Key)No (Requires JWT/RSA Consent)

IDE & Client Configuration Walkthrough

1. Claude Desktop Configuration

Open your Claude Desktop configuration file at:
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or
%APPDATA%\Claude\claude_desktop_config.json (Windows).

claude_desktop_config.json
{
  "mcpServers": {
    "signbee": {
      "command": "npx",
      "args": ["-y", "signbee-mcp"],
      "env": {
        "SIGNBEE_API_KEY": "your_api_key_here"
      }
    }
  }
}

2. Cursor Configuration

In Cursor, navigate to Settings → Features → MCP, click Add New MCP Server, and enter:

Cursor MCP Form Fields
Name: Signbee
Type: command
Command: npx -y signbee-mcp
Environment Variables: SIGNBEE_API_KEY=your_api_key_here

Alternatively, add a .cursor/mcp.json file directly to the root of your project workspace.

3. Windsurf Cascade Editor

Add the signbee entry into ~/.codeium/windsurf/mcp_config.json using the standard command structure. Cascade will immediately discover the tools and enable natural language document creation.

Remote Server-Sent Events (SSE) Transport for Distributed Swarms

While stdio is ideal for local desktop clients like Claude and Cursor, autonomous agent swarms running on container orchestrators (such as Kubernetes, AWS ECS, or Fly.io) require network-accessible endpoints. Signbee MCP natively supports Server-Sent Events (SSE) transport.

To host a shared Signbee MCP server across your internal engineering infrastructure:

Docker execution for Remote SSE Transport
# Run signbee-mcp as a daemonized SSE microservice on port 3001
docker run -d \
  --name signbee-mcp-cluster \
  -p 3001:3001 \
  -e SIGNBEE_API_KEY="sb_live_production_secret" \
  -e MCP_TRANSPORT="sse" \
  -e PORT="3001" \
  signbee/signbee-mcp:latest

Agents then configure their MCP client to connect over HTTP without spawning local child node processes:

claude_desktop_config.json (Remote SSE Configuration)
{
  "mcpServers": {
    "signbee-remote": {
      "url": "https://mcp.internal.acme.com/sse",
      "transport": "sse",
      "headers": {
        "X-Shared-Secret": "cluster-internal-auth-token"
      }
    }
  }
}

Zero-Config Authentication: The Email OTP Fallback

Most developer tools require leaving your editor, generating API tokens in a web dashboard, and copying secrets into dotfiles. Signbee MCP removes this roadblock through automated Email OTP verification:

  1. Agent Dispatches Without Key: If no SIGNBEE_API_KEY is detected, the MCP server contacts the Signbee API in unauthenticated developer mode.
  2. Instant Verification Code: Signbee generates a 6-digit numeric OTP and delivers it to the sender_email address within 2 seconds.
  3. Interactive Prompt: The agent pauses execution and prompts the user:
    “A verification code was sent to legal@acme.com. Please enter the 6-digit code to authorize this signature request.”
  4. Authorization & Dispatch: Once entered, the contract is officially sealed and delivered to the recipient.

Production Hardening: Signals, Timeouts & Error Recovery

When integrating MCP servers into automated production pipelines, agents must gracefully recover from edge cases. The table below outlines common failure modes and recommended agent recovery policies:

Invalid Markdown Structure or Broken Tokens

If the agent generates malformed tables or unclosed tags, the Signbee parser normalizes whitespace and repairs common markdown errors automatically. If structural parsing fails entirely, the MCP server returns code INVALID_PAYLOAD with the exact line offset, allowing the model to self-correct and retry in the next step.

Stdio Process Pipe Crashes & Signal Handling

signbee-mcp intercepts SIGINT and SIGTERM signals, flushing pending audit log buffers before clean exit. If an unexpected host crash severs standard I/O, the MCP server terminates child processes cleanly without orphaned node instances or port locking.

Rate Limiting & Backoff Strategy

Free tier requests are throttled at 60 calls per minute. When throttled, the server returns RATE_LIMITED with a Retry-After header in seconds. MCP clients should implement exponential backoff with full jitter before attempting retransmission.

Custom Python MCP Client Implementation

If you are building an autonomous multi-agent framework from scratch using Python, you can invoke signbee-mcp directly using the official Anthropic MCP SDK:

Python — Spawning and Invoking signbee-mcp over Stdio
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def run_signbee_agent():
    # Define stdio server connection
    server_params = StdioServerParameters(
        command="npx",
        args=["-y", "signbee-mcp"],
        env={"SIGNBEE_API_KEY": "your_api_key_here"}
    )

    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()

            # Discover available tools
            tools = await session.list_tools()
            print("Discovered tools:", [t.name for t in tools.tools])

            # Execute send_document tool
            result = await session.call_tool(
                "send_document",
                arguments={
                    "markdown": "# Software Development Agreement\n\nScope of work...",
                    "sender_name": "Dev Studio",
                    "sender_email": "studio@dev.io",
                    "recipient_name": "Client Executive",
                    "recipient_email": "exec@client.io",
                    "expires_in_days": 10
                }
            )
            print("Tool execution response:", result.content[0].text)

if __name__ == "__main__":
    asyncio.run(run_signbee_agent())

Frequently Asked Questions

What is the Signbee MCP server and how does it interface with AI models?

The Signbee MCP server (signbee-mcp) is a Model Context Protocol compliant process that bridges LLM reasoning engines with Signbee's digital signature infrastructure. Running locally as a lightweight stdio child process, it exposes two structured JSON tools—send_document and send_document_pdf—to any MCP host application such as Claude Desktop, Cursor, or Windsurf. When an agent determines that a contract must be executed, it invokes the tool with structured parameters, and the MCP server dispatches the request to Signbee's REST API, returning an immutable document ID and signing URLs without requiring custom HTTP networking code in the agent prompt.

Can the Signbee MCP server be used without pre-configuring an API key?

Yes. Signbee features a zero-friction developer onboarding model where an explicit API key is optional for first-time use. If the SIGNBEE_API_KEY environment variable is omitted from the MCP configuration, the server triggers an interactive Email One-Time Password (OTP) authorization flow. Upon dispatching the agreement, the sender receives a secure 6-digit numeric verification code in their email inbox, which the AI agent prompts the user to enter directly in the chat session. For automated headless pipelines or continuous integration agents, providing a permanent API key skips OTP prompts entirely.

Which developer environments and AI agents natively support signbee-mcp?

Any development environment or framework that adheres to the Anthropic Model Context Protocol specification over standard input/output (stdio) or Server-Sent Events (SSE) supports signbee-mcp out of the box. Verified first-class environments include Claude Desktop for macOS and Windows, Cursor IDE via its Features > MCP settings pane, Windsurf Editor by Codeium, and custom agentic frameworks built using the official Python or TypeScript @modelcontextprotocol/sdk packages.

How does the Signbee MCP server ensure legal validity?

Agreements dispatched through the Signbee MCP server comply fully with the United States ESIGN Act, the European Union eIDAS Regulation (SES tier), and the UK Electronic Communications Act 2000. When the MCP server dispatches dynamic Markdown content, Signbee compiles it into an immutable PDF, appends an evidentiary audit trail recording signer email verification, IP addresses, and UTC timestamps, and seals the final binary with a cryptographic SHA-256 hash. The resulting Certificate of Completion provides tamper-evident proof admissible under Federal Rules of Evidence Rule 902.

Add E-Signature Capabilities to Your AI Agents

Install the MCP server today. Free tier includes 5 documents per month with zero upfront configuration.