Renders PDFs and images from templates, validates data, and converts Office files to PDF using various document processing tools.
Also known as formfeed-dev/formfeed, @formfeed/mcp
- Stars
- 1
- Tools
- —
- Downloads, 30 days
- 2,013
- Latest version
- 0.3.26
- Last commit
- Nov 10, 2026
- License
- MIT
What is Formfeed MCP?
Formfeed renders PDFs and images from templates, validates data, and converts Office files to PDF using various document processing tools.
Summary generated from the project's README
About Formfeed MCP server
Formfeed provides a suite of twelve tools designed for document processing, template management, and data validation. Developers can use this server with clients like Claude Desktop, Cursor, or Claude Code via stdio or through a hosted HTTP endpoint. The server allows agents to list templates, retrieve schemas, and validate data against specific templates. It also handles complex conversions such as turning Markdown into PDF files or converting Word, Excel, and PowerPoint documents into PDF format.
Users can manage templates using tools like save_template and get_template_source, though writing changes requires specific permissions or a template:write key. The server supports both offline and online operations. Without an API key, it performs offline checks like validate_template and check_invoice. When a FORMFEED_API_KEY is provided, it enables advanced features like rendering e-invoices and converting Office files. Users can manage their usage and workspaces through get_workspace to monitor remaining units.
What you can do with it
- 1Convert Office documents to PDFTransform Word, Excel, or PowerPoint files into PDF format using the convert_to_pdf tool.
- 2Validate e-invoice complianceCheck if a ZUGFeRD or Factur-X e-invoice block complies with the EN 16931 standard.
- 3Convert Markdown to PDFTurn a Markdown document into a PDF file with accompanying images.
Written from the project's README. Every use case is checked against a quote from it.
How to install Formfeed MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall Formfeed MCP in Claude Code
$ claude mcp add --env 'FORMFEED_API_KEY=<YOUR_FORMFEED_API_KEY>' formfeed -- npx -y @formfeed/mcpInstall Formfeed MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"formfeed": {
"command": "npx",
"args": [
"-y",
"@formfeed/mcp"
],
"env": {
"FORMFEED_API_KEY": "<YOUR_FORMFEED_API_KEY>"
}
}
}
}Install Formfeed MCP in VS Code
.vscode/mcp.json
{
"servers": {
"formfeed": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@formfeed/mcp"
],
"env": {
"FORMFEED_API_KEY": "<YOUR_FORMFEED_API_KEY>"
}
}
}
}Install Formfeed MCP in VS Code CLI
$ code --add-mcp '{"name":"formfeed","type":"stdio","command":"npx","args":["-y","@formfeed/mcp"],"env":{"FORMFEED_API_KEY":"<YOUR_FORMFEED_API_KEY>"}}'Install Formfeed MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"formfeed": {
"command": "npx",
"args": [
"-y",
"@formfeed/mcp"
],
"env": {
"FORMFEED_API_KEY": "<YOUR_FORMFEED_API_KEY>"
}
}
}
}Install Formfeed MCP in Codex
$ codex mcp add formfeed --env 'FORMFEED_API_KEY=<YOUR_FORMFEED_API_KEY>' -- npx -y @formfeed/mcpInstall Formfeed MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.formfeed] command = "npx" args = ["-y", "@formfeed/mcp"] [mcp_servers.formfeed.env] FORMFEED_API_KEY = "<YOUR_FORMFEED_API_KEY>"
Install Formfeed MCP in Gemini CLI
$ gemini mcp add -s user -e 'FORMFEED_API_KEY=<YOUR_FORMFEED_API_KEY>' formfeed npx -- -y @formfeed/mcpInstall Formfeed MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"formfeed": {
"command": "npx",
"args": [
"-y",
"@formfeed/mcp"
],
"env": {
"FORMFEED_API_KEY": "<YOUR_FORMFEED_API_KEY>"
}
}
}
}Configuration
FORMFEED_API_KEYSecretFormfeed API key: ff_test_… renders for free (with a test mark on the Free plan), ff_live_… consumes units. Without one, only validate_template with html and check_invoice work
FORMFEED_REGIONAPI region of the workspace
| Name | Description | |
|---|---|---|
| FORMFEED_API_KEY | Formfeed API key: ff_test_… renders for free (with a test mark on the Free plan), ff_live_… consumes units. Without one, only validate_template with html and check_invoice work | Secret |
| FORMFEED_REGION | API region of the workspace |
Automated checks
Ran Nov 13, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablePass
- Open source license (OSI)Pass
- Commit or release in the last yearPass
- Package name not close to a popular packagePass
- Remote endpoint uses HTTPSPass
- Destructive tools are labelledNot checked
- No hidden instructions to the modelPass
- No critical advisory in the package or its dependenciesPass
README
View on GitHub@formfeed/mcp
Model Context Protocol server for Formfeed.
Gives Claude, Cursor and other agents twelve tools: list_templates, get_template_schema,
validate_template (free: the data against the template's schema, ad-hoc HTML offline), check_invoice (free and offline: the
_invoice block of a ZUGFeRD / Factur-X e-invoice against EN 16931), render (with einvoice, the PDF becomes that e-invoice; an
image comes back as a picture the agent can look at),
validate_einvoice (which rules an e-invoice XML passed, by which validator: a render's stored report for free, or an XML
Formfeed did not make, counted per day), markdown_to_pdf (a Markdown document to PDF on every plan; over stdio a file
with the pictures beside it), convert_to_pdf (Word, Excel, PowerPoint and OpenDocument to PDF), get_render, get_workspace (which workspace the
server works in, and the units left), get_template_source and save_template (a new template or a change as a draft,
which a person publishes in Formfeed; needs template:write on the key, or the person's permission for a signed-in agent).
stdio (Claude Desktop, Cursor, Claude Code)
{
"mcpServers": {
"formfeed": {
"command": "npx",
"args": ["-y", "@formfeed/mcp"],
"env": { "FORMFEED_API_KEY": "ff_test_…" }
}
}
}
A test key renders for free (on the Free plan with a test mark); a live key consumes units.
Without FORMFEED_API_KEY the server starts too, with the offline checks only: validate_template
with html and engine, and check_invoice. FORMFEED_REGION=us or FORMFEED_BASE_URL select
another API host.
Hosted (Streamable HTTP)
https://mcp.formfeed.dev/mcp takes Authorization: Bearer ff_…, or signs in with your Formfeed
account when no key is sent (OAuth; the client opens the browser, and you choose the workspace the
agent works in). https://mcp.formfeed.dev/mcp/<workspace id> pins another workspace for a signed-in
client. Self-host the same endpoint with formfeed-mcp --http --port 8790, plus --auth-server <issuer>
for OAuth sign-in against your own Supabase Auth.
Claude Code installs the hosted server together with two skills for writing and checking templates as Formfeed's plugin, from formfeed-dev/skills: https://docs.formfeed.dev/devkit/coding-agents
Documentation: https://docs.formfeed.dev/integrations/mcp
Formfeed MCP questions
How do I add Formfeed MCP to Claude Code?
Run claude mcp add --env 'FORMFEED_API_KEY=<YOUR_FORMFEED_API_KEY>' formfeed -- npx -y @formfeed/mcp in your terminal. Add --scope user to make it available in every project.
How do I add Formfeed MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What file formats can be converted to PDF?
The server can convert Word, Excel, PowerPoint, and OpenDocument files to PDF.
How does the server handle Markdown files?
It can convert Markdown documents to PDF, providing a file along with its pictures when used over stdio.
How can I authenticate with the hosted version?
The hosted server accepts a Bearer token or allows signing in with a Formfeed account via OAuth.