Skip to content

Connect Adobe Acrobat Sign to Claude: Control Web Forms and Templates

Learn how to connect Adobe Acrobat Sign to Claude using Truto's managed MCP server. This guide covers tool generation, configuration, and real-world e-signature workflows.

Riya Sethi Riya Sethi · · 10 min read
Connect Adobe Acrobat Sign to Claude: Control Web Forms and Templates

If you need to connect Adobe Acrobat Sign to Claude to automate e-signature workflows, manage web forms, extract audit trails, or oversee user permissions, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's function calling capabilities and Adobe Acrobat Sign's REST APIs. You can either build and maintain this infrastructure yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL.

If your team uses ChatGPT, check out our guide on connecting Adobe Acrobat Sign to ChatGPT or explore our broader architectural overview on connecting Adobe Acrobat Sign to AI Agents.

Giving a Large Language Model (LLM) read and write access to an enterprise compliance tool like Adobe Acrobat Sign is a serious engineering challenge. You have to handle strict OAuth 2.0 token lifecycles, map deeply nested JSON schemas (like participant sets) to MCP tool definitions, and manage multi-step state transitions. Every time Adobe deprecates a V5 resource in favor of V6, you have to update your server code, redeploy, and test the integration.

This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Adobe Acrobat Sign, connect it natively to Claude Desktop, and execute complex document workflows using natural language.

The Engineering Reality of the Adobe Acrobat Sign API

A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, the reality of implementing it against specialized enterprise APIs is painful. Adobe Acrobat Sign is built to handle strict legal compliance, multi-party signature routing, and complex identity verification. Its API reflects that complexity.

If you decide to build a custom Adobe Acrobat Sign MCP server, here are the specific integration challenges you will face:

Transient Documents and Upload Lifecycles You do not simply "create an agreement" with a single API call in Adobe Acrobat Sign. The API enforces a strict upload lifecycle. First, you must upload the raw file to create a transientDocument. This returns a transientDocumentId that is only valid for seven days. You then take that ID and pass it into the /agreements endpoint. If an LLM tries to hallucinate a direct file upload into an agreement payload, the request will fail. Your MCP server must abstract this multi-step state machine or provide explicit, sequential tools that guide the agent through the process.

Binary File Streams for Audit Trails When you request a signed agreement or an audit trail (e.g., GET /agreements/{agreementId}/auditTrail), Adobe Acrobat Sign does not return a neat JSON object. It returns a raw PDF binary stream. LLMs cannot natively ingest binary streams through standard text-based tool calls. You have to build an intermediary layer in your MCP server that captures the binary stream, uploads it to a secure temporary bucket, and returns a signed download URL to the LLM, or converts it to base64 if the client supports it.

Complex Participant Routing Logic Routing a document requires constructing complex participantSetsInfo arrays. You cannot just pass an email address. You must define the role (SIGNER, APPROVER, DELEGATE), the order (for sequential routing), and the memberInfos array. If an LLM formats this array incorrectly, or attempts to assign incompatible authentication methods to a participant, the API returns a cryptic 400 error. The tool schema exposed to Claude must tightly constrain these inputs using strict JSON Schema definitions.

Truto's Managed MCP Architecture

Truto's MCP servers turn any connected integration into an MCP-compatible tool server dynamically. When a customer connects their Adobe Acrobat Sign account via OAuth, Truto automatically generates a set of MCP tools from the integration's resource definitions and schema documentation.

Rather than hand-coding tool definitions, Truto derives them dynamically. A tool only appears in the MCP server if it has a corresponding documentation entry - acting as a quality gate to ensure only well-documented endpoints are exposed to the AI agent. Each server is scoped to a single integrated account, meaning the server URL contains a cryptographic token that securely encodes which account to use and what tools to expose.

A crucial architectural note on rate limits: Truto does not retry, throttle, or apply backoff on rate limit errors automatically. When the upstream Adobe Acrobat Sign API returns an HTTP 429 (Too Many Requests), Truto passes that error directly back to the caller. Truto normalizes the upstream rate limit information into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF specification. The caller (the AI agent framework or the client orchestrator) is strictly responsible for interpreting these headers and executing its own retry and exponential backoff logic.

Generating the Adobe Acrobat Sign MCP Server

You can generate a secure MCP server URL for Adobe Acrobat Sign through Truto using either the visual dashboard or the API. Both methods result in a self-contained JSON-RPC 2.0 endpoint.

Method 1: Via the Truto UI

For teams managing integrations manually or testing prompt workflows, the UI provides a fast path to generating a server.

  1. Log into your Truto environment and navigate to the Integrated Accounts page.
  2. Select your connected Adobe Acrobat Sign account.
  3. Click on the MCP Servers tab.
  4. Click Create MCP Server.
  5. Configure your server settings (assign a name, set method filters like read or write, or set an expiration date).
  6. Click Save and immediately copy the generated MCP server URL (e.g., https://api.truto.one/mcp/a1b2c3d4...).

Method 2: Via the Truto API

For production deployments, you will generate MCP servers programmatically. This validates that the integration has tools available, generates a secure token, stores it in Truto's distributed key-value store, and returns a ready-to-use URL.

Make an authenticated POST request to the /integrated-account/:id/mcp endpoint:

curl -X POST https://api.truto.one/admin/integrated-accounts/{integrated_account_id}/mcp \
  -H "Authorization: Bearer YOUR_TRUTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Legal Ops AI Agent",
    "config": {
      "methods": ["read", "write"],
      "tags": ["agreements", "users"]
    },
    "expires_at": "2026-12-31T23:59:59Z"
  }'

