npm pdfops-mcpstdioMITupdated 12d ago
MCP server that gives AI agents deterministic PDF tools, backed by the PDFops API: inspect AcroForm fields, fill forms, merge PDFs, and generate invoices โ no Chromium, no native deps, nothing to host.
What can you do with pdfops mcp?
pdfops-mcp
MCP server that gives AI agents deterministic PDF tools, backed by the PDFops API: inspect AcroForm fields, fill forms, merge PDFs, and generate invoices โ no Chromium, no native deps, nothing to host.
Tools operate on local file paths, so PDF bytes never transit the model context: your agent says "fill /tmp/form.pdf and save to /tmp/out.pdf" and gets a one-line confirmation back.
Install
Claude Code
claude mcp add pdfops -- npx -y pdfops-mcp
Claude Desktop (claude_desktop_config.json) / Cursor (.cursor/mcp.json)
{
"mcpServers": {
"pdfops": {
"command": "npx",
"args": ["-y", "pdfops-mcp"],
"env": { "PDFOPS_API_KEY": "pdfops_live_โฆ" }
}
}
}
PDFOPS_API_KEY is optional โ without it you get the keyless trial (100 requests/IP/month). A free key (250/month, no card) takes one field at pdfops.dev/pricing.
Tools
| Tool | What it does |
|---|---|
pdf_inspect |
List a PDF's form fields (names, types, options, values) + a paste-ready fill template. Call first on unfamiliar PDFs. |
pdf_fill |
Fill AcroForm fields โ write the filled PDF. Optional flatten bakes values in and drops the form. |
pdf_merge |
Merge โฅ2 PDFs in order โ write the result. |
pdf_invoice |
Structured data โ complete invoice PDF. Deterministic: same input, byte-identical output. |
pdfops_usage |
Quota check for the configured key. |
Example agent flow
"Fill the W-9 template at ~/docs/w9.pdf for Ada Lovelace and merge it with ~/docs/cover.pdf"
pdf_inspectโ discovers field names + fill templatepdf_fillโ writes the filled W-9pdf_mergeโ writes the combined packet
Links
API docs: pdfops.dev/docs ยท OpenAPI: pdfops.dev/openapi.json ยท Typed client: pdfops-sdk ยท Questions: hello@pdfops.dev
MIT ยฉ PDFops
Install
Add pdfops mcp to your client. Pick the one you use.
claude mcp add pdfops-mcp -- npx -y pdfops-mcpcodex mcp add pdfops-mcp -- npx -y pdfops-mcpamp mcp add pdfops-mcp -- npx -y pdfops-mcp{
"mcpServers": {
"pdfops-mcp": {
"command": "npx",
"args": [
"-y",
"pdfops-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"pdfops-mcp": {
"command": "npx",
"args": [
"-y",
"pdfops-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"pdfops-mcp","command":"npx","args":["-y","pdfops-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"pdfops-mcp": {
"command": "npx",
"args": [
"-y",
"pdfops-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"pdfops-mcp": {
"command": "npx",
"args": [
"-y",
"pdfops-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"pdfops-mcp": {
"command": "npx",
"args": [
"-y",
"pdfops-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"pdfops-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"pdfops-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"pdfops-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"pdfops-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y pdfops-mcpRun `goose configure`, choose **Add Extension โ Command-line Extension**, and paste this command.
5 tools
pdfops mcp exposes 5 tools to a connected agent.
- pdf_inspect
- List a PDF's form fields (names, types, options, values) + a paste-ready fill template. Call first on unfamiliar PDFs.
- pdf_fill
- Fill AcroForm fields โ write the filled PDF. Optional `flatten` bakes values in and drops the form.
- pdf_merge
- Merge โฅ2 PDFs in order โ write the result.
- pdf_invoice
- Structured data โ complete invoice PDF. Deterministic: same input, byte-identical output.
- pdfops_usage
- Quota check for the configured key.
Score
81 / 100
Excellent
- Documentation22/25
- Maintenance25/25
- Trust16/20
- Capability6/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 4 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 5 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.2.1Latest | Aug 27, 2026 |
| 0.2.0 | Aug 6, 2026 |
| 0.1.1 | Jul 22, 2026 |