One section in, one section out — on Markdown/GEML files, bad writes refused.
- Passed: Handshake
- Passed: Tools listed
- Passed: Updated recently
Median latency 70 ms · Last checked
Explore
Evidence for your next connection.
Independent measurements of remote MCP servers. Every observation has a timestamp.
Read-only probesMCP server · File & docs
Read Paperform forms, submissions, products and coupons, Papersign documents, and manage coupons.
0 failed · 8 not measured
Median of successful probes over 7 days
Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.
Tool definitions returned by this server
Independent monitoring
Outdated check
Last connection measurement is over 24 hours old. Current availability is unknown.
Last checked| Test area | Passed | Failed | Unmeasured |
|---|---|---|---|
ConnectionCan a client connect and discover tools? | 5 | 0 | 0 |
Reliability & speedDoes it respond consistently and quickly? | 0 | 0 | 4 |
Access & authenticationWhat is required to use this server? | 1 | 0 | 2 |
Tool qualityAre the tool definitions usable by an agent? | 4 | 0 | 0 |
Publisher identityCan the publisher be traced to its source? | 4 | 0 | 2 |
Unmeasured means there is not enough evidence to decide. How these checks work
Start using Paperform MCP by usefulapi
Choose your client, copy the configuration, then enable the server in your client’s MCP settings.
Run this command in your terminal, then restart Claude Code.
Claude Code
claude mcp add --transport http paperform-mcp-by-usefulapi https://paperform.usefulapi.io/mcpCapabilities
WRITE: create a coupon code on a form, with a fixed discountAmount or a discountPercentage (not both), an optional target (price or subscription) and expiry. Respondents can use it at checkout as soon as it is enabled. Undo: paperform_update_coupon with enabled=false. Paperform: POST /forms/{slug_or_id}/coupons.
DiscoveredFetch one coupon on a form by code. Paperform: GET /forms/{slug_or_id}/coupons/{code}.
DiscoveredFetch one form by slug, custom slug or id: title, description, url, live flag, tags, submission_count, space and dates. Paperform: GET /forms/{slug_or_id}.
DiscoveredFetch one Papersign document by id: status, signers and their progress, variables, folder, space and dates. Needs the Papersign API. Paperform: GET /papersign/documents/{id}.
DiscoveredFetch one partial submission by id, with the answers given so far. It may have been completed since (submitted_at set); submitted_at null means abandoned. Paperform: GET /partial-submissions/{id}.
DiscoveredFetch one product on a form by SKU: price, quantity in stock, sold count, limits. Paperform: GET /forms/{slug_or_id}/products/{sku}.
DiscoveredGet a download link for a completed (fully signed) Papersign document as a PDF. A fresh link is made on each call and is valid for one week (expires_at_utc). Needs the Papersign API. Paperform: GET /papersign/documents/{id}/completed-document-url.
DiscoveredFetch one submission by id, with every answer, device info, payment charge and PDFs. Paperform: GET /submissions/{id}.
DiscoveredList a form's coupon codes (code, enabled, target, discountAmount or discountPercentage, expiresAt). Paperform: GET /forms/{slug_or_id}/coupons.
DiscoveredList a form's questions (key, title, type, required, custom_key, description, options). The field keys are the keys of a submission's `data` object, so read this to interpret answers. Paperform: GET /forms/{slug_or_id}/fields.
DiscoveredList the forms in the Paperform account (id, slug, custom_slug, title, url, live, tags, submission_count, space_id, dates), newest first. Search by title, or also by slug/custom_slug with search_fields. Start here to find the slug or id the other tools need. Paperform: GET /forms.
DiscoveredList Papersign e-signature documents (id, name, status, folder, space, signers, variables, source form/submission, sent/completed dates), filtered by name, status, folder, space or the Paperform submission that created them. Needs the Papersign API. Paperform: GET /papersign/documents.
DiscoveredList Papersign folders (id, name, parent_id, space_id), optionally inside one space or folder. Needs the Papersign API. Paperform: GET /papersign/folders.
DiscoveredList Papersign spaces (id, name, root_folder_id). Needs the Papersign API. Paperform: GET /papersign/spaces.
DiscoveredList one page of a form's partial submissions (someone started the form), newest first: answers so far, last_answered field, dates. Partials that were later completed stay in the list with submitted_at set; only those with submitted_at null are abandoned. Useful for drop-off analysis and follow-ups. Paperform: GET /forms/{slug_or_id}/partial-submissions.
DiscoveredList the products sold on a form (SKU, name, price, quantity in stock, sold, minimum/maximum, discountable, images). Paperform: GET /forms/{slug_or_id}/products.
DiscoveredList the forms in one space. Needs the Business API. Paperform: GET /spaces/{id}/forms.
DiscoveredList the account's spaces (folders that group forms): id, name, dates. Needs the Business API. Paperform: GET /spaces.
DiscoveredList one page of a form's completed submissions, newest first: answers (`data`, keyed by field key — see paperform_list_form_fields), device and UTM info, payment `charge`, generated PDFs and created_at. Page with skip/next_skip or after_id/last_id; filter by date. Paperform: GET /forms/{slug_or_id}/submissions.
DiscoveredList the webhooks on a form (id, target_url, triggers: submission / partial_submission, dates). Needs the Business API. Paperform: GET /forms/{slug_or_id}/webhooks.
DiscoveredWRITE: set how many units of a form product are available (its stock quantity), e.g. after restocking. Replaces the current value; read it first with paperform_get_product. Not atomic: it overwrites rather than adjusts, so a sale between your read and this write is lost. Paperform: PUT /forms/{slug_or_id}/products/{sku}/quantity.
DiscoveredWRITE: set the number of units of a form product recorded as sold (e.g. to correct it after a refund or an offline sale). Replaces the current value; read it first with paperform_get_product. Not atomic: it overwrites rather than adjusts, so a sale between your read and this write is lost. Paperform: PUT /forms/{slug_or_id}/products/{sku}/sold.
DiscoveredWRITE: change a coupon on a form — enable or disable it, change its discount (amount or percentage), target or expiry (null = never expires). Only the fields you pass are sent. Paperform: PUT /forms/{slug_or_id}/coupons/{code}.
DiscoveredRecent measurements
| Checked | Result | Response | Tools |
|---|---|---|---|
| Connected | 73 ms | 23 |