The API responds with the server configuration and the cryptographic URL:

{
  "id": "mcp_srv_8f7d6a5b",
  "name": "Legal Ops AI Agent",
  "config": {
    "methods": ["read", "write"],
    "tags": ["agreements", "users"]
  },
  "expires_at": "2026-12-31T23:59:59Z",
  "url": "https://api.truto.one/mcp/f8e7d6c5b4a3..."
}

This URL handles all authentication and protocol requirements. No additional headers are required unless you explicitly enable require_api_token_auth.

Connecting the MCP Server to Claude

Once you have your Truto MCP URL, you must register it with your Claude environment. Claude communicates with this endpoint using JSON-RPC 2.0 messages over HTTP POST.

Method A: Via the Claude UI

If you are using the consumer-facing Claude interface or Claude Desktop:

  1. Open your application settings.
  2. Navigate to Settings -> Integrations -> Add MCP Server (or Connectors -> Add depending on your tier).
  3. Enter a recognizable name like "Adobe Acrobat Sign (Truto)".
  4. Paste the full URL (https://api.truto.one/mcp/...) into the Server URL field.
  5. Click Add or Save.

Claude will immediately send an initialize request to the server, discover the available tools, and make them available in the chat context.

Method B: Via Manual Config File (JSON)

For enterprise deployments, custom AI agents, or developers running Claude Desktop locally, you will configure the connection via a JSON file using the Server-Sent Events (SSE) transport.

Locate your claude_desktop_config.json file (typically found at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows).

Add the Truto endpoint using the official MCP SSE command line utility:

{
  "mcpServers": {
    "adobe_acrobat_sign": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "https://api.truto.one/mcp/f8e7d6c5b4a3..."
      ]
    }
  }
}

Restart Claude Desktop. The agent will read the configuration, execute the tools/list protocol method, and dynamically generate the context window based on the schemas returned by Truto.

Core Adobe Acrobat Sign Tools for AI Agents

Truto automatically maps Adobe Acrobat Sign resources into strictly typed snake_case tools. Here are the highest-leverage operations for automating e-signature workflows.

create_a_adobe_acrobat_sign_transient_document

This is the prerequisite tool for generating new agreements. It uploads a document and returns a transient document ID valid for 7 days. Because LLMs cannot easily send raw files, you typically design the workflow so the agent receives base64 encoded text or directs a downstream service to handle the physical upload, passing the resulting ID back to the agent.

"Upload the generated NDA draft as a transient document in Adobe Acrobat Sign and return the document ID so we can prepare it for signature."

create_a_adobe_acrobat_sign_agreement

Creates a new agreement and sends it out for signatures. This tool requires a complex JSON body including the state, signatureType, participantSetsInfo, name, and the fileInfos (which references the transient document ID).

"Draft a new agreement using transient document ID 3AAABLblq... Send it to John Doe (john@example.com) as the sole signer, set the signature type to ESIGN, and put the agreement state in OUT_FOR_SIGNATURE."

adobe_acrobat_sign_agreements_get_audit_trail

Retrieves the official audit trail of a specific agreement. Because this endpoint returns a binary PDF file stream, your orchestration layer must be prepared to handle a non-JSON response, typically by routing the binary data to a storage bucket and returning a reference link to the LLM.

"Fetch the complete audit trail for the executed vendor contract (agreement ID: CBJCHBCAABA...)."

adobe_acrobat_sign_agreements_get_combined_document

Retrieves a single combined PDF document containing all pages associated with an agreement. Like the audit trail, this returns a binary file. It is highly useful for archival tasks where the agent moves finalized documents from Acrobat Sign into a system of record like SharePoint or Google Drive.

"Download the combined, fully signed PDF for the employment offer (agreement ID: 3CBJCHB...) so I can archive it in the employee's file."

list_all_adobe_acrobat_sign_widgets

Retrieves the web forms (widgets) available to the user. Widgets allow you to embed signable forms on websites. This tool is useful for auditing active forms or verifying that a specific intake form is currently active.

"List all active Adobe Acrobat Sign web forms in our account and check if the 'New Customer Intake' widget is currently active."

update_a_adobe_acrobat_sign_user_by_id

Updates an existing user's profile and administrative status within the Acrobat Sign account. Requires fields like accountType, isAccountAdmin, email, and status. Useful for IT agents managing automated offboarding and role changes.

"Update Sarah's Adobe Acrobat Sign user profile (ID: x9f8e7...) - revoke her account admin privileges and set her status to INACTIVE."

For a complete inventory of available endpoints, parameter requirements, and schema types, visit the Adobe Acrobat Sign integration page.

Workflows in Action

Connecting tools to an LLM is only useful if the agent can chain them together to solve domain-specific problems. Here is how Claude handles complex tasks using the Truto MCP server.

Automating HR Offer Letters

When a recruiting team decides to extend an offer, the AI agent must handle document staging, participant routing, and signature tracking without dropping the context.

"Take this finalized offer letter text, create a transient document in Adobe Acrobat Sign, and then send it as an agreement to candidate@example.com. Set the agreement name to 'Software Engineer Offer - Q3'."

Step-by-step execution:

  1. Claude interprets the text and determines it needs to be uploaded first. It calls create_a_adobe_acrobat_sign_transient_document to stage the text (converted via a helper function) into Acrobat Sign.
  2. The API returns a transientDocumentId.
  3. Claude immediately constructs the complex payload for create_a_adobe_acrobat_sign_agreement, passing the transientDocumentId into the fileInfos array, setting participantSetsInfo to the candidate's email, and initiating the send.
  4. Claude informs the user that the offer has been dispatched and provides the agreement ID for tracking.
sequenceDiagram
    participant User as User
    participant Claude as Claude Desktop
    participant Truto as Truto MCP Server
    participant Adobe as Adobe Acrobat Sign

    User->>Claude: "Send offer letter to candidate..."
    Claude->>Truto: Call tool: create_a_adobe_acrobat_sign_transient_document
    Truto->>Adobe: POST /transientDocuments
    Adobe-->>Truto: { transientDocumentId: "3AAABLbl..." }
    Truto-->>Claude: Return transient document ID
    Claude->>Truto: Call tool: create_a_adobe_acrobat_sign_agreement
    Truto->>Adobe: POST /agreements (with ID & participant payload)
    Adobe-->>Truto: { agreementId: "CBJCHB..." }
    Truto-->>Claude: Return agreement ID
    Claude-->>User: "Offer letter sent successfully."

Legal operations teams spend hours manually pulling audit trails to prove contract validity during due diligence. An AI agent can automate this mass extraction.

"Find all agreements in the system sent in the last 30 days. For any agreement that is fully signed, retrieve the official audit trail document and confirm its status."

Step-by-step execution:

  1. Claude calls list_all_adobe_acrobat_sign_agreements to pull the recent pipeline.
  2. It filters the returned JSON array to find records where the state is SIGNED or VAULTED.
  3. For each finalized agreement, Claude calls adobe_acrobat_sign_agreements_get_audit_trail, passing the agreement_id.
  4. The MCP server handles the request, retrieves the binary PDF streams (or directs them to a storage layer), and returns the successful references to the agent.
  5. Claude compiles a summary report of all finalized contracts and their corresponding audit trail references for the legal team.

Security and Access Control

Giving an LLM direct access to legally binding document workflows requires strict security boundaries. Truto provides several mechanisms to lock down the MCP server at creation time:

  • Method filtering: Restrict the server to safe operations by setting config.methods to ["read"]. This allows the agent to call list and get operations (like checking agreement status) but completely blocks create, update, and delete operations.
  • Tag filtering: Limit the scope of the server by passing specific resource tags. For example, setting tags: ["agreements"] will block the agent from accessing or modifying user directory endpoints.
  • API Token Authentication: By default, possessing the MCP URL grants access. By setting require_api_token_auth: true, the client must also pass a valid Truto API token in the Authorization header, preventing unauthorized lateral movement if the URL leaks.
  • Time-To-Live (TTL): Set an expires_at ISO datetime when creating the server. Once the timestamp passes, Truto's cleanup alarms physically delete the token from the distributed KV store, instantly revoking access.

Connect Acrobat Sign to Claude Faster

Building a custom integration for Adobe Acrobat Sign forces your team to navigate transient document lifecycles, binary streams, and complex participant arrays. Maintaining that codebase as the API evolves drains engineering cycles. By leveraging Truto's managed MCP servers, you offload the infrastructure, security, and schema normalization entirely. Your AI agents get strictly typed, documentation-driven tools instantly, allowing your team to focus on building intelligent workflows rather than wrangling REST endpoints.

FAQ

How does Truto handle Adobe Acrobat Sign rate limits?
Truto passes upstream 429 Too Many Requests errors directly back to the caller and normalizes the rate limit headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset). The AI agent or client orchestrator is responsible for implementing retry and backoff logic.
How do AI agents handle transient documents in Adobe Acrobat Sign?
Agents must use a multi-step workflow. First, they call the create_a_adobe_acrobat_sign_transient_document tool to upload data and receive a temporary ID. They then pass this ID into the fileInfos array when calling create_a_adobe_acrobat_sign_agreement.
Can Claude download audit trails directly from Adobe Acrobat Sign?
The audit trail endpoint returns a binary PDF stream. Because LLMs cannot natively process raw binary streams, the orchestration layer must handle the binary data (e.g., uploading to a storage bucket) and return a reference link to Claude.
How do I restrict the MCP server to read-only access?
When creating the MCP server via the Truto UI or API, set the config.methods array to ["read"]. This ensures the LLM can only execute get and list operations, blocking any destructive actions.

More from our Blog