Skip to main content
Glama

conv2pdf-mcp

Official Model Context Protocol server of the conv2pdf API. Your AI assistant converts Word, Excel, PowerPoint, Pages, images and e-books to PDF, converts PDFs to Word or to images, and merges, compresses, protects, rotates or numbers the PDFs that are on your computer. Processing runs on OVHcloud servers in France: no transfer outside the EU, no US service in the chain.

Installation · Tools · How it behaves · Development

Installation

  1. Create an account on conv2pdf.com. The Dev plan includes 300 free conversions, valid for 12 months; see pricing for the paid plans.

  2. Create an API key, which starts with cpdf_live_, in the Developer tab of your dashboard. conv2pdf shows it only once, at creation.

  3. Add the server to your MCP client, with the key in the CONV2PDF_API_KEY environment variable. It needs Node.js 22 or later.

In Claude Code:

claude mcp add --env CONV2PDF_API_KEY=cpdf_live_... --transport stdio conv2pdf -- npx -y conv2pdf-mcp

On Windows, put cmd /c before npx.

In Claude Desktop, Cursor and the other clients configured with a JSON file:

{
  "mcpServers": {
    "conv2pdf": {
      "command": "npx",
      "args": ["-y", "conv2pdf-mcp"],
      "env": { "CONV2PDF_API_KEY": "cpdf_live_..." }
    }
  }
}

Or, in Claude Code, install the plugin: the same server, with a skill that tells the assistant which tool to call, in which order, and what a call costs.

/plugin marketplace add jamalofski/conv2pdf-mcp
/plugin install conv2pdf@conv2pdf

Claude Code asks for the API key when the plugin is enabled, and keeps it in the credential store of the system, not in a settings file. To set it later, run /plugin configure conv2pdf@conv2pdf, or open /plugin, Installed tab, conv2pdf, Configure options. A server you added by hand with the npx -y conv2pdf-mcp command takes precedence over the one of the plugin.

For another agent that loads SKILL.md skills, add the server as above and take the skill alone: plugin/skills/conv2pdf/SKILL.md in this repository, also listed on Agensi.

Then ask for what you need: "convert report.docx to PDF", "merge these three PDFs", "compress scan.pdf and protect it with a password".

Related MCP server: PDF MCP Server

Tools

Tool

What it does

convert_to_pdf

Word, Excel, PowerPoint, OpenDocument, Apple Pages, RTF, TXT, CSV, PNG, JPG, WebP, GIF, TIFF, HEIC or EPUB file to PDF, chosen from the extension

convert_heic_to_jpg

iPhone HEIC or HEIF photo to JPG

convert_pdf_to_word

PDF with real text to an editable DOCX document

convert_pdf_to_images

One PNG or JPG per page, in a ZIP file

merge_pdfs

Combine several PDFs into one, in the order given

extract_pdf_pages

Keep the pages you list, such as 1-5,7,10-12, in a new PDF

rotate_pdf

Turn every page by 90, 180 or 270 degrees

add_page_numbers

Number the pages, as "3 / 12" or "3", bottom center, left or right

add_watermark

Stamp a text of up to 50 characters on every page

compress_pdf

Reduce the size, keeping images at 72, 150 or 300 DPI

protect_pdf

Set a password, and optionally forbid printing or copying

unlock_pdf

Remove a password you know, or the printing and copying restrictions

get_quota

Plan, usage and limits of the API key

