{
  "markdown": "# easydocforms-mcp\n\n[![CI](https://github.com/easydocforms/easydocforms-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/easydocforms/easydocforms-mcp/actions/workflows/ci.yml)\n\nAn MCP server for **healthcare intake forms**: give an AI agent the ability to turn a blank PDF intake packet into a hosted, mobile-friendly fillable form, hand the patient a link, and retrieve the completed, pixel-exact PDF — without any PHI ever entering the agent's context.\n\nBuilt on [EasyDocForms](https://easydocforms.com), whose document-understanding pipeline (field detection, checkbox semantics, consent blocks, signature models) runs healthcare intake in production. This server wraps the [Partner API](https://easydocforms.com/docs/api) via the [easydocforms-go](https://github.com/easydocforms/easydocforms-go) SDK.\n\n## The PHI boundary (read this first)\n\nThis server is designed so protected health information never passes through the model:\n\n- **Imports are blank forms only.** `import_pdf_from_url` requires `blank_form_attestation: true` and takes a URL, never document bytes.\n- **`get_submission` returns metadata and an answer count — never the patient's answers.** Answers stay server-side, behind your API key.\n- **`get_completed_pdf_link` returns a ~10-minute signed URL** the agent can hand to a human or an EMR without exposing your API key. Treat it like a fax.\n- **`external_ref` must never contain PHI** — it's an opaque correlation id (your visit or order number).\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `import_pdf_from_url` | Import a blank PDF intake form (async; requires blank-form attestation) |\n| `get_import_status` | Poll an import until its template is ready |\n| `list_templates` | List the organization's active form templates |\n| `create_fill_link` | Mint a hosted URL where a patient fills the form |\n| `get_submission` | Submission metadata + answer count — never answers |\n| `get_completed_pdf_link` | Short-lived signed download URL for the completed PDF |\n\n## Install\n\n```sh\ngo install github.com/easydocforms/easydocforms-mcp/cmd/easydocforms-mcp@latest\n```\n\nYou'll need an API key from the EasyDocForms app: **Settings → Integrations → Partner API** (shown exactly once).\n\nOr run the Docker image (no Go toolchain needed):\n\n```sh\ndocker run -i --rm -e EASYDOCFORMS_API_KEY=edfk_live_... ghcr.io/easydocforms/easydocforms-mcp:latest\n```\n\n### Claude Code\n\n```sh\nclaude mcp add easydocforms --env EASYDOCFORMS_API_KEY=edfk_live_... -- easydocforms-mcp\n```\n\n### Claude Desktop (or any MCP client)\n\n```json\n{\n  \"mcpServers\": {\n    \"easydocforms\": {\n      \"command\": \"easydocforms-mcp\",\n      \"env\": { \"EASYDOCFORMS_API_KEY\": \"edfk_live_...\" }\n    }\n  }\n}\n```\n\n### Environment\n\n| Variable | Required | Purpose |\n|---|---|---|\n| `EASYDOCFORMS_API_KEY` | yes | `edfk_live_*` Partner API key |\n| `EASYDOCFORMS_BASE_URL` | no | API base URL override |\n\n## Try it\n\nWith [MCP Inspector](https://github.com/modelcontextprotocol/inspector):\n\n```sh\nEASYDOCFORMS_API_KEY=edfk_live_... npx @modelcontextprotocol/inspector easydocforms-mcp\n```\n\nA typical agent session: *\"Import the intake form at https://clinic.example.com/forms/new-patient.pdf (it's blank), then give me a fill link for visit 8675309.\"* The agent imports, polls, mints a link with `external_ref: \"visit-8675309\"`, and hands back a URL. After the patient submits, *\"Is the PDF for that visit ready?\"* → `get_submission` + `get_completed_pdf_link`.\n\n## Transport\n\nstdio only, credentials from the environment — per the MCP spec's guidance for locally-run servers. A hosted remote variant (Streamable HTTP + OAuth 2.1) is planned as a second wave.\n\n## Development\n\n```sh\ngo test ./... -race\n```\n\n## License\n\nMIT\n",
  "bytes": 3706,
  "sha": "347a9f4008077a8aa89b7a77874233ac8d77f4297a6860e23c8fed6ce9fffd10",
  "repo_slug": "easydocforms/easydocforms-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_easydocforms_easydocforms_mcp_758e8248/readme"
}