# Usefulapi Anvil MCP server

Source: https://glimind.com/server/mcp-registry%2Fio.usefulapi%2Fanvil
Registry id: `mcp-registry/io.usefulapi/anvil`
Status: auth-required (checked 2026-10-27T02:27:02.050Z)

## Verdict

Usefulapi Anvil MCP server answered 100% of Glimind's liveness checks over 30 days, better than 42% of MCP servers, with 61 ms median handshake and 0 outages in 90 days. Its agent-readiness grade is A (93/100) across 10 tools, costing an agent about 1,815 tokens to load. Checked every few minutes; no tool is ever called.

## Measurements (30 days)

| Metric | Value | Better than |
|---|---|---|
| Uptime, 30 days | 100% | 42% of MCP servers |
| Median handshake latency | 61 ms | 88% of MCP servers |
| p95 handshake latency | 320 ms | — |
| Checks in 30 days | 212 | — |
| Outages, 90 days | 0 | — |
| Median recovery | — | — |
| Agent-readiness score | 93/100 (A) | 76% of MCP servers |
| Tools | 10 | — |
| Tool-list size for an agent | ~1,815 tokens | 54% of MCP servers |
| Days observed | 28 | — |

## Install

```json
{
  "mcpServers": {
    "usefulapi-anvil-mcp-server": {
      "type": "http",
      "url": "https://anvil.usefulapi.io/mcp"
    }
  }
}
```

Claude Code:

```sh
claude mcp add --transport http usefulapi-anvil-mcp-server https://anvil.usefulapi.io/mcp
```

## Tools (10)

- `anvil_create_etch_packet`: Create an Etch e-signature packet (documents + signers). GraphQL mutation: createEtchPacket. IMPORTANT: isDraft defaults to true (a safe draft that sends nothin
- `anvil_current_user`: 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
- `anvil_fill_pdf`: Fill an Anvil PDF template (cast) with data and return the finished PDF as base64. REST: POST /fill/{castEid}.pdf. Returns { filename, byteLength, pdfBase64 }. 
- `anvil_generate_etch_sign_url`: Generate a one-time embedded signing URL for a specific signer in an Etch packet (for iframe/redirect signing flows). GraphQL mutation: generateEtchSignURL. Ret
- `anvil_generate_pdf`: 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, 
- `anvil_get_cast`: 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.
- `anvil_get_etch_packet`: 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 
- `anvil_get_organization`: 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: o
- `anvil_get_weld`: Fetch a weld — an Anvil workflow — by eid, including its forges (the individual form steps: eid, name, slug). GraphQL query: weld.
- `anvil_get_weld_data`: Fetch a weldData record — a single submission to a weld (workflow) — by eid: completion state, test flag, and creation time. GraphQL query: weldData.

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
