Anvil MCP by usefulapi

io.usefulapi/anvil

Hosted MCP server for Anvil — fill & generate PDFs and run Etch e-signature packets for AI agents.

Yes, your AI can use this right now.Answered a live MCP handshake in 196 ms with no sign-in needed and exposes 10 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://anvil.usefulapi.io/mcp

10 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
anvil_current_userread-only

Get the authenticated Anvil user (from the API key) and the organizations they belong to (eid, name, slug). Good first call to discover org slugs/eids for other tools. GraphQL query: currentUser.

anvil_get_organizationread-only

Fetch an Anvil organization and its PDF templates (casts) and workflows (welds). Provide either its slug or its eid (at least one is required). GraphQL query: organization.

anvil_get_castread-only

Fetch a cast — an Anvil PDF template — by its eid: title, version number, and whether it is a template. Use the returned eid as the cast_eid for anvil_fill_pdf. GraphQL query: cast.

anvil_get_etch_packetread-only

Fetch an Etch e-signature packet by eid: its status, details URL, document group, and every signer (eid, aliasId, name, email, status, routing order). Use this to check signature progress. GraphQL query: etchPacket.

anvil_get_weldread-only

Fetch a weld — an Anvil workflow — by eid, including its forges (the individual form steps: eid, name, slug). GraphQL query: weld.

anvil_get_weld_dataread-only

Fetch a weldData record — a single submission to a weld (workflow) — by eid: completion state, test flag, and creation time. GraphQL query: weldData.

anvil_fill_pdfcan modify

Fill an Anvil PDF template (cast) with data and return the finished PDF as base64. REST: POST /fill/{castEid}.pdf. Returns { filename, byteLength, pdfBase64 }. The `data` object's keys are the template's field aliases.

anvil_generate_pdfcan modify

Generate a brand-new PDF from HTML or Markdown and return it as base64. REST: POST /generate-pdf. For type=html, pass data = { html, css? }. For type=markdown, pass data = [ { label, content }, ... ]. Returns { filename, byteLength, pdfBase64 }.

anvil_create_etch_packetcan modify

Create an Etch e-signature packet (documents + signers). GraphQL mutation: createEtchPacket. IMPORTANT: isDraft defaults to true (a safe draft that sends nothing). Setting isDraft=false with real signers SENDS signature-request emails to those signers. Use isTest=true while developing.

anvil_generate_etch_sign_urlcan modify

Generate a one-time embedded signing URL for a specific signer in an Etch packet (for iframe/redirect signing flows). GraphQL mutation: generateEtchSignURL. Returns { url }.

Alternatives in Docs & Knowledge

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”