EasyDocForms MCP server
Commit Aug 22, 2026Converts blank PDF intake forms into mobile-friendly fillable links and retrieves completed PDFs while keeping PHI out of the AI context.
Also known as easydocforms/easydocforms-mcp, easydocforms-mcp
- Stars
- 0
- Tools
- 6
- Downloads, 30 days
- —
- Latest version
- 0.1.2
- Last commit
- Aug 22, 2026
- License
- MIT
What is EasyDocForms MCP?
EasyDocForms converts blank PDF intake forms into mobile-friendly fillable links and retrieves completed PDFs while keeping PHI out of the AI context. It exposes 6 tools, such as import_pdf_from_url, get_import_status, list_templates.
Summary generated from the project's README
About EasyDocForms MCP server
EasyDocForms provides a specialized way for healthcare developers to manage patient intake through AI agents. This MCP server allows an agent to transform blank PDF intake packets into mobile-friendly, hosted fillable links. It is designed specifically to maintain a strict boundary for protected health information, ensuring that sensitive patient answers never enter the AI context. Instead, the server handles the document processing and returns metadata or short-lived signed URLs for completed files.
Users can deploy this server locally via Go or Docker, providing an API key from the EasyDocForms Partner API settings. The server uses stdio transport and requires the EASYDOCFORMS_API_KEY environment variable. Key tools include import_pdf_from_url for uploading blank templates, create_fill_link for generating patient URLs, and get_completed_pdf_link to retrieve a signed download link that lasts approximately ten minutes. This setup allows an agent to manage the workflow of form creation and retrieval without ever seeing the actual patient data.
What you can do with it
- 1Convert blank PDFs to web formsAn agent can take a URL of a blank medical form and turn it into a digital link for patients.
- 2Retrieve completed medical documentsAn AI can check if a form is finished and provide a temporary link to the final PDF for an EMR system.
- 3Monitor form submission statusAn agent can track whether a patient has submitted their paperwork by checking submission metadata.
Written from the project's README. Every use case is checked against a quote from it.
How to install EasyDocForms MCP
Formats verified 10 Nov 2026Install EasyDocForms MCP in Claude Code
$ claude mcp add --env EASYDOCFORMS_API_KEY=<YOUR_EASYDOCFORMS_API_KEY> easydocforms-mcp -- docker run -i --rm ghcr.io/easydocforms/easydocforms-mcp:0.1.2Install EasyDocForms MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"easydocforms-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/easydocforms/easydocforms-mcp:0.1.2"
],
"env": {
"EASYDOCFORMS_API_KEY": "<YOUR_EASYDOCFORMS_API_KEY>"
}
}
}
}Install EasyDocForms MCP in VS Code
.vscode/mcp.json
{
"servers": {
"easydocforms-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/easydocforms/easydocforms-mcp:0.1.2"
],
"env": {
"EASYDOCFORMS_API_KEY": "<YOUR_EASYDOCFORMS_API_KEY>"
}
}
}
}Install EasyDocForms MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"easydocforms-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/easydocforms/easydocforms-mcp:0.1.2"
],
"env": {
"EASYDOCFORMS_API_KEY": "<YOUR_EASYDOCFORMS_API_KEY>"
}
}
}
}Install EasyDocForms MCP in Codex
~/.codex/config.toml
[mcp_servers.easydocforms-mcp] command = "docker" args = ["run", "-i", "--rm", "ghcr.io/easydocforms/easydocforms-mcp:0.1.2"] [mcp_servers.easydocforms-mcp.env] EASYDOCFORMS_API_KEY = "<YOUR_EASYDOCFORMS_API_KEY>"
Install EasyDocForms MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"easydocforms-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/easydocforms/easydocforms-mcp:0.1.2"
],
"env": {
"EASYDOCFORMS_API_KEY": "<YOUR_EASYDOCFORMS_API_KEY>"
}
}
}
}EasyDocForms MCP tools 6
Detected from the READMEimport_pdf_from_urlget_import_statuslist_templatescreate_fill_linkget_submissionget_completed_pdf_link
| import_pdf_from_url | — | |
| get_import_status | — | |
| list_templates | — | |
| create_fill_link | — | |
| get_submission | — | |
| get_completed_pdf_link | — |
Configuration
EASYDOCFORMS_API_KEYRequiredSecretEasyDocForms Partner API key (edfk_live_*), created under Settings → Integrations → Partner API
EASYDOCFORMS_BASE_URLOptional API base URL override
| Name | Description | |
|---|---|---|
| EASYDOCFORMS_API_KEY | EasyDocForms Partner API key (edfk_live_*), created under Settings → Integrations → Partner API | RequiredSecret |
| EASYDOCFORMS_BASE_URL | Optional API base URL override |
Automated checks
Ran Nov 14, 2026Full report →Not verified yet. A server needs a score of 80, no serious finding, and enough data for us to check. How checks work
- Source repository linked and reachableeasydocforms/easydocforms-mcp is public and reachablegithub.com/easydocforms/easydocforms-mcp ↗Pass
- Package names this repository as its sourceNot checked
- Build provenance (Sigstore attestation)Not checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-08-22github.com/easydocforms/easydocforms-mcp ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNot checked
- No critical advisory in the package or its dependenciesNot checked
- No hidden instructions to the model6 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNo tool named like delete, drop or execPass
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubeasydocforms-mcp
An 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.
Built on EasyDocForms, whose document-understanding pipeline (field detection, checkbox semantics, consent blocks, signature models) runs healthcare intake in production. This server wraps the Partner API via the easydocforms-go SDK.
The PHI boundary (read this first)
This server is designed so protected health information never passes through the model:
- Imports are blank forms only.
import_pdf_from_urlrequiresblank_form_attestation: trueand takes a URL, never document bytes. get_submissionreturns metadata and an answer count — never the patient's answers. Answers stay server-side, behind your API key.get_completed_pdf_linkreturns 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.external_refmust never contain PHI — it's an opaque correlation id (your visit or order number).
Tools
| Tool | What it does |
|---|---|
import_pdf_from_url |
Import a blank PDF intake form (async; requires blank-form attestation) |
get_import_status |
Poll an import until its template is ready |
list_templates |
List the organization's active form templates |
create_fill_link |
Mint a hosted URL where a patient fills the form |
get_submission |
Submission metadata + answer count — never answers |
get_completed_pdf_link |
Short-lived signed download URL for the completed PDF |
Install
go install github.com/easydocforms/easydocforms-mcp/cmd/easydocforms-mcp@latest
You'll need an API key from the EasyDocForms app: Settings → Integrations → Partner API (shown exactly once).
Or run the Docker image (no Go toolchain needed):
docker run -i --rm -e EASYDOCFORMS_API_KEY=edfk_live_... ghcr.io/easydocforms/easydocforms-mcp:latest
Claude Code
claude mcp add easydocforms --env EASYDOCFORMS_API_KEY=edfk_live_... -- easydocforms-mcp
Claude Desktop (or any MCP client)
{
"mcpServers": {
"easydocforms": {
"command": "easydocforms-mcp",
"env": { "EASYDOCFORMS_API_KEY": "edfk_live_..." }
}
}
}
Environment
| Variable | Required | Purpose |
|---|---|---|
EASYDOCFORMS_API_KEY |
yes | edfk_live_* Partner API key |
EASYDOCFORMS_BASE_URL |
no | API base URL override |
Try it
With MCP Inspector:
EASYDOCFORMS_API_KEY=edfk_live_... npx @modelcontextprotocol/inspector easydocforms-mcp
A 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.
Transport
stdio 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.
Development
go test ./... -race
License
MIT
EasyDocForms MCP questions
How do I add EasyDocForms MCP to Claude Code?
Run claude mcp add --env EASYDOCFORMS_API_KEY=<YOUR_EASYDOCFORMS_API_KEY> easydocforms-mcp -- docker run -i --rm ghcr.io/easydocforms/easydocforms-mcp:0.1.2 in your terminal. Add --scope user to make it available in every project.
How do I add EasyDocForms MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What tools does EasyDocForms MCP provide?
It exposes 6 tools, including import_pdf_from_url, get_import_status, list_templates, create_fill_link, get_submission.
How does the server protect patient privacy?
The server ensures protected health information never passes through the model by only importing blank forms and returning metadata instead of patient answers.
How do I get the completed patient form?
You can use the get_completed_pdf_link tool to receive a short-lived signed URL for downloading the completed PDF.
What authentication is required to use this server?
You need an API key from the EasyDocForms app, which can be found under Settings, Integrations, and Partner API.