How it behaves

  • Files stay on your computer, except for the conversion. A tool takes the path of a file, sends the file to conv2pdf and writes the result on your disk. conv2pdf checks the content of the file, not only its name.

  • Nothing is overwritten. The result goes next to the input file: report.docx gives report.pdf, and a PDF tool adds a suffix, such as report-compressed.pdf. When that name is taken, the server writes report (2).pdf. The assistant can choose the place with output_path; if a file is already there, the tool refuses before converting anything.

  • Deleted from the server. Once the result is on your disk, the server deletes the job from conv2pdf. Should that fail, conv2pdf deletes the files after one hour.

  • Quota. Each conversion counts as one in the quota of your plan, including one that conv2pdf refuses after reading the file, such as an unreadable or scanned PDF, or one with too many pages. A file refused on arrival (wrong type, too large, password missing), a refused setting (a page range that does not exist, a password that is too short) and a failure on the side of conv2pdf count for nothing, and get_quota is free. Files can weigh up to 10 MB on the Dev plan and 200 MB on paid plans.

  • Rate limit. The API accepts 20 conversions per minute per API key. When it asks to slow down, or when its queue is full, the server waits for the delay the API gives and tries again, twice at most and only for delays of 30 seconds or less; otherwise the assistant gets the delay to wait.

  • Protected PDFs. The tools that read a PDF, except merge_pdfs, open one that asks for a password when the assistant passes it as password. The result has no password. For a merge, unlock the protected PDFs first.

  • Pages and Numbers. A Pages document keeps its .pages extension: only the name tells it from a Numbers spreadsheet, which conv2pdf does not convert, like Keynote presentations.

  • Errors. A refusal comes back to the assistant as a sentence it can act on: the wrong password, the page range that does not exist, the plan limit, the key to set. A cancelled call stops the transfer and leaves no file behind.

  • Without a key. The server starts and lists its tools; a call explains how to set CONV2PDF_API_KEY.

Every request carries User-Agent: conv2pdf-mcp/<version>. Mention it when you contact support: it tells your calls apart in the API's logs.

Development

The server has no dependency: Node.js runs the sources as they are. It talks to its client over stdio and serves both eras of the protocol from the same process: revision 2026-07-28, where each request carries its protocol version, and the earlier revisions (2025-11-25 down to 2024-11-05), which start with an initialize handshake.

npm test

runs the tests against a fake conv2pdf API on a local port: no key and no network are needed.

npm run check-tools

compares the extensions convert_to_pdf routes on with what the live API accepts (GET /v1/tools).

Plugin

plugin/ holds the Claude Code plugin: its manifest, the .mcp.json that starts the published package with npx, and the skill, plugin/skills/conv2pdf/SKILL.md. .claude-plugin/marketplace.json is the catalog that lets Claude Code install the plugin from this repository. Neither is part of the npm package. npm test checks that the plugin is at the version of the package and that the skill names the tools the server has.

claude plugin validate . --strict
claude --plugin-dir ./plugin

check the manifests, then start a session with the plugin loaded from the folder, without installing it. A user gets a change of the plugin or of the skill when the version changes: it ships with a release.

Releasing

  1. Set the version in package.json, server.json and plugin/.claude-plugin/plugin.json, and date its section in CHANGELOG.md.

  2. Run npm test and npm run check-tools.

  3. Commit, then push a tag named after the version: the Publish workflow publishes the package to npm through Trusted Publishing, with a provenance statement.

  4. Publish the entry of the MCP Registry: mcp-publisher login http --domain conv2pdf.com, then mcp-publisher publish. The name com.conv2pdf/conv2pdf is proved by the public key served at https://conv2pdf.com/.well-known/mcp-registry-auth.

  5. When the skill changed, upload it again to its Agensi listing, as a new version: a ZIP of a conv2pdf/ folder that holds the SKILL.md. Nothing updates the listing from this repository.

Resources

Support

Open an issue or write to contact@conv2pdf.com.

License

MIT, see LICENSE.

Available Tools

13 tools
add_page_numbersAdd Page Numbers to PDFA

Prints the page number at the bottom of every page of a PDF. The file is uploaded to conv2pdf and the call counts as one conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNofull prints the page and the total, as "3 / 12"; simple prints "3". Default: full.
passwordNoPassword of the PDF, only if it asks for one to open. The result has no password.
positionNoWhere the number goes. Default: bottom-center.
input_pathYesPath of the file on this computer: absolute, or relative to the working directory of the server.
output_pathNoWhere to write the result. Optional: by default next to the input file, under a name that is not taken. An existing file is never overwritten.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-read-only, open-world, non-idempotent, non-destructive, but the description adds two facts annotations cannot: the file leaves the machine and is uploaded to conv2pdf, and the call consumes one conversion credit. It does not mention overwrite behavior or password handling beyond the schema, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero padding, and the core action is front-loaded before the operational caveat about upload and quota. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does not explain the return value or where the result lands, though the schema covers output_path/default naming and non-overwrite. The quota and upload disclosure fills the biggest annotation gap; only result-shape detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter (format, password, position, input_path, output_path) is documented in the schema, so the baseline is 3. The description adds no format, position, or password semantics beyond what is already there.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('adds/prints the page number ... of a PDF') with exact scope ('at the bottom of every page'), which separates it cleanly from siblings like add_watermark and rotate_pdf that also modify a PDF. An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never says when to choose this over alternatives such as add_watermark (also stamps content on pages) or when it is inappropriate (e.g., already-numbered documents). Usage is only implied by the operation itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_watermarkAdd Watermark to PDFA

