Connect Plume to AI assistants like Claude using the Model Context Protocol.
The Plume MCP server lets AI agents manage contacts, upload documents, place signature blocks, and send documents for signing — all through natural language.
Plume supports two authentication methods: OAuth (recommended) and API key.
OAuth lets you connect without managing API keys. Your AI client will open a browser window where you sign in to Plume and authorize access. No configuration file needed.
API keys are scoped to a specific workspace. Use them for automation, CI/CD, or clients that don't support OAuth.
Go to Settings > API Keys and create a new key. Copy it — you won't see it again.
Pass the key as a Bearer token in the Authorization header (see client setup below).
This is the easiest way to connect. No API key or config file required.
In Claude Desktop, click "Customize" in the left sidebar.
Select "Connectors" in the Customize menu.
Click the + button in the top-right, then select "Add custom connector".
| Field | Value |
|---|---|
| Name | Plume |
| Remote MCP server URL | https://plume.claap.io/api/mcp |
Click "Add".
Click "Connect" on the Plume connector. Your browser will open to sign in to Plume. Log in with your account and click "Authorize". You'll be redirected back to Claude Desktop automatically.
If you prefer using an API key, add it manually to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"plume": {
"type": "streamable-http",
"url": "https://plume.claap.io/api/mcp",
"headers": {
"Authorization": "Bearer sk_live_your_key_here"
}
}
}
}
Run the following command to add Plume as a remote MCP server:
claude mcp add plume --transport http https://plume.claap.io/api/mcp
Claude Code will open your browser to authorize with your Plume account on first use.
Add to your project's .claude/settings.json:
{
"mcpServers": {
"plume": {
"type": "streamable-http",
"url": "https://plume.claap.io/api/mcp",
"headers": {
"Authorization": "Bearer sk_live_your_key_here"
}
}
}
}
Open Settings > MCP, click "Add new MCP server", and select "Streamable HTTP".
| Field | Value |
|---|---|
| Name | plume |
| URL | https://plume.claap.io/api/mcp |
Then add the authorization header in the JSON config:
{
"mcpServers": {
"plume": {
"url": "https://plume.claap.io/api/mcp",
"headers": {
"Authorization": "Bearer sk_live_your_key_here"
}
}
}
}
Any client that supports the Model Context Protocol with Streamable HTTP transport can connect.
If your client supports OAuth 2.1 with dynamic client registration, just point it to the MCP URL. The OAuth discovery endpoint is at:
https://plume.claap.io/.well-known/oauth-authorization-server
| Parameter | Value |
|---|---|
| Transport | Streamable HTTP |
| URL | https://plume.claap.io/api/mcp |
| Auth header | Authorization: Bearer sk_live_your_key_here |
You can verify the connection with curl:
curl -X POST https://plume.claap.io/api/mcp \
-H "Authorization: Bearer sk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Workspace
list_workspaces)Contacts
Documents
draft status. The file name becomes the document title.draft, pending, partially_signed, completed, canceledSignature Blocks
x, y) and dimensions (width, height) are percentages of the page size (0–100). Origin (0, 0) is the top-left corner. For example, x: 10, y: 80 places a block 10% from the left and 80% from the top.
create_contact or search_contacts before placing blocks.
create_contact first).draft status)type (signature | paraphe | text),
page (1-indexed),
x, y (position as percentage of page size, origin is top-left),
signatory_email (must match an existing contact),
and optional width / height (default: 20% × 5%)
Signing
draft status with at least one block placed and all blocks assigned)completed status)Workflow
email, name, and optional companyOnce connected, you can ask your AI assistant things like:
> Upload the NDA at https://example.com/nda.pdf and send it
to alice@acme.com for signature
> What documents are currently pending?
> Check if the contract I sent to bob@example.com has been signed yet
> Download the signed version of document abc-123
| Step | Tool | What happens |
|---|---|---|
| 1 | create_contact | Register the signatory (skipped if they already exist) |
| 2 | upload_document | Upload the PDF — document starts in draft status |
| 3 | place_blocks | Place signature/paraphe blocks at the right coordinates |
| 4 | send_document | Send signing emails — status moves to pending |
| 5 | get_document_status | Monitor signing progress |
| 6 | download_signed_pdf | Download once completed |
Make sure you're signed in to Plume in your browser. If the authorization page shows an error, try signing out and back in to Plume first, then retry the OAuth flow in your AI client.
If you belong to multiple workspaces, the AI assistant will ask which one to use. Call the list_workspaces tool first, then set_workspace with the desired workspace ID.
Verify your API key is valid by testing with curl:
curl -X POST https://plume.claap.io/api/mcp \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Restart your AI client after adding the MCP configuration. Most clients require a restart to discover new servers.
API keys are scoped to the workspace of the user who created them. OAuth users have access to all workspaces they belong to.
Need help? Contact tech@claap.io · REST API Docs