Capabilities & tools
What you can do today
Section titled “What you can do today”The Scrive MCP covers finding, preparing, sending and following up on documents, plus the basics of multi-document bundle flows. Most tools take a document or draft id that the agent gets from list_documents, search_by_contents or list_flow_drafts; the agent chains them for you.
- Find documents by title, party, status, tag or date, or by what they say.
- Prepare documents from an uploaded PDF or a template, with parties, eID authentication, delivery methods and signing order.
- Send and follow up: start signing, remind, cancel, download the signed PDF.
- Prepare bundle flows: create a bundle draft, add PDFs and participants.
- Report on daily or monthly usage.
Read and write actions
Section titled “Read and write actions”Some tools are read-only, and download_document only reads a file. The rest change data in Scrive. A few of those cannot be undone or reach other people, and are annotated as destructive so your AI client asks before running them: start_signing, cancel_document, start_flow and delete_flow_draft. remind_document sends email or SMS to parties too, so treat it the same way. Keep those confirmations on.
File uploads and downloads
Section titled “File uploads and downloads”Some tools move PDF files between your computer and Scrive: create_document, set_file, add_document_to_draft and download_document. They open a small panel inside your chat, built on the MCP Apps extension, where you pick the file to upload or click to download. Uploads are bounded by a 44 MB request limit.
Clients without MCP Apps support see a text message asking you to pick a file and cannot complete the upload. Claude renders these panels; in clients that do not, create documents from templates with create_from_template instead.
Find and read
Section titled “Find and read”| Tool | Type | Description |
|---|---|---|
list_documents | Read | Lists your documents with filters and sorting. Matches titles and party names. |
search_by_contents | Read | Searches the text inside documents, including scanned PDFs, and returns matching excerpts. |
get_document | Read | Returns a document’s full JSON, optionally narrowed to chosen properties. |
download_document | Read | Opens a panel to download the document’s main PDF, the sealed file once signed. |
Prepare
Section titled “Prepare”| Tool | Type | Description |
|---|---|---|
create_document | Write | Uploads a PDF from your computer as a new document in preparation. Opens a file picker. |
create_from_template | Write | Creates a new document from one of your templates. |
set_file | Write | Replaces the main PDF of a document in preparation. Opens a file picker. |
update_document | Write | Edits a document’s settings: title, deadlines, messages, language, tags, display options and parties. |
add_party | Write | Adds a signing party, viewer or approver to a document. |
update_party | Write | Changes a party’s role, details, authentication or delivery settings. |
Send and follow up
Section titled “Send and follow up”| Tool | Type | Description |
|---|---|---|
start_signing | Write, confirm | Starts the signing process and sends the invitations. |
remind_document | Write, confirm | Sends a reminder to every party who has not signed yet. |
cancel_document | Write, confirm | Cancels a pending document. |
Journey flows
Section titled “Journey flows”| Tool | Type | Description |
|---|---|---|
create_flow_draft | Write | Creates a new flow draft with a title. |
list_flow_drafts | Read | Lists your flow drafts, with pagination. |
get_flow_draft | Read | Returns a flow draft’s documents, participants and steps. |
add_document_to_draft | Write | Adds one or more PDFs to a flow draft. Opens a file picker. |
add_participant_to_draft | Write | Adds a participant with an action and regenerates the flow’s steps. |
start_flow | Write, confirm | Starts the flow and sends the first invitations. |
delete_flow_draft | Write, confirm | Deletes a flow draft. |
Account
Section titled “Account”| Tool | Type | Description |
|---|---|---|
get_usage_stats | Read | Daily or monthly usage statistics for you or your company. |
Four further tools with names starting with an underscore, such as _create_document_upload, exist only for the upload and download panels to call. They are hidden from the agent.
Find and read
Section titled “Find and read”list_documents
Section titled “list_documents”Lists documents with filtering and sorting. search_text matches document titles and party names; to search the text written inside documents, use search_by_contents.
| Input | Type | Description |
|---|---|---|
max_results | integer | Page size. Default 20. |
offset | integer | Number of documents to skip. Default 0. |
status | string[] | preparation, awaiting_start, pending, closed, canceled, timedout, rejected, document_error. |
mtime | object | start_time and end_time, ISO 8601: last modified within the range. |
tag | object | name and value: documents carrying that tag value. |
has_tag | string | Documents carrying a tag with this name. |
is_author | boolean | Only documents you authored. |
author_id | string | Only documents authored by this user id. |
user_can_sign | string | Only documents this user id can sign. |
search_text | string | Case-insensitive match on title and party names. |
is_template, is_not_template | boolean | Templates only, or documents only. |
is_in_trash, is_not_in_trash | boolean | Trashed only, or not trashed. |
is_signable_on_pad | boolean | Documents that can be signed in person on a pad. |
sorting | object[] | sort_by (title, status, mtime, author) and order (ascending, descending). |
Returns offset, total_matching and a compact documents list with id, title, status and mtime.
search_by_contents
Section titled “search_by_contents”Searches the text inside documents, including scanned PDFs, and returns the matching excerpts. A document can also match on its title, a party name or a stored field value, in which case it is returned without excerpts. Every result carries a url the agent shows you and a ref it passes to other tools.
| Input | Type | Description |
|---|---|---|
query | string | Words that must all appear in the document. Words of three characters or more also match longer words starting with them. Required. |
status | string[] | preparation, pending, closed, canceled, rejected, timedout. |
party | string | Only documents with a party whose name, email, organisation number, address or reference contains this text. |
owned_by_me | boolean | true for documents you own, false for documents someone else owns. |
to_sign | true | Only documents out for signature and waiting for you to sign. |
updated_after, updated_before | ISO 8601 | Changed after, before. |
signed_after, signed_before | ISO 8601 | Signed after, before. |
max_results | integer | 1 to 100. Default 20. |
cursor | string | next_cursor from an earlier call, for the following page. |
Returns results with title, url, ref, status, updated_at, source (standalone document or document in a flow) and excerpts, plus next_cursor. Matches in draft documents or in flow attachments whose contents cannot be opened yet are counted in omitted.
get_document
Section titled “get_document”Retrieves a document’s full JSON representation.
| Input | Type | Description |
|---|---|---|
document_id | string | The document id. Required. |
properties | string[] | Only return these top-level properties: id, title, parties, file, sealed_file, author_attachments, ctime, mtime, timeout_time, auto_remind_time, status, days_to_sign, days_to_remind, display_options, invitation_message, sms_invitation_message, confirmation_message, sms_confirmation_message, lang, api_callback_url, object_version, access_token, date_format, timezone, tags, is_template, is_saved, is_shared, is_trashed, is_deleted. Omit for the whole document. |
A document with many parties runs to tens of thousands of tokens. The agent narrows properties when it only needs part of it.
download_document
Section titled “download_document”Opens a panel with a download button for the document’s main PDF: the sealed file once the document is closed, otherwise the current main file.
| Input | Type | Description |
|---|---|---|
document_id | string | The document id. Required. |
Prepare
Section titled “Prepare”create_document
Section titled “create_document”Uploads a PDF file to Scrive as a new document in preparation. Takes no inputs: it opens a file picker in the chat for you to choose the PDF. Returns the new document’s id and its URL, https://scrive.com/d/<id>. Add parties and start signing next.
create_from_template
Section titled “create_from_template”Creates a new document from a template.
| Input | Type | Description |
|---|---|---|
document_id | string | The template’s document id, found with list_documents and is_template. Required. |
Returns the new document’s id and URL.
set_file
Section titled “set_file”Sets the main PDF of a document in preparation. Opens a file picker for the PDF.
| Input | Type | Description |
|---|---|---|
document_id | string | The document id. Required. |
update_document
Section titled “update_document”Updates the metadata of a document in preparation. Only the keys provided in document change.
| Input | Type | Description |
|---|---|---|
document_id | string | The document id. Required. |
document | object | The changes, see below. Required. |
object_version | integer | The document’s object_version as last seen. The update is rejected with a 409 if the document has changed since, which prevents overwriting a concurrent edit. |
return_properties | string[] | Narrow the returned document to these top-level properties, as for get_document. |
Keys accepted in document:
| Key | Type | Description |
|---|---|---|
title | string | Document title. |
days_to_sign | integer | 1 to 365. |
days_to_remind | integer or null | Days before an automatic reminder. |
invitation_message, confirmation_message | string | Email texts. |
sms_invitation_message, sms_confirmation_message | string | SMS texts. |
lang | string | cs, da, de, el, en, es, et, fi, fr, hu, is, it, lt, lv, nl, pl, pt, sv. |
api_callback_url | string or null | Callback URL for status changes. |
timezone | string | For example Europe/Stockholm. |
is_template | boolean | true turns the document into a template. One-way. |
tags | object[] | name and value pairs. |
display_options | object | show_header, show_pdf_download, show_reject_option, allow_reject_reason, show_footer, document_is_receipt, show_arrow, show_form, show_form_arrow. |
parties | object[] | Replaces the document’s party list. Entries are matched positionally, entries you omit are removed, and the first entry is always the author. Give an entry the id of an existing party to carry its data forward and change only the settings you pass. Each entry accepts the party settings listed under add_party. |
add_party
Section titled “add_party”Adds a new party to a document in preparation.
| Input | Type | Description |
|---|---|---|
document_id | string | The document id. Required. |
name | string | Full name; the first word becomes the first name. Required. |
email | string | Required. |
signatory_role | string | signing_party, viewer or approver. Required. |
Plus any of the party settings:
| Setting | Type | Description |
|---|---|---|
authentication_method_to_sign | string | standard, sms_pin, se_bankid, no_bankid, no_bankid_qes, dk_mitid, dk_mitid_erhverv, fi_tupas, freja, freja_orgid, nl_idin, oneid, onfido, onfido_document_check, onfido_document_and_photo_check, swisscom_qes, swisscom_qes_with_srs, verimi_qes, itsme_qes, smart_id_qes, scrive_qes, scrive_qes_global. eID methods generally need personal_number; sms_pin needs mobile_number. The method must be enabled on your account or start_signing fails. |
authentication_method_to_view, authentication_method_to_view_archived | string | standard, sms_pin, dk_mitid, dk_mitid_erhverv, fi_tupas, freja, freja_orgid, nl_idin, no_bankid, oneid, onfido, onfido_document_check, onfido_document_and_photo_check, se_bankid, verimi. Required to view the document before signing, or the archived document afterwards. |
personal_number | string | National identification number, used by eID methods. |
mobile_number | string | E.164 format. Required for sms_pin and mobile delivery. |
sign_order | integer | Signing turn, from 1. Parties sharing an order sign in parallel; a higher order is invited once every lower order has signed. |
delivery_method | string | email, mobile, email_mobile, pad, api. |
confirmation_delivery_method | string | email, mobile, email_mobile, email_link, email_link_mobile, none. |
notification_delivery_method | string | email, mobile, email_mobile, none. How reminders reach the party. |
allows_highlighting | boolean | Party may highlight areas of the PDF while signing. |
hide_personal_number | boolean | Hide the personal number on the finalised document. |
can_forward | boolean | Party may forward the signing process to someone else. |
is_visible | boolean or null | Viewers and approvers only; pass null for a signing party. |
sign_success_redirect_url, reject_redirect_url | string | Where the party lands after signing or rejecting. |
attachments | object[] | Files the party must upload before signing: name, description, required, add_to_sealed_file. Replaces the party’s current list. |
fields | object[] | The party’s full field list, replacing the current one. Each field has a type (name, full_name, email, mobile, company, personal_number, company_number, signature, checkbox, radiogroup, text, multi_line_text, date, sign_date), a name for custom fields, an optional value, flags such as is_obligatory and should_be_filled_by_sender, and placements that position it on the PDF by page and relative coordinates or by anchoring to text. |
update_party
Section titled “update_party”Updates a party’s role, name, email, authentication or delivery settings on a document in preparation.
| Input | Type | Description |
|---|---|---|
document_id | string | The document id. Required. |
party_id | string | The party id, from get_document. Required. |
Plus any of the party settings listed under add_party, including name, email and signatory_role.
Send and follow up
Section titled “Send and follow up”start_signing
Section titled “start_signing”Starts the signing process for a document in preparation and sends the invitations.
| Input | Type | Description |
|---|---|---|
document_id | string | The document id. Required. |
remind_document
Section titled “remind_document”Sends a reminder invitation to every party who has not yet signed.
| Input | Type | Description |
|---|---|---|
document_id | string | The document id. Required. |
cancel_document
Section titled “cancel_document”Cancels a pending document.
| Input | Type | Description |
|---|---|---|
document_id | string | The document id. Required. |
Bundle / Journey flows
Section titled “Bundle / Journey flows”Journey flows send several documents to several participants in one process, with signers, viewers, approvers and copy recipients. The agent uses them for anything more involved than a single document.
create_flow_draft
Section titled “create_flow_draft”| Input | Type | Description |
|---|---|---|
process_title | string | Title of the flow. Required. |
Returns the draft id.
list_flow_drafts
Section titled “list_flow_drafts”| Input | Type | Description |
|---|---|---|
limit | integer | Page size. Default 20. |
page | string | Page cursor from an earlier call. |
get_flow_draft
Section titled “get_flow_draft”| Input | Type | Description |
|---|---|---|
draft_id | string | The draft id. Required. |
Returns the draft with its documents, participants and steps.
add_document_to_draft
Section titled “add_document_to_draft”Adds one or more PDFs to a flow draft. Opens a file picker.
| Input | Type | Description |
|---|---|---|
draft_id | string | The draft id. Required. |
name | string | Document name. Defaults to the filename without extension. |
add_participant_to_draft
Section titled “add_participant_to_draft”Adds a participant and regenerates the draft’s steps: participants are grouped by action, and each acts on every document in the draft.
| Input | Type | Description |
|---|---|---|
draft_id | string | The draft id. Required. |
name | string | Full name. Required. |
email | string | Required. |
action | string | sign (default), view, approve, receive_copy. |
invitation_method | string | email (default), sms, email_and_sms, link_only, kivra, eboks, eboks_private. |
confirmation_method | string | email (default), sms, email_and_sms, none, kivra, eboks, eboks_private. |
authentication_to_sign | string | onfido, sms_otp, se_bank_id, dk_mit_id, no_bank_id, ftn, no_bank_id_qes, swisscom, verimi, scrive_qes, scrive_qes_global. Journey names differ from the document tools. sms_otp needs mobile_number. |
authentication_to_view, authentication_to_view_archived | string | onfido, sms_otp, se_bank_id, dk_mit_id, no_bank_id, ftn. |
personal_number | string | National identification number, used by eID providers. |
mobile_number | string | E.164 format. Required for sms_otp. |
start_flow
Section titled “start_flow”Starts a flow draft, creating a running flow and sending the first invitations.
| Input | Type | Description |
|---|---|---|
draft_id | string | The draft id. Required. |
delete_flow_draft
Section titled “delete_flow_draft”| Input | Type | Description |
|---|---|---|
draft_id | string | The draft id. Required. |
Account
Section titled “Account”get_usage_stats
Section titled “get_usage_stats”Retrieves usage statistics from Scrive.
| Input | Type | Description |
|---|---|---|
period | string | days for daily statistics (default last 30 days) or months for monthly (default last 12 months). Required. |
withCompany | boolean | Include the company summary. |
userGroupID | string | User group to report on, when withCompany is true. |
recursive | boolean | Include child user groups, when withCompany is true. |
includeZeroRecords | boolean | Include periods with no activity. |
fromDate, toDate | string | Bounds as YYYY-MM-DD or YYYY-MM. |
Compared with the Scrive API
Section titled “Compared with the Scrive API”| Scrive MCP | Scrive API | |
|---|---|---|
| Caller | AI assistants and agents deciding at runtime | Your code with explicit logic |
| Auth | Sign in with your Scrive account in the AI client | OAuth credentials from Account settings → Integrations |
| Coverage | Documents, parties, signing, reminders, flows, usage | The whole platform |
| Best for | Asking questions, preparing and sending, following up | Automated pipelines and integrations |