Stamps a text diagonally across every page of a PDF. The file is uploaded to conv2pdf and the call counts as one conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText of the watermark, such as CONFIDENTIAL: 50 characters at most, Latin letters, digits and punctuation.
passwordNoPassword of the PDF, only if it asks for one to open. The result has no password.
input_pathYesPath of the file on this computer: absolute, or relative to the working directory of the server.
output_pathNoWhere to write the result. Optional: by default next to the input file, under a name that is not taken. An existing file is never overwritten.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (destructiveHint=false, idempotentHint=false, openWorldHint=true), so the description is judged on what it adds. It adds two genuinely non-obvious traits: the file is uploaded to an external service (conv2pdf) and the call consumes one conversion/quota unit. It does not discuss overwrite behavior or failure modes, which the schema partially covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and followed by the two side effects an agent most needs (external upload, quota cost). No filler and nothing redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema, the description supplies the operation's scope plus the two non-schema facts (upload destination and quota consumption). Remaining details like output naming and password handling are adequately covered by the schema, leaving only minor gaps around failure behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (text, password, input_path, output_path) are already documented with constraints such as the 50-character limit and the no-overwrite rule. The description adds nothing parameter-specific, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (stamps) and resource (text watermark across every page of a PDF), with the visual effect ('diagonally across every page') distinguishing it from neighbours like add_page_numbers or rotate_pdf. It does not name a sibling explicitly, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no exclusion such as when to prefer add_page_numbers or protect_pdf instead. The only routing-adjacent information is that the call consumes a conversion, which is cost, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compress_pdfCompress PDFA

Reduces the size of a PDF by lowering the resolution of its images. The file is uploaded to conv2pdf and the call counts as one conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
qualityNoResolution kept for the images: low is 72 DPI and gives the smallest file, medium 150 DPI, high 300 DPI. Default: medium.
passwordNoPassword of the PDF, only if it asks for one to open. The result has no password.
input_pathYesPath of the file on this computer: absolute, or relative to the working directory of the server.
output_pathNoWhere to write the result. Optional: by default next to the input file, under a name that is not taken. An existing file is never overwritten.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare openWorldHint=true and readOnlyHint=false. The description adds genuinely new behavioral facts beyond them: the file leaves the machine to be uploaded to conv2pdf, the call consumes one conversion from a quota, and password-protected inputs yield an unprotected result. It stops short of stating what is returned or how long the upload takes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler; the core purpose leads and the operational caveat (external upload, one conversion) follows. Nothing is redundant with the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter conversion tool with no output schema, the definition covers what the operation does and its side effects (upload, quota, password stripped), which is enough to call it safely. It could still say what the caller receives back (e.g., confirmation plus the new file path) to close the last gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% – quality levels, DPI mapping, default, password handling and output_path collision behavior are all documented in the schema. The description adds no parameter detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (reduces the size) and resource (a PDF) plus the mechanism (lowering image resolution), which cleanly separates it from every sibling such as merge_pdfs, rotate_pdf, or extract_pdf_pages. An agent can pick it without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the purpose statement; there is no explicit when-to-use/when-not rule and no routing to an alternative (e.g., a lossless-compression sibling, or a different tool when only page removal is wanted). The one contextual hint given is the quota cost of a conversion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_heic_to_jpgConvert HEIC to JPGA

