FynePDF
com.fynepdf/fynepdffynepdf.comstreamable-httpv0.1.0Scanned
Compress, merge, convert, OCR, redact and sign PDFs, generate new ones, and read them with AI.
27 tools: 1 can delete or cancel things, 2 do something that can't be undone, 15 change things and 9 only read.
- Reads private data · 9
- Reads text others write · 2
- Can send data out · 3
- No findings
Anlyon alternative
18 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
27 tools
Deletes or cancels 1Claude Code: deny
redact_pdfRemove text for real, not just cover it: name the exact text to remove, or describe it ("all names, emails and account numbers") and FynePDF finds it.No findings
Why it is in this group
- The description's first verb is "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Remove text for real, not just cover it: name the exact text to remove, or describe it ("all names, emails and account numbers") and FynePDF finds it. The result is checked: if any of the text can still be found, nothing is returned. The original file is kept.
Annotations the server declares
- title: Redact PDF
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
Can't be undone 2Claude Code: ask
convert_from_pdfTurn a PDF into Word (.docx), Excel or CSV (tables found on the page), images (PNG/JPEG in a ZIP), Markdown, EPUB, PDF/A (archival), LaTeX, or a grayscale PDF.Can send data outNo findings
Why it is in this group
- The name "convert_from_pdf" says "convert": a word for a change.
- The input addresses people (input.to): what it sends cannot be taken back.
What it can reach
- outboundThe input takes a destination (input.to): what the tool writes goes there.
Description, as the server wrote it Turn a PDF into Word (.docx), Excel or CSV (tables found on the page), images (PNG/JPEG in a ZIP), Markdown, EPUB, PDF/A (archival), LaTeX, or a grayscale PDF. For tables read by AI (scans, bank statements), use extract_data.
Annotations the server declares
- title: Convert a PDF
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
merge_pdfsJoin PDFs into one, in the order given (file_ids, then files, then file_urls).No findings
Why it is in this group
- The name "merge_pdfs" says "merge": a word for a change that another call does not undo.
Description, as the server wrote it Join PDFs into one, in the order given (file_ids, then files, then file_urls). Each part gets a bookmark with its name.
Annotations the server declares
- title: Merge PDFs
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Changes things 15Claude Code: ask
app_readyFynePDF's in-chat cards say once which host bridge they run in, for diagnosis.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it FynePDF's in-chat cards say once which host bridge they run in, for diagnosis. Not for conversation.
Annotations the server declares
- title: Card ready
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
ask_pdfAnswer a question from the document only, citing pages.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Answer a question from the document only, citing pages. Every quote is checked against the page text (verified: false marks one that couldn't be found).
Annotations the server declares
- title: Ask a PDF
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
compress_pdfMake a PDF smaller: at a level (low, medium, high) or under a target size in MB.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Make a PDF smaller: at a level (low, medium, high) or under a target size in MB. The result says whether the target was met.
Annotations the server declares
- title: Compress PDF
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
convert_to_pdfMake a PDF from Word, Excel or PowerPoint files, images (one page each, in order), an EPUB, or a public web page (url).Reads text others writeCan send data outNo findings
Why it is in this group
- The name "convert_to_pdf" says "convert": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Make a PDF from Word, Excel or PowerPoint files, images (one page each, in order), an EPUB, or a public web page (url). For content you write yourself, use create_pdf.
Annotations the server declares
- title: Convert to PDF
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
create_pdfTurn Markdown or HTML you write into a well-set PDF: a report, invoice, letter, resume or plain document.No findings
Why it is in this group
- The name "create_pdf" says "create": a word for a change.
Description, as the server wrote it Turn Markdown or HTML you write into a well-set PDF: a report, invoice, letter, resume or plain document. Tables, headings, lists, images by URL and page breaks work; header, footer and page numbers are optional. For an invoice, resume or letter, prefer data (the fields, with template set to match): it is laid out properly, and an invoice is added up for you (leave out amounts, subtotal, tax or total to have them worked out; give them and they are checked). extract_data's invoice result can be passed as data as it is. Use it whenever the person wants a document they can download, print or send.
Annotations the server declares
- title: Create a PDF
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
edit_pagesChange a PDF's pages (counted from 1): delete pages, keep only some pages, put pages in a new order (pages left out are dropped), or rotate all pages or a range.No findings
Why it is in this group
- The name "edit_pages" says "edit": a word for a change.
Description, as the server wrote it Change a PDF's pages (counted from 1): delete pages, keep only some pages, put pages in a new order (pages left out are dropped), or rotate all pages or a range.
Annotations the server declares
- title: Edit pages
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
import_file_from_urlFetch a PDF, Office file, image or EPUB from a public link into FynePDF and get its file_id.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "import_file_from_url" says "import": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Fetch a PDF, Office file, image or EPUB from a public link into FynePDF and get its file_id.
Annotations the server declares
- title: Import a file from a URL
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
ocr_pdfAdd a text layer to scanned pages, so the text can be searched, copied and read by AI.No findings
Why it is in this group
- The description's first verb is "add": a word for a change.
Description, as the server wrote it Add a text layer to scanned pages, so the text can be searched, copied and read by AI.
Annotations the server declares
- title: OCR: make a scan searchable
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
protect_pdflock: add a password needed to open it.No findings
Why it is in this group
- The description's first verb is "lock": a word for a change.
Description, as the server wrote it lock: add a password needed to open it. unlock: remove a password you know. flatten: burn form fields and annotations into the page so they can't be changed.
Annotations the server declares
- title: Lock, unlock or flatten a PDF
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
save_to_libraryKeep a result in the person's FynePDF Library (fynepdf.com/library), so it isn't deleted after 24 hours.No findings
Why it is in this group
- The name "save_to_library" says "save": a word for a change.
Description, as the server wrote it Keep a result in the person's FynePDF Library (fynepdf.com/library), so it isn't deleted after 24 hours.
Annotations the server declares
- title: Save to Library
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
sign_pdfStamp a signature image (PNG or JPEG) on a page: at a named spot (bottom-right by default) or at x and y in points from the top-left corner.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Stamp a signature image (PNG or JPEG) on a page: at a named spot (bottom-right by default) or at x and y in points from the top-left corner.
Annotations the server declares
- title: Sign a PDF
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
smart_editDescribe the change ("remove the blank pages, number the rest and make it PDF/A"): FynePDF plans the steps from its actions, checks the plan, and runs it.No findings
Why it is in this group
- The name "smart_edit" says "edit": a word for a change.
Description, as the server wrote it Describe the change ("remove the blank pages, number the rest and make it PDF/A"): FynePDF plans the steps from its actions, checks the plan, and runs it. With run false it only returns the plan.
Annotations the server declares
- title: Edit a PDF by instruction
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
split_pdfSplit a PDF into parts by page ranges ("1-3", "4", "5-9") or into parts no bigger than max_part_mb.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Split a PDF into parts by page ranges ("1-3", "4", "5-9") or into parts no bigger than max_part_mb. Returns a ZIP of the parts.
Annotations the server declares
- title: Split PDF
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
stamp_pdfNumber the pages, stamp a text watermark on every page, or both in one go.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Number the pages, stamp a text watermark on every page, or both in one go. Page number format uses %d twice, e.g. "Page %d of %d".
Annotations the server declares
- title: Add page numbers or a watermark
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
upload_fileBring a file into FynePDF.No findings
Why it is in this group
- The name "upload_file" says "upload": a word for a change.
Description, as the server wrote it Bring a file into FynePDF. Shows a drop zone where the app supports it (Claude, ChatGPT, VS Code); it takes several files at once, e.g. for a merge, and reports their file_ids in order. With file_name and size_bytes it also returns a signed upload_url and a ready curl command, for a code sandbox or agent to PUT the bytes; the file_id works once the upload is done. ChatGPT users can just pass the attached file to any tool instead.
Annotations the server declares
- title: Upload a file
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Only reads 9Show 9 read-only tools
extract_dataRead structured data with AI and check it in code: invoice (fields, lines and totals, added up), statement (bank transactions, balances compared), tables (every table, cell by cell…Reads private dataNo findings
Why it is in this group
- The description's first verb is "read": a word for reading.
What it can reach
- private-dataThe description's first sentence says "read" and "table": it reads databases.
- private-dataThe input names a file (input.file_id), and the tool reads: it reads files.
Description, as the server wrote it Read structured data with AI and check it in code: invoice (fields, lines and totals, added up), statement (bank transactions, balances compared), tables (every table, cell by cell), or schema (your own JSON Schema). Output json returns the data here; excel or csv also makes a spreadsheet file (tables and statement).
Annotations the server declares
- title: Extract data from a PDF
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_fileA file's details and a fresh download link (valid 1 hour).Reads private dataNo findings
Why it is in this group
- The name "get_file" says "get": a word for reading.
What it can reach
- private-dataThe name "get_file" says "get" and "file": it reads files.
- private-dataThe description's first sentence says "file": it reads files.
- private-dataThe input names a file (input.file_id), and the tool reads: it reads files.
Description, as the server wrote it A file's details and a fresh download link (valid 1 hour).
Annotations the server declares
- title: Get a file
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_jobCheck a job that was still running, and get its files when it's done.Reads private dataNo findings
Why it is in this group
- The name "get_job" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "file": it reads files.
Description, as the server wrote it Check a job that was still running, and get its files when it's done. Waits up to 50 seconds by default.
Annotations the server declares
- title: Get a job
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_actionsEvery action FynePDF can run on a file (the REST API's job steps), with what it takes, what it makes and its price in API credits.Reads private dataNo findings
Why it is in this group
- The name "list_actions" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "file": it reads files.
Description, as the server wrote it Every action FynePDF can run on a file (the REST API's job steps), with what it takes, what it makes and its price in API credits.
Annotations the server declares
- title: List FynePDF actions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_filesFiles on FynePDF from the last 24 hours, newest first: what the person dropped in the upload box, other uploads and imports, and results.Reads private dataNo findings
Why it is in this group
- The name "list_files" says "list": a word for reading.
What it can reach
- private-dataThe name "list_files" says "list" and "file": it reads files.
- private-dataThe description's first sentence says "file": it reads files.
Description, as the server wrote it Files on FynePDF from the last 24 hours, newest first: what the person dropped in the upload box, other uploads and imports, and results. Use it to find the file_id of a file the person says they uploaded, by its name.
Annotations the server declares
- title: List recent files
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_library_filesFiles saved in the person's FynePDF Library, newest first (pinned on top).Reads private dataNo findings
Why it is in this group
- The name "list_library_files" says "list": a word for reading.
What it can reach
- private-dataThe name "list_library_files" says "list" and "file": it reads files.
- private-dataThe description's first sentence says "file": it reads files.
Description, as the server wrote it Files saved in the person's FynePDF Library, newest first (pinned on top). Pass an id as library_file_id to any tool.
Annotations the server declares
- title: List Library files
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
preview_fileThe first pages of a PDF as images, for FynePDF's result viewer.Reads private dataNo findings
Why it is in this group
- The name "preview_file" says "preview": a word for reading.
What it can reach
- private-dataThe name "preview_file" says "preview" and "file": it reads files.
- private-dataThe input names a file (input.file_id), and the tool reads: it reads files.
Description, as the server wrote it The first pages of a PDF as images, for FynePDF's result viewer. Not needed in conversation: use get_file for a link.
Annotations the server declares
- title: Preview a PDF
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_docsSearch the FynePDF API and MCP documentation: actions, parameters, pricing, files, jobs and errors.Reads private dataNo findings
Why it is in this group
- The name "search_docs" says "search": a word for reading.
What it can reach
- private-dataThe name "search_docs" says "search" and "doc": it reads documents.
- private-dataThe description's first sentence says "search" and "file": it reads files.
Description, as the server wrote it Search the FynePDF API and MCP documentation: actions, parameters, pricing, files, jobs and errors.
Annotations the server declares
- title: Search FynePDF docs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
summarize_pdfA plain summary and key points, each with the pages it comes from.Reads private dataNo findings
Why it is in this group
- The name "summarize_pdf" says "summarize": a word for reading.
What it can reach
- private-dataThe input names a file (input.file_id), and the tool reads: it reads files.
Description, as the server wrote it A plain summary and key points, each with the pages it comes from.
Annotations the server declares
- title: Summarize a PDF
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
54 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 2 untrusted-input tools breaks every one.
- Reads private data9
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write2
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out3
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__fynepdf__convert_to_pdf",
"mcp__fynepdf__import_file_from_url"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
No check matched anything in these tool definitions. That is not a safety guarantee.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 0.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http fynepdf https://api.fynepdf.com/mcpclaude mcp add --transport http fynepdf https://api.fynepdf.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__fynepdf__search_docs",
"mcp__fynepdf__list_actions",
"mcp__fynepdf__preview_file",
"mcp__fynepdf__get_file",
"mcp__fynepdf__list_library_files",
"mcp__fynepdf__list_files",
"mcp__fynepdf__summarize_pdf",
"mcp__fynepdf__extract_data",
"mcp__fynepdf__get_job"
],
"ask": [
"mcp__fynepdf__app_ready",
"mcp__fynepdf__upload_file",
"mcp__fynepdf__import_file_from_url",
"mcp__fynepdf__save_to_library",
"mcp__fynepdf__merge_pdfs",
"mcp__fynepdf__split_pdf",
"mcp__fynepdf__edit_pages",
"mcp__fynepdf__stamp_pdf",
"mcp__fynepdf__compress_pdf",
"mcp__fynepdf__protect_pdf",
"mcp__fynepdf__convert_from_pdf",
"mcp__fynepdf__convert_to_pdf",
"mcp__fynepdf__ocr_pdf",
"mcp__fynepdf__create_pdf",
"mcp__fynepdf__sign_pdf",
"mcp__fynepdf__ask_pdf",
"mcp__fynepdf__smart_edit"
],
"deny": [
"mcp__fynepdf__redact_pdf"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as fynepdf. Review it before you use it.
Capability tags behind 12 rules
- mcp__fynepdf__search_docs private-data
- mcp__fynepdf__list_actions private-data
- mcp__fynepdf__preview_file private-data
- mcp__fynepdf__import_file_from_url untrusted-input, outbound
- mcp__fynepdf__get_file private-data
- mcp__fynepdf__list_library_files private-data
- mcp__fynepdf__list_files private-data
- mcp__fynepdf__convert_from_pdf outbound
- mcp__fynepdf__convert_to_pdf untrusted-input, outbound
- mcp__fynepdf__summarize_pdf private-data
- mcp__fynepdf__extract_data private-data
- mcp__fynepdf__get_job private-data
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/com.fynepdf/fynepdf/verify?hash=bb4c8fa2c8a49ec285c2ff4ceac511f1247db4ba0a2905e7903b2a500efe867a" | jq -e '.changed == false'Pinned hash bb4c8fa2c8a4, from Nov 1, 2026, 16:17 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/com.fynepdf/fynepdf/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/com.fynepdf/fynepdf)Source: MCP Registry · repository. Synced Nov 1, 2026, 16:17 UTC.