> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.sign.plus/llms.txt
> Use this file to discover all available pages before exploring further.

# Sign.Plus MCP Server

> Send documents for signature, manage envelopes, and automate eSignature workflows from any MCP-compatible AI assistant

# Sign.Plus MCP Server

The Sign.Plus MCP Server lets AI assistants create envelopes, send documents for signature, manage templates, track signing status, and configure webhooks through the [Model Context Protocol (MCP)](https://modelcontextprotocol.io) — an open standard for connecting AI tools to external services.

<Warning>
  **Beta** — The Sign.Plus MCP Server is currently in beta. Features, tool schemas, and authentication flows may change. Report issues to [support@alohi.com](mailto:support@alohi.com).
</Warning>

<Info>
  **API plan required** — Access to the Sign.Plus API requires a [Sign.Plus API plan](https://www.sign.plus/pricing). Non-API plans have access to sandbox but can't send signature requests.
</Info>

## MCP server URL

```text theme={null}
https://mcp.sign.plus/mcp
```

***

## What you can do

The Sign.Plus MCP Server enables AI assistants to interact with your Sign.Plus account using natural language. Here's what's supported:

| Capability               | Description                                                                    |
| ------------------------ | ------------------------------------------------------------------------------ |
| **Create envelopes**     | Create signature request envelopes with documents and recipients               |
| **Send for signature**   | Send envelopes to one or more signers with configurable signing flows          |
| **Track signing status** | Monitor envelope progress and check which recipients have signed               |
| **Place annotations**    | Add signature, text, date, initials, and checkbox fields at specific positions |
| **Manage templates**     | List, create, and use reusable document templates                              |
| **Download signed docs** | Download completed signed documents and certificates of completion             |
| **Manage webhooks**      | Configure webhooks for real-time signing event notifications                   |
| **Build signing flows**  | Define multi-step signing orders with sequential or parallel recipients        |

***

## Prerequisites

Before connecting, make sure you have:

1. An active **[Sign.Plus API plan](https://www.sign.plus/api/pricing)** or an active **Sign.Plus Sandbox**
2. A **Personal Access Token (PAT)** or **OAuth 2.0 credentials** — [How to create a PAT](https://help.alohi.com/hc/en-us/articles/15998235769244)
3. At least one document or template to work with

***

## Authentication

### Personal Access Tokens (PAT)

PATs provide secure access to the Sign.Plus API. Create them from your Sign.Plus dashboard:

<Steps>
  <Step title="Open Integrations">
    Log in to your [Sign.Plus account](https://app.sign.plus) and go to **Settings → Integrations**.
  </Step>

  <Step title="Create a token">
    In the **API** section, locate the option to create a new Personal Access Token.
  </Step>

  <Step title="Select scopes">
    Choose the permission scopes for your token based on your use case.
  </Step>

  <Step title="Set expiration and save">
    Set an expiration date (90-day rotation recommended), generate the token, and store it securely — it won't be shown again.
  </Step>
</Steps>

#### Available scopes

| Scope           | Access                                                                 |
| --------------- | ---------------------------------------------------------------------- |
| `sign:all:read` | Read-only access to all eSignature operations (GET endpoints)          |
| `sign:all:edit` | Full access to all eSignature operations (POST, PUT, DELETE endpoints) |

<Tip>
  Select both scopes for full MCP functionality. Use `sign:all:read` alone if you only need to view envelopes, templates, and signing status without creating or sending documents.
</Tip>

### OAuth 2.0

For production integrations, Sign.Plus supports the standard OAuth 2.0 authorization code flow. See the [authentication documentation](https://apidoc.sign.plus/concepts/authentication) for the full setup guide.

***

## Connecting to an MCP client

The Sign.Plus MCP Server works with any client that supports the Model Context Protocol. Below are setup instructions for common environments.

### Generic MCP configuration

Point your MCP client to the Sign.Plus server URL and pass your authentication token:

```json theme={null}
{
  "mcpServers": {
    "signplus": {
      "type": "url",
      "url": "https://mcp.sign.plus/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_PERSONAL_ACCESS_TOKEN"
      }
    }
  }
}
```

### Using with the Anthropic API (MCP Connector)

```python theme={null}
import anthropic

client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    betas=["mcp-client-2025-11-20"],
    mcp_servers=[
        {
            "type": "url",
            "url": "https://mcp.sign.plus/mcp",
            "name": "signplus",
            "authorization_token": "YOUR_PERSONAL_ACCESS_TOKEN",
        }
    ],
    messages=[
        {"role": "user", "content": "Send the NDA template to john@example.com for signature"}
    ],
)
```

### Using with OpenAI Agents SDK

```python theme={null}
from openai_agents import Agent, MCPServerSse

signplus_server = MCPServerSse(
    url="https://mcp.sign.plus/mcp",
    headers={"Authorization": "Bearer YOUR_PERSONAL_ACCESS_TOKEN"},
)

agent = Agent(
    name="eSignature Assistant",
    instructions="Help the user send documents for signature and track signing progress.",
    mcp_servers=[signplus_server],
)
```

<Note>
  Replace `YOUR_PERSONAL_ACCESS_TOKEN` with the PAT you created in the [Authentication](#authentication) section. If you're using OAuth, pass the access token obtained from the OAuth flow.
</Note>

***

## Available tools

The Sign.Plus MCP Server exposes the following tools to connected AI assistants.

### Envelopes

| Tool                            | Description                           |
| ------------------------------- | ------------------------------------- |
| `list-envelopes`                | List envelopes with optional filters  |
| `create-envelope`               | Create a new envelope                 |
| `get-envelope`                  | Get details of a specific envelope    |
| `delete-envelope`               | Delete an envelope                    |
| `duplicate-envelope`            | Duplicate an envelope                 |
| `create-envelope-from-template` | Create a new envelope from a template |
| `send-envelope`                 | Send a draft envelope for signature   |
| `rename-envelope`               | Rename an envelope                    |
| `set-envelope-comment`          | Set envelope comment                  |
| `set-envelope-notification`     | Set envelope notification settings    |
| `set-envelope-expiration-date`  | Set envelope expiration date          |
| `set-envelope-legality-level`   | Set envelope legality level           |
| `void-envelope`                 | Void an in-progress envelope          |
| `set-envelope-dynamic-fields`   | Set dynamic fields for signers        |

### Documents

| Tool                                | Description                                 |
| ----------------------------------- | ------------------------------------------- |
| `add-envelope-document`             | Upload a document to an envelope            |
| `get-envelope-document`             | Get a specific envelope document            |
| `list-envelope-documents`           | List all documents in an envelope           |
| `download-envelope-documents`       | Download all signed envelope documents      |
| `download-envelope-signed-document` | Download one signed envelope document       |
| `download-envelope-coc`             | Download envelope certificate of completion |
| `download-envelope-attachment`      | Download uploaded envelope attachment file  |

### Annotations

| Tool                                 | Description                                |
| ------------------------------------ | ------------------------------------------ |
| `list-envelope-annotations`          | List all envelope annotations              |
| `list-envelope-document-annotations` | List annotations for one envelope document |
| `add-envelope-annotation`            | Add an annotation to an envelope document  |
| `delete-envelope-annotation`         | Delete an envelope annotation              |

### Signing Steps

| Tool                         | Description                                             |
| ---------------------------- | ------------------------------------------------------- |
| `add-envelope-signing-steps` | Add recipients and define signing order for an envelope |

### Attachments

| Tool                                    | Description                                         |
| --------------------------------------- | --------------------------------------------------- |
| `set-envelope-attachments-settings`     | Configure required/optional attachments for signers |
| `set-envelope-attachments-placeholders` | Place attachment placeholders in envelope documents |

### Templates

| Tool                                    | Description                                         |
| --------------------------------------- | --------------------------------------------------- |
| `list-templates`                        | List templates                                      |
| `create-template`                       | Create a template                                   |
| `get-template`                          | Get template details                                |
| `delete-template`                       | Delete a template                                   |
| `duplicate-template`                    | Duplicate a template                                |
| `rename-template`                       | Rename a template                                   |
| `set-template-comment`                  | Set template comment                                |
| `set-template-notification`             | Set template notification settings                  |
| `add-template-document`                 | Add a document to a template                        |
| `get-template-document`                 | Get a specific template document                    |
| `list-template-documents`               | List all documents in a template                    |
| `list-template-annotations`             | List all template annotations                       |
| `list-template-document-annotations`    | List annotations for one template document          |
| `add-template-annotation`               | Add an annotation to a template document            |
| `delete-template-annotation`            | Delete a template annotation                        |
| `add-template-signing-steps`            | Add recipients and signing order to a template      |
| `set-template-attachments-settings`     | Configure template attachment requirements          |
| `set-template-attachments-placeholders` | Place attachment placeholders in template documents |

### Webhooks

| Tool             | Description                       |
| ---------------- | --------------------------------- |
| `list-webhooks`  | List configured webhook endpoints |
| `create-webhook` | Register a webhook endpoint       |
| `delete-webhook` | Remove a webhook endpoint         |

***

## Usage examples

Once connected, you can interact with Sign.Plus through natural language. Here are some common workflows.

### Send a document for signature

> **You:** Send the attached contract to [sarah@example.com](mailto:sarah@example.com) for signature <br />
>
> **Assistant:** I've created an envelope called "Contract", uploaded the document, added Sarah as a signer, placed a signature field on page 2, and sent it. Sarah will receive an email with a signing link. The envelope ID is `abc123def`.

### Create from a template

> **You:** Use the NDA template and send it to [j.doe@example.com](mailto:j.doe@example.com) <br />
>
> **Assistant:** I've created a new envelope from your "NDA" template and sent it to John Doe at [j.doe@example.com](mailto:j.doe@example.com). The envelope is now in progress with a daily reminder configured.

### Check signing status

> **You:** Has Sarah signed the contract yet? <br />
>
> **Assistant:** The envelope "Contract" is still in progress. Sarah received the signing request at 2:15 PM today but hasn't signed yet. The next reminder is scheduled for tomorrow.

### List your templates

> **You:** What templates do I have? <br />
>
> **Assistant:** You have 11 templates:
>
> 1. Letter-of-Intent-to-Sue — 2 pages, 1 signer <br />
> 2. Technical SEO Audit Report — 3 pages, 1 signer <br />
> 3. UBS Factsheet (multi-signer) — 3 pages, 4 recipients across 3 signing steps <br />
>    ...and 8 more.

### Download signed documents

> **You:** Download the signed copy of the NDA  <br />
>
> **Assistant:** Here's the signed NDA document. All parties have completed signing and the certificate of completion is also available.

***

## API reference

The MCP Server is built on the [Sign.Plus REST API v2](https://apidoc.sign.plus). For detailed endpoint documentation, schemas, and error codes:

<CardGroup cols={2}>
  <Card title="API Documentation" icon="code" href="https://apidoc.sign.plus">
    Full endpoint reference with request/response examples
  </Card>

  <Card title="Quickstart Guide" icon="rocket" href="https://apidoc.sign.plus/get-started/quickstart">
    Get up and running with the Sign.Plus API in minutes
  </Card>

  <Card title="Envelope Concepts" icon="envelope" href="https://apidoc.sign.plus/concepts/envelope">
    Understand envelopes, documents, annotations, and signing flows
  </Card>

  <Card title="Help Center" icon="life-ring" href="https://help.alohi.com/hc/en-us">
    FAQs, troubleshooting, and how-to articles
  </Card>
</CardGroup>

### SDKs

| Language   | Package                                                                |
| ---------- | ---------------------------------------------------------------------- |
| Python     | [`signplus`](https://pypi.org/project/signplus/)                       |
| TypeScript | [`@alohi/signplus`](https://www.npmjs.com/package/@alohi/signplus)     |
| Go         | [`signplus`](https://pkg.go.dev/github.com/alohi/signplus-go)          |
| Java       | [`signplus`](https://central.sonatype.com/artifact/com.alohi/signplus) |
| C#         | [`Signplus`](https://www.nuget.org/packages/Signplus)                  |
| PHP        | [`alohi/signplus`](https://packagist.org/packages/alohi/signplus)      |

***

## Security and compliance

Sign.Plus is built with enterprise-grade security and meets strict regulatory requirements:

* **Encryption:** AES-256 at rest, TLS 1.3+ in transit, unique encryption keys per user
* **Certifications:** ISO 27001, SOC 2 Type 2, HIPAA (with BAA), PCI DSS
* **eSignature compliance:** ESIGN Act, eIDAS (SES and QES), ZertES
* **Privacy:** GDPR, CCPA
* **Access control:** SSO, 2FA, role-based permissions, fine-grained PAT scopes
* **Audit trails:** Tamper-proof certificate of completion for every signed document

For qualified electronic signatures (QES), see [Sign.Plus QES](https://www.sign.plus/qes).

***

## Limitations

<Warning>
  **Current beta limitations**
</Warning>

* **API plan required** — The Sign.Plus API is only available on API-enabled plans. A free sandbox is available for evaluation and testing on all plans.
* **Sandbox vs production** — Create envelopes with `"sandbox": true` for testing. Sandbox envelopes don't send real emails and aren't billed. Some PATs may be restricted to sandbox-only mode — contact [support@alohi.com](mailto:support@alohi.com) to enable production envelope creation if needed.
* **No account creation via API** — New user accounts must be created through the [Sign.Plus web dashboard](https://app.sign.plus).
* **Annotation coordinates** — Annotation placement uses percentage-based coordinates (0–100) relative to page dimensions. The y-axis is measured from the bottom of the page.
* **Rate limits** — API requests are rate-limited. See the [API documentation](https://apidoc.sign.plus) for current thresholds.
* **File formats** — Supported document formats include PDF, DOCX, PNG, XLS, and more. Maximum file sizes apply per the API documentation.

***

## Troubleshooting

### "Invalid token" or 401 Unauthorized

Your PAT may have expired or lacks the required scopes. Generate a new token from **Settings → Integrations** in your Sign.Plus dashboard. Ensure the token includes both `sign:all:read` and `sign:all:edit` scopes.

### "Non-sandbox envelopes are not allowed"

Your PAT is restricted to sandbox mode. Sandbox envelopes are created for testing only and do not send real emails. Contact [support@alohi.com](mailto:support@alohi.com) to enable production envelope creation, or upgrade your plan configuration.

### Annotation appears in the wrong position

Annotation coordinates are expressed as percentages (0–100) of the page dimensions. Note that the **y-axis is measured from the bottom** of the page, not the top. For a signature field at 75% from the top, set `y` to approximately `25` (i.e., `100 - 75`).

### Envelope stuck in DRAFT status

Ensure the envelope has at least one document, one recipient with the `SIGNER` role, and one required annotation (e.g., a signature field) assigned to that recipient before calling `send_envelope`.

### Getting help

* **Help Center:** [help.alohi.com](https://help.alohi.com)
* **API Support:** [support@alohi.com](mailto:support@alohi.com)
* **Enterprise Sales:** [alohi.com/contact-sales](https://www.alohi.com/contact-sales)
