Emboss
by @edwinorange · io.github.edwinorange/emboss
Make any PDF form fillable, fill it from data or documents, read it back, and fax the result.
- Category
- Developer tools
- Connection
- Remote (HTTP)
- Tools
- 28 reported
- Status
- Online
Connect it to your AI
Claude Code
claude mcp add --transport http emboss https://api.getemboss.ai/mcpClaude, ChatGPT, Cursor and other apps
Add it as a custom connector with this URL (Streamable HTTP):
https://api.getemboss.ai/mcpCursor, VS Code and other apps (mcp.json)
{
"mcpServers": {
"emboss": {
"url": "https://api.getemboss.ai/mcp"
}
}
}Tools it offers
28 tools, as the server itself reported during our check on Oct 31, 2026.
list_formsForms in the user's Emboss library. state: ready (default), processing, failed, or all. Paginate with cursor.get_formStatus of one form. When ready, returns every field (id, label, kind, options, required) and a download link for the fillable PDF.find_formFind a blank government form in the Emboss library by name or number, ready to fill. Search the library of blank US federal forms by name, number or alias (w9, W-9, form w 9 and taxpayer identification all find the sameget_usageThis month's usage and how many free operations remain, plus the billing page link. It also says whether a payment method is on file (payment_method_on_file) and whether the account can send a fax today (fax_ready). Faxecreate_formTurn a flat or scanned PDF form into a fillable PDF with detected fields. Upload a PDF (pdf_url: public https link, or pdf_base64) and detect its fields. Returns when detection finishes (usually under two minutes). Givedelete_formPermanently removes a form and its PDFs from the user's library. Pass dry_run=true to rehearse this call without doing it: nothing is stored, charged or sent, and no AI is used. The answer says whether the real call woulfill_formFill a PDF form from structured data such as JSON or key-value answers. Fill a ready form with values keyed by field id or field label. Checkboxes take yes or no; choice fields need one of their options. To lock the fillfill_form_from_contextFill a PDF form using facts found in supporting documents. Emboss reads the answers out of context_text and/or context_urls (public https links to PDFs, Word, spreadsheets, images, or text) and fills the form. Give form_prepare_formPrepare a form from documents: a proposal of every answer with its source, what is missing, and where documents disagree, before writing, plus attachments for a package. Same inputs as fill_form_from_context (form_id forget_jobStatus of a fill_form_from_context, prepare_form, or commit_proposal job. When ready, returns the download link, how many fields were filled, and for a commit, the result, receipt_url and, when one was asked for, packagesuggest_mappingPropose which spreadsheet columns fill which PDF form fields. Given a CSV (csv_text or csv_url), proposes which column fills which field. Only the header row matters. Billed as one context fill (5 free each month). Passfill_batchFill one copy of a PDF form for every row of a spreadsheet. Fill a form for every row of a CSV (csv_text or csv_url, up to 1000 rows). mapping is {column: field_id}; omit it to use the suggested mapping. If mapping is omget_batchProgress of a fill_batch run with a download link per finished row (100 at a time; pass next_cursor as cursor for the next 100) and a zip link when done.commit_proposalWrite or confirm the answers, render the form with text that fits, check it, and return the PDF with a report and a receipt, or one submission package. Give the proposal_id from prepare_form; confirm is a list of field iget_proposalPrepare a form from documents: a proposal of every answer with its source, what is missing, and where documents disagree, before writing, plus attachments for a package. Read a proposal by its proposal_id: every field'sverify_formCheck a filled form: required fields, allowed options, consistent choices, text that fits, empty signature boxes; returns complete, review required or incomplete. Give a form_id and the filled PDF (pdf_url: public httpsread_formRead the values out of a filled PDF form, labelled by field, with a completeness verdict when the form is known. Give the filled PDF (pdf_url: public https link, or pdf_base64) and, when you know it, form_id. Returns eveadd_attachmentPrepare a form from documents: a proposal of every answer with its source, what is missing, and where documents disagree, before writing, plus attachments for a package. Attach one document (file_url: public https link,send_faxSend a PDF to a fax number and track delivery, priced per transmitted page. Give a destination in E.164 form (for example +15025551212; US, Canadian and Mexican numbers only) and the PDF: an artifact_id from any earlierget_faxDelivery status and receipt of a send_fax job. status is queued, working, delivered, failed or expired; keep checking about every 20 seconds until it is delivered, failed or expired. A busy, unanswered or dropped call iscompose_pdfFree. Build one PDF from pages of several artifacts, in the order and rotation you name. Build one PDF from several artifacts: sources is a list of {artifact_id, pages, rotate}; pages is a selection like 1-3,7 (omit formerge_pdfFree. Join whole PDFs into one file in the order given. Join whole PDFs in order: sources is a list of {artifact_id}. Returns the new artifact_id and a download_url (a link that works for about an hour). For page selectiextract_pagesFree. Keep only the pages you name from a PDF, in the order you name them. Keep only the pages named in pages (1-based, like 2,5-9, repeats and any order allowed) from artifact_id. Returns the new artifact_id and a downldelete_pagesFree. Remove the pages you name from a PDF and keep the rest in order. Remove the pages named in pages (1-based, like 1-2,17) from artifact_id; every other page stays in order. Returns the new artifact_id and a download_reorder_pagesFree. Put a PDF's pages in a new order you give, every page exactly once. Reorder artifact_id's pages: order lists every page number exactly once, in the new order. Returns the new artifact_id and a download_url (a linkrotate_pagesFree. Rotate the pages you name by 90, 180 or 270 degrees. Rotate pages of artifact_id: rotations is a list of {pages, degrees} with degrees 90, 180 or 270, added clockwise to each page's current rotation. Returns the neinspect_pdfFree. Report a PDF's structure: page count, page sizes and rotations, encryption, form fields, annotations. Structural facts about artifact_id: page count, page sizes and rotations, whether it is encrypted, has form fielflatten_pdfFree. Lock a filled form: draw every field's value and every comment into the page so nothing can be edited. Lock artifact_id, usually the filled PDF from fill_form: every field's value, checkbox and comment becomes part
Questions
What is the Emboss MCP server?
Make any PDF form fillable, fill it from data or documents, read it back, and fax the result. It is made by @edwinorange and listed in the official MCP Registry as io.github.edwinorange/emboss. MCP (Model Context Protocol) is the open standard that lets AI apps like Claude, ChatGPT and Cursor use outside tools.
How do I add Emboss to Claude?
In the Claude app or claude.ai, open Settings, then Connectors, choose "Add custom connector" and paste https://api.getemboss.ai/mcp. In Claude Code, run: claude mcp add --transport http emboss https://api.getemboss.ai/mcp
How do I add Emboss to ChatGPT?
ChatGPT can use remote MCP servers as connectors. In ChatGPT settings, under Apps and Connectors, turn on developer mode if asked, create a new connector and paste https://api.getemboss.ai/mcp.
How do I add Emboss to Cursor?
Open Cursor settings, go to MCP, choose "Add new MCP server" (or edit ~/.cursor/mcp.json) and add: { "mcpServers": { "emboss": { "url": "https://api.getemboss.ai/mcp" } } }
Does Emboss work right now?
Yes. It responded when we last checked on 31 Oct 2026. We check remote MCP servers every day.
What can Emboss do?
It gives your AI 28 tools, including list_forms, get_form, find_form, get_usage, create_form. The full list is on this page.
Is this your server? Get the badge for your README
Markdown (GitHub README)
[](https://chen.media/mcp/github-edwinorange-emboss)HTML (switches to dark mode on its own)
<a href="https://chen.media/mcp/github-edwinorange-emboss"><picture><source media="(prefers-color-scheme: dark)" srcset="https://chen.media/mcp/badge/github-edwinorange-emboss.svg?theme=dark"><img src="https://chen.media/mcp/badge/github-edwinorange-emboss.svg" alt="Listed on chen.media/mcp" height="40"></picture></a>More in Developer tools
See allAlgolia ProductivityVerified maker
@algoliaConnect LLM tools to your Algolia account with user-scoped access for internal workflows.
GitHubVerified maker
@githubConnect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP devkit serverVerified maker
@mapboxProvides AI assistants with direct access to Mapbox developer APIs and documentation.
GitLabVerified maker
gitlab.comOfficial GitLab MCP Server
Perplexity API PlatformVerified maker
perplexity.aiReal-time web search, reasoning, and research through Perplexity's API
Valuein — SEC EDGAR Fundamentals & Smart-Money Data
@valueinPoint-in-time, survivorship-free SEC EDGAR fundamentals + smart-money signals for AI agents.