
A few weeks ago we published a deep dive on integrating SignNow e-signatures into a Django application. That article covered the full server-side integration — OAuth2, document uploads, Celery tasks, webhooks — everything you need for a production signing workflow.
But we kept coming back to the same thought: what if you didn't need a web app at all? What if you could upload a contract, send it for signing, and check its status without ever leaving your terminal?
That's exactly what we built. Today we're open-sourcing signnow-mcp — a Model Context Protocol server that brings airSlate SignNow's e-signature capabilities directly into Claude Code.
The Model Context Protocol (MCP) is an open standard that lets AI assistants like Claude interact with external tools and services. Think of it as a plugin system — you register an MCP server, and Claude gains new abilities.
In our case, those abilities are e-signatures.
The signnow-mcp server exposes 11 tools that cover the full document lifecycle:
| Tool | What it does |
|---|---|
upload_document | Upload a PDF to SignNow |
get_document | Get document details and signing status |
list_documents | List all documents in the account |
download_signed_document | Download a signed PDF locally |
send_signing_invite | Send a freeform e-signature invite |
send_role_based_invite | Send a role-based invite with field assignments |
cancel_invite | Cancel pending signing invites |
add_signature_field | Add a signature field to a document |
list_templates | List all document templates |
create_from_template | Create a document from a template |
register_webhook | Register a webhook for document events |
Once connected, you interact with these tools through natural language. No API calls, no curl commands, no switching between browser tabs.
Here's what it looks like when you ask Claude Code to list your SignNow documents:

Claude calls the list_documents tool behind the scenes and presents the results in a clean table. You can then follow up with natural language — "download the first one", "send document #2 to john@example.com for signing", or "what's the status of the deposit confirmation?".
client_id and client_secretecho -n "client_id:client_secret" | base64
git clone https://github.com/musictechlab/signnow-mcp.git
cd signnow-mcp
cp .env.example .env
# Edit .env with your credentials
poetry install
The quickest way:
claude mcp add signnow -- poetry -C /path/to/signnow-mcp run python -m signnow_mcp.server
Or add it manually to your MCP configuration:
{
"signnow": {
"type": "stdio",
"command": "poetry",
"args": ["-C", "/path/to/signnow-mcp", "run", "python", "-m", "signnow_mcp.server"],
"env": {
"SIGNNOW_API_BASE_URL": "https://api.signnow.com",
"SIGNNOW_BASIC_AUTH": "your-base64-encoded-credentials",
"SIGNNOW_USERNAME": "your-email@example.com",
"SIGNNOW_PASSWORD": "your-password"
}
}
}
https://api-eval.signnow.com) for testing. SignNow provides 2,000 free signature invites in sandbox mode.Once configured, just talk to Claude:
At MusicTech Lab, we use SignNow for sending contracts, NDAs, and deposit confirmations as part of our BeatBuddy onboarding flow. Our Django integration handles the automated pipeline, but there are always ad-hoc tasks — checking a document's status, resending an invite, downloading a signed copy for the records.
Before the MCP server, that meant logging into the SignNow dashboard or writing one-off API calls. Now it's a single sentence in Claude Code.
SignNow provides separate environments for testing and production:
| Environment | API URL | App URL |
|---|---|---|
| Sandbox | https://api-eval.signnow.com | https://app-eval.signnow.com |
| Production | https://api.signnow.com | https://app.signnow.com |
Building something similar or facing technical challenges? We've been there.
Let's talk — no sales pitch, just honest engineering advice.
Building something similar or facing technical challenges? We've been there.
Let's talk — no sales pitch, just honest engineering advice.
Scratch Me – integration with the Copper CRM
A chrome plugin that increases productivity in a lead generation process by extracting the data from the post published on the Facebook social media platform
Music Industry Tech Openings (March 2024 Update)
When we decided to go all-in on the music industry, we knew from the start, that Bravelab team's support alone wouldn't be enough to drive the industry forward.
Get music tech insights, case studies, and industry news delivered to your inbox.