Converts an iPhone HEIC or HEIF photo to a JPG image. The file is uploaded to conv2pdf and the call counts as one conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
input_pathYesPath of the file on this computer: absolute, or relative to the working directory of the server.
output_pathNoWhere to write the result. Optional: by default next to the input file, under a name that is not taken. An existing file is never overwritten.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare openWorldHint=true and destructiveHint=false, and the description usefully confirms the external-service behavior ('uploaded to conv2pdf') plus the cost model ('counts as one conversion') — quota/billing context the annotations do not convey. It does not restate the non-overwrite guarantee, but that detail lives in the output_path schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the conversion and followed by the context an agent needs (upload destination and quota impact). No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description plus the rich output_path schema make the return contract clear (result written to a path). The quota disclosure covers the main hidden cost; only the upload/network-failure behavior is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with only two parameters, both well documented (path resolution rules, default output naming, no-overwrite guarantee), so the baseline of 3 applies. The description adds no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (converts) and precise resource (iPhone HEIC or HEIF photo to a JPG image), which is enough to separate it from the PDF-centric siblings like convert_to_pdf and convert_pdf_to_images. It stops short of naming any sibling explicitly, but the transformation pair is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'an iPhone HEIC or HEIF photo' tells the agent the input class, but there is no when-to-use, when-not-to-use, or pointer to an alternative converter. Adequate for a narrow single-purpose tool, but the agent gets no routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_pdf_to_imagesConvert PDF to ImagesA

Renders each page of a PDF as an image at 150 DPI. The result is one ZIP archive with an image per page. Up to 100 pages. The file is uploaded to conv2pdf and the call counts as one conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoFormat of the images. Default: png.
passwordNoPassword of the PDF, only if it asks for one to open. The result has no password.
input_pathYesPath of the file on this computer: absolute, or relative to the working directory of the server.
output_pathNoWhere to write the result. Optional: by default next to the input file, under a name that is not taken. An existing file is never overwritten.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare it is not read-only, not idempotent and open-world, and the description usefully adds quota-relevant behavior ('counts as one conversion'), the upload destination, the 100-page limit, and the ZIP output shape. It stops short of describing failure modes or error behavior for invalid/encrypted PDFs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short, front-loaded sentences with no filler: rendering behavior, output artifact, page limit, then quota/upload. Every sentence carries information an agent would otherwise lack.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still explains the return artifact (ZIP with one image per page), the resolution, the page cap, and the quota cost, while the schema covers all four parameters. An agent has what it needs to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so format, password, input_path and output_path are fully documented in the schema; the description adds no parameter-level detail beyond the output-format implication. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (renders) and resource (each page of a PDF as an image) plus concrete parameters of the output: 150 DPI, one image per page, delivered as a single ZIP archive. This clearly separates it from siblings like convert_pdf_to_word and extract_pdf_pages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the tool's function; there is no statement of when to choose this over extract_pdf_pages or convert_to_pdf, and no exclusions or prerequisites beyond noting the 100-page cap. Adequate but with a clear routing gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_pdf_to_wordConvert PDF to WordA

Converts a PDF that contains real text to an editable Word document (DOCX). A scanned PDF, made of images without text, is refused. The file is uploaded to conv2pdf and the call counts as one conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordNoPassword of the PDF, only if it asks for one to open. The result has no password.
input_pathYesPath of the file on this computer: absolute, or relative to the working directory of the server.
output_pathNoWhere to write the result. Optional: by default next to the input file, under a name that is not taken. An existing file is never overwritten.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses behavior well beyond the annotations: the file is uploaded to the external conv2pdf service (matching openWorldHint), the call consumes one conversion credit, and a failed/refused case is defined. This is material operational context an agent cannot infer from {readOnlyHint:false, destructiveHint:false}.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: capability, refusal condition, then side effects (upload + quota). Front-loaded and free of filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description covers the important behavioral gaps itself: the refusal case, the external upload, the quota cost, and the password-free result. An agent has everything needed to call it and interpret failure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (input_path, output_path, password) are already documented in the schema, including defaults and the no-overwrite rule. The description adds no parameter-level detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Converts a PDF ... to an editable Word document (DOCX)') and immediately bounds the input type, distinguishing it from siblings like convert_to_pdf and convert_pdf_to_images. An agent can select this tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear applicability condition: the PDF must contain real text, and a scanned image-only PDF is refused. It does not explicitly name an alternative tool for scanned PDFs or OCR, so it falls short of a true when/when-not routing statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_to_pdfConvert to PDFA

