docura-mcp
v1.0.2
Published
MCP server for the Docura e-signature platform — manage documents from Claude Code, Cursor, or any MCP-compatible AI client
Maintainers
Readme
docura-mcp
A Model Context Protocol (MCP) server for the Docura e-signature platform. Connect Claude Code, Cursor, or any MCP-compatible AI client to your Docura account and manage documents via natural language.
No build step required — npx downloads and runs it automatically.
What you can do
Once connected, ask your AI assistant things like:
- "List all my templates"
- "Send the Master Services Agreement to [email protected] and [email protected] for signing"
- "What's the status of submission abc123? Has everyone signed?"
- "Resend the invitation to the second signer on the Smith contract"
- "Void the Q3 NDA submission"
- "Get the full audit trail for submission xyz"
- "How do I download the signed PDF for the Johnson agreement?"
- "List all our registered webhooks and test the production one"
Prerequisites
- Node.js 18+
- A Docura API key (
sk_live_*) — generate one at Settings → API Keys in the dashboard
Setup
Step 1 — Get an API key
Log in to your Docura dashboard → Settings → API Keys → create a new key. It starts with sk_live_.
Step 2 — Add to Claude Code
Add the server to .claude/settings.local.json in your project:
{
"mcpServers": {
"docura": {
"command": "npx",
"args": ["-y", "docura-mcp"],
"env": {
"DOCURA_API_KEY": "sk_live_your_key_here",
"DOCURA_BASE_URL": "https://docura.cloud"
}
}
}
}Restart Claude Code. The docura server appears in the MCP panel.
Add to Cursor
Go to Cursor Settings → MCP and add the same block above.
Install globally (optional — skips the npx download delay)
npm install -g docura-mcpThen use "command": "docura-mcp" (no args) in your MCP config instead of the npx form.
Environment variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| DOCURA_API_KEY | Yes | — | API key from Docura Settings → API Keys |
| DOCURA_BASE_URL | No | http://localhost:3000 | Base URL of your Docura instance |
Set DOCURA_BASE_URL to https://docura.cloud for production, or http://localhost:3000 for local development.
Available tools
Templates
| Tool | Description |
|------|-------------|
| list_templates | List all PDF templates in your organization |
| get_template | Get a template's details, fields, and signer roles |
Submissions
| Tool | Description |
|------|-------------|
| list_submissions | List submissions, optionally filtered by status |
| get_submission | Get status and signer progress for a submission |
| create_submission | Send a template to one or more signers |
| void_submission | Cancel a pending submission |
| resend_invitation | Resend the signing email to a specific signer |
Audit & download
| Tool | Description |
|------|-------------|
| get_audit_trail | Full cryptographic event log (timestamps, IPs, hashes) |
| get_download_url | Get the URL + curl command to download a completed signed PDF |
Webhooks
| Tool | Description |
|------|-------------|
| list_webhooks | List all registered webhook endpoints |
| test_webhook | Send a test event to verify a webhook is reachable |
Tool reference
create_submission
Sends a document to signers. The signers array must contain one entry per signer role defined in the template. Use get_template first to see the available role names.
{
"templateId": "tmpl_abc123",
"signers": [
{ "email": "[email protected]", "name": "Alice", "roleName": "Client" },
{ "email": "[email protected]", "name": "Bob", "roleName": "Vendor" }
],
"message": "Please review and sign at your earliest convenience.",
"expiresAt": "2025-12-31T23:59:59Z"
}resend_invitation
Resends the signing email to a signer who hasn't signed yet. Get the signerId from get_submission.
{
"submissionId": "sub_xyz789",
"signerId": "sgn_def456"
}get_download_url
Returns a URL and curl command for downloading the completed signed PDF. The submission must have status COMPLETED.
{ "submissionId": "sub_xyz789" }Response:
{
"downloadUrl": "https://docura.cloud/api/v1/submissions/sub_xyz789/download",
"instructions": "curl -H \"Authorization: Bearer $DOCURA_API_KEY\" \"...\" -o signed.pdf"
}Development
# Clone the repo and build from source
cd mcp-server
npm install
npm run build
node dist/index.js
# Run without building (uses tsx)
npm run devTo test the server manually with MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.jsSet DOCURA_API_KEY and optionally DOCURA_BASE_URL in your shell before running.