Converts a document, an image or an e-book to PDF: Word, Excel, PowerPoint, OpenDocument, Apple Pages, RTF, TXT, CSV, PNG, JPG, WebP, GIF, TIFF, HEIC and EPUB. The converter is chosen from the extension of the file. The file is uploaded to conv2pdf and the call counts as one conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
input_pathYesPath of the file on this computer: absolute, or relative to the working directory of the server.
output_pathNoWhere to write the result. Optional: by default next to the input file, under a name that is not taken. An existing file is never overwritten.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply generic flags (writes, not idempotent, open world). The description adds real context beyond them: the file is uploaded to an external service (conv2pdf) and the call consumes one conversion from a quota. It stops short of describing outcomes such as whether the source file is modified or what happens to an existing output file.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose; the long format enumeration is dense but directly actionable for judging eligibility. No redundant restatement of the title, though the list could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, yet the description never says what the tool returns (e.g., the path of the generated PDF, which matters because output_path defaults to an auto-generated name). The upload and quota notes cover behavior, but the return contract is left unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the non-overwrite default for output_path, so the baseline is 3. The 'converter is chosen from the extension' statement adds a small amount of meaning about input_path, but no new syntax or constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Converts ... to PDF') and enumerates the exact input formats accepted, so the agent can distinguish it from the reverse-direction siblings like convert_pdf_to_word and convert_pdf_to_images without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the mechanism ('converter is chosen from the extension of the file'), which implicitly defines the applicable inputs, but never states when to prefer this over an alternative or when it will fail. No exclusions or routing guidance to siblings are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_pdf_pagesExtract Pages From PDFA

Keeps some pages of a PDF in a new PDF. The pages keep the order they have in the document. The file is uploaded to conv2pdf and the call counts as one conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesYesPages to keep: numbers and ranges separated by commas, such as 1-5,7,10-12.
passwordNoPassword of the PDF, only if it asks for one to open. The result has no password.
input_pathYesPath of the file on this computer: absolute, or relative to the working directory of the server.
output_pathNoWhere to write the result. Optional: by default next to the input file, under a name that is not taken. An existing file is never overwritten.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the bar is lower. The description adds real context beyond them: the file is uploaded to an external service (conv2pdf) and the call consumes one conversion from the quota, which an agent must know given the sibling get_quota.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, with the core behavior (subset extraction, order preserved) front-loaded before the deployment/quota note. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description covers the operation, output nature (a new PDF), ordering, and the quota/upload side effect; the schema covers file paths and password. Only the exact return value/shape is unstated, which is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema (pages syntax, password handling, input/output path defaults and no-overwrite rule). The description adds no parameter-level detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Keeps some pages of a PDF in a new PDF') and clarifies that page order is preserved, which distinguishes it from siblings like merge_pdfs or rotate_pdf. It does not name an alternative tool, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the clear purpose and the sibling set (extract a subset of pages rather than merge/rotate/convert), but there is no explicit when-to-use or when-not, and nothing pointing an agent to merge_pdfs versus this tool. Adequate but with a clear gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_quotaGet QuotaA
Read-only

Returns the plan of the conv2pdf API key and how many conversions it has used and may still use. Reading the quota is free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavioral context not in the annotations: that reads are free of charge, and what the response contains (plan, used, remaining). It stops short of stating auth requirements or rate limits, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the resource and return contents front-loaded; the free-read note follows as a useful but subordinate detail. Nothing is padded or repeated from the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the right thing by naming what comes back (plan, conversions used, remaining). For a zero-parameter, read-only tool this is essentially sufficient, though it leaves open whether the quota is scoped per key or per account and whether results are cached.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the baseline this dimension is well-served by the schema alone and the description has nothing extra to explain. No parameter documentation is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Returns the plan of the conv2pdf API key and how many conversions it has used and may still use'), which is unambiguous and clearly distinct from all conversion-oriented siblings. An agent can tell it apart from merge_pdfs or compress_pdf without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent infers this is a pre-flight check before spending conversions, but the description never says when to call it or in what order relative to conversion tools. Since no sibling overlaps with quota retrieval, the missing 'when' is a modest gap rather than a confusion risk.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

merge_pdfsMerge PDFsA

Combines several PDFs into one, in the order given. 2 files on the Dev plan, up to 20 on paid plans. The result is written next to the first file. The file is uploaded to conv2pdf and the call counts as one conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
input_pathsYesPaths of the PDFs on this computer, in the order they must appear in the result.
output_pathNoWhere to write the result. Optional: by default next to the input file, under a name that is not taken. An existing file is never overwritten.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnlyHint=false, openWorldHint=true, destructiveHint=false, idempotentHint=false), so the bar is lower. The description still adds meaningful disclosure: files are uploaded to an external service (conv2pdf), the call is metered as one conversion, and the result lands next to the first file. Nothing contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with what the tool does, then cost/limit context. Every sentence carries information, though the 'written next to the first file' clause lightly duplicates the output_path default in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-param tool with no output schema, the description covers destructive behavior (no overwrite), external upload, quota cost, and plan-dependent item limits — enough for an agent to call it correctly. It omits failure modes and any auth requirements for the conv2pdf upload, which are minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (input_paths with min/maxItems, output_path with defaults and no-overwrite behavior) are already fully documented. The description only restates ordering and default placement, adding no syntax or format detail beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Combines several PDFs into one') plus the ordering semantics, which no sibling does — every sibling tool (convert_*, rotate_pdf, compress_pdf, etc.) operates on a single file. An agent can distinguish this from the rest of the list without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives operational context that shapes use: a 2-file minimum on the Dev plan, up to 20 on paid plans, and that the call consumes one conversion from quota. It does not explicitly name when to prefer an alternative, but the resource is unique among siblings so no real disambiguation is required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

protect_pdfProtect PDF With PasswordA

Encrypts a PDF (AES-256) so that it asks for a password to open, and optionally forbids printing or copying. The file is uploaded to conv2pdf and the call counts as one conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYesPassword needed to open the PDF, 6 to 64 characters.
input_pathYesPath of the file on this computer: absolute, or relative to the working directory of the server.
output_pathNoWhere to write the result. Optional: by default next to the input file, under a name that is not taken. An existing file is never overwritten.
prevent_copyNoForbid copying text. Default: false.
prevent_printNoForbid printing. Default: false.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses the encryption algorithm (AES-256), that the file leaves the local machine for conv2pdf, and that the call consumes one conversion from quota - none of which the annotations convey. This is consistent with openWorldHint=true, readOnlyHint=false and destructiveHint=false; no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with no filler; the core behavior is front-loaded and the secondary operational fact (upload + quota) is appended where it belongs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter, non-idempotent mutation with full schema coverage and no output schema, the description covers mechanism, side effects, and cost. Minor residual gaps are error/failure behavior (e.g., what happens if the password is rejected or the upload fails), which an agent would need before relying on it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so password, input_path, output_path, prevent_copy and prevent_print are already fully documented in the schema. The description restates the optional print/copy restrictions but adds no new syntax, format, or default detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Encrypts a PDF') plus a concrete mechanism (AES-256) and the two protection modes, so the agent knows exactly what the tool produces. It does not explicitly contrast itself with the inverse sibling unlock_pdf, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose (add open-password and printing/copying restrictions) and the note that the call is uploaded to conv2pdf and consumes one conversion gives decision-relevant cost context. There is no explicit when-to-use/when-not statement and no reference to alternatives such as unlock_pdf.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rotate_pdfRotate PDFA

Rotates every page of a PDF clockwise. The file is uploaded to conv2pdf and the call counts as one conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordNoPassword of the PDF, only if it asks for one to open. The result has no password.
rotationYesRotation in degrees, clockwise.
input_pathYesPath of the file on this computer: absolute, or relative to the working directory of the server.
output_pathNoWhere to write the result. Optional: by default next to the input file, under a name that is not taken. An existing file is never overwritten.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the write/openWorld/idempotency profile, so the bar is lower. The description adds genuinely useful context beyond them: the file is uploaded to an external service (conv2pdf) and the call is billed as one conversion, which informs quota-sensitive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the primary action front-loaded and no filler. Both sentences carry distinct information (what it does, and the upload/billing side effect).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-operation tool with no output schema and full schema coverage, the description covers the action, direction, and side effects (external upload, quota cost). It omits only return/result details, which are largely implied by output_path in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (input_path, output_path, rotation, password) are already documented, including the non-overwrite behavior. The description only restates the clockwise direction already present in the rotation enum description, adding no new parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Rotates every page of a PDF') plus direction (clockwise) and scope (every page). This clearly distinguishes it from the conversion, merge, and extraction siblings, though it does not name any sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the self-explanatory name and the note that the call 'counts as one conversion' (a quota consideration), but there is no explicit statement of when to use this versus alternatives such as convert_pdf_to_images or extract_pdf_pages for orientation fixes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unlock_pdfUnlock PDFA

Removes the password and the restrictions of a PDF whose password is known. It does not find a forgotten password. The file is uploaded to conv2pdf and the call counts as one conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordNoCurrent password of the PDF. Leave it out for a PDF that opens without a password but restricts printing or copying.
input_pathYesPath of the file on this computer: absolute, or relative to the working directory of the server.
output_pathNoWhere to write the result. Optional: by default next to the input file, under a name that is not taken. An existing file is never overwritten.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), so the description's added value is the external-service disclosure ('uploaded to conv2pdf') and the cost model ('counts as one conversion'). These are real behavioral facts the agent needs and are not in the annotations; it does not, however, cover output file handling, which the schema carries instead.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action, then the boundary, then the operational cost. No padding and nothing important is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter, single-purpose tool with full schema coverage and annotations covering the safety profile, the description supplies the two things structured fields cannot: the external upload and per-call quota cost. Return-value behavior is left implicit, but there is no output schema and output_path is documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including non-obvious guidance that password can be omitted for print/copy-restricted files, so the baseline is 3. The description only reinforces the 'known password' condition and adds no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Removes the password and the restrictions of a PDF') and immediately bounds the scope ('whose password is known') and what it is not ('does not find a forgotten password'). An agent can separate this from protect_pdf and the rest of the conversion siblings without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear use condition (password is known) and an explicit exclusion (forgotten passwords are not recovered). It does not name an alternative tool for the excluded case, but the condition that selects this tool is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv1.0.1
    • First observedadd_page_numbers
    • First observedadd_watermark
    • First observedcompress_pdf
    • First observedconvert_heic_to_jpg
    • First observedconvert_pdf_to_images
    • First observedconvert_pdf_to_word
    • First observedconvert_to_pdf
    • First observedextract_pdf_pages
    • First observedget_quota
    • First observedmerge_pdfs
    • First observedprotect_pdf
    • First observedrotate_pdf
    • First observedunlock_pdf

TDQS

A4.1/5.0

Scored across 13 tools

Disambiguation5/5

Each tool targets a clearly distinct operation: input-side conversions (convert_to_pdf, convert_heic_to_jpg), output-side conversions (convert_pdf_to_word, convert_pdf_to_images), and discrete PDF edits (merge, extract, rotate, watermark, compress, protect, unlock). The only superficially adjacent pair (convert_to_pdf handling HEIC/JPG vs convert_heic_to_jpg producing PNG/JPG) differs clearly in direction and output format.

Naming Consistency5/5

All 13 tools use snake_case with a consistent verb-first convention (convert_*, merge_pdfs, extract_pdf_pages, rotate_pdf, add_*, compress_pdf, protect_pdf, unlock_pdf, get_quota). No camelCase or mixed-style outliers.

Tool Count5/5

13 tools is well-scoped for a PDF conversion and manipulation service, with each tool mapping to a genuine, non-redundant operation. No filler or trivially duplicated tools.

Completeness4/5

Strong coverage of the core lifecycle: conversion both directions, merge, page extraction, rotation, annotation (watermark, numbering), compression, encryption and decryption, plus quota checking. Minor gaps remain (e.g. PDF to text/Excel, splitting into separate per-page files, page deletion/reordering), but the surface covers nearly all common workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-powered PDF manipulation through natural language commands, integrating with Claude to perform operations like merging, splitting, encrypting, optimizing, and analyzing PDFs.
    16
    -
  • A
    license
    A
    quality
    B
    maintenance
    A local-first PDF tool for merging, splitting, rotating, watermarking, Bates-numbering, cleaning metadata, and counting pages — all operations happen on your machine with no network transmission.
    15
    46 npm
    1
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    Enables AI assistants to perform PDF operations like merge, split, compress, convert, encrypt, OCR, and summarize using natural language.
    98
    13 npm
    MIT