gurupdf-mcp
OfficialThe gurupdf-mcp server lets AI agents convert, compress, merge, split, and edit PDFs and 100+ file formats directly on your local machine.
Convert files between 100+ formats — PDF ↔ Word (DOCX), Excel, PowerPoint, images (JPG, PNG, HEIC), ebooks, and more
PDF tools — compress, merge, split, rotate, protect (password), watermark, OCR, and more via tool slugs (e.g.
compress-pdf,merge-pdf)Work with local files — reads input files from disk and saves results next to the source or in a specified output directory
URL-to-PDF — convert any web page to PDF by passing an
https://URLBatch/merge — pass multiple file paths to tools like
merge-pdfTool-specific options — set password, page range, rotation angle, watermark text, etc.
Async jobs — optionally get a job ID for long-running tasks and poll status later with
get_statusBrowse supported conversions — list all available tools and formats, filterable by input format, using
list_conversionsCheck credits — view remaining free daily API credits and how to acquire more using
check_credits
Enables Windsurf (by Codeium) to convert and process PDFs and other file formats, including OCR, compression, merging, splitting, rotation, protection, and watermarking.
GuruPDF MCP — convert PDFs & 100+ file formats from your AI agent
A free Model Context Protocol (MCP) server that lets Claude, Cursor, VS Code, Windsurf and other AI agents convert, compress, merge, split and edit PDFs — and convert between 100+ file formats (Word, Excel, PowerPoint, JPG, PNG, HEIC, ebooks, and more), right on your own machine. Powered by GuruPDF.
Languages: English · Español · Français · Deutsch · 中文 · Русский · Українська · Polski · Nederlands · Türkçe · Čeština · Ελληνικά · العربية
Ask your assistant: "compress this PDF", "turn invoice.docx into a PDF", or "merge these three files" — and it converts the files right on your machine.
🗂️ 126 tools — PDF ⇄ Word/Excel/PowerPoint, images, ebooks, OCR, compress, merge, split, rotate, protect, watermark, and more.
💻 Works on your local files — reads and writes files on disk, no manual upload/download.
🆓 Free to start — every account gets daily credits. No credit card required.
Install
You need Node.js 18+ and a free GuruPDF API key:
Sign up at gurupdf.com.
Open Profile → API tokens and create a token.
Add the server to your agent with that key (configs below). No install step —
npxfetches it on first run.
Claude Desktop
claude_desktop_config.json:
{
"mcpServers": {
"gurupdf": {
"command": "npx",
"args": ["-y", "gurupdf-mcp"],
"env": { "GURUPDF_API_KEY": "your_token_here" }
}
}
}Cursor
~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"gurupdf": {
"command": "npx",
"args": ["-y", "gurupdf-mcp"],
"env": { "GURUPDF_API_KEY": "your_token_here" }
}
}
}VS Code
.vscode/mcp.json:
{
"servers": {
"gurupdf": {
"command": "npx",
"args": ["-y", "gurupdf-mcp"],
"env": { "GURUPDF_API_KEY": "your_token_here" }
}
}
}Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"gurupdf": {
"command": "npx",
"args": ["-y", "gurupdf-mcp"],
"env": { "GURUPDF_API_KEY": "your_token_here" }
}
}
}Related MCP server: pdfeverything
Tools
Tool | What it does |
| Convert/process a local file (or URL). Give it an input and a target format ( |
| Check a conversion job by id and download the result when ready (for long jobs like video). |
| List supported conversions/tools, optionally filtered by an input format. |
| Show remaining credits and how to get more. |
Examples
"Compress
~/Documents/report.pdf." →convert_file(input: "~/Documents/report.pdf", to: "compress-pdf")
"Convert
invoice.docxto PDF." →convert_file(input: "invoice.docx", to: "pdf")
"Merge
a.pdfandb.pdfinto one." →convert_file(input: ["a.pdf", "b.pdf"], to: "merge-pdf")
"Password-protect this PDF with
hunter2." →convert_file(input: "secret.pdf", to: "protect-pdf", options: { password: "hunter2" })
"Save this web page as a PDF: https://example.com" →
convert_file(input: "https://example.com", to: "url-to-pdf")
Free tier & credits
Each tool costs a few credits. Free accounts get daily credits (refreshed every day) and 2 conversions/minute, 10/day. When you run out, the assistant will tell you — you can wait for the daily refresh or top up / upgrade. Conversions run on GuruPDF's servers; files are deleted automatically within an hour.
Configuration
Env var | Default | Notes |
| — | Required. Your API token from Profile → API tokens. |
|
| Override only for self-hosted / staging. |
Links
Glama: gurupdf-mcp on Glama
Landing page: gurupdf.com/mcp
Guide: Convert files in Claude & Cursor with the GuruPDF MCP
Website: gurupdf.com
API docs: gurupdf.com/api/docs
Pricing: gurupdf.com/pricing
License
MIT
Available Tools
4 toolscheck_creditsA
Show how many GuruPDF credits the user has left, and how to get more.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It implies a read-only operation but does not explicitly state that it is non-destructive or safe to call repeatedly. No side effects are disclosed, though none are expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded with the action and immediately conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description provides sufficient context for a simple query tool. It explains both the information shown and actionable guidance. Minor room for improvement: could mention response format or error states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in the schema, so the description does not need to explain them. It adds value by indicating what information will be returned (credits left and how to get more), which goes beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows remaining GuruPDF credits and provides guidance on obtaining more. It uses specific verb 'show' and resource 'credits', distinguishing it from sibling tools like convert_file or get_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like get_status or list_conversions. The description does not mention prerequisites (e.g., authentication) or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_fileA
Convert or process a local file (or URL) with GuruPDF. Convert between 100+ formats (PDF ⇄ Word/Excel/PowerPoint, images, ebooks, etc.) or run a PDF tool (compress, merge, split, rotate, protect, watermark, OCR…). Saves the result next to the input and returns the path.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Absolute path to a local file (or several paths for merge), or an https URL for url-to-pdf. | |
| to | Yes | Target format (e.g. 'pdf', 'docx', 'png') OR a tool slug (e.g. 'compress-pdf', 'merge-pdf', 'protect-pdf'). | |
| output_dir | No | Folder to save the result in. Defaults to the input file's folder. | |
| options | No | Tool-specific options, e.g. { password, page_range, rotation, watermark_text }. | |
| wait | No | Wait for the result (default true). If false, returns a job id to check with get_status. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: saves result next to input, returns path, supports sync and async (wait parameter). No annotations exist, so description carries burden; minor gaps like error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loaded with purpose, covering all key aspects without redundancy. Every sentence is informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core functionality, input/output, and async variant. No output schema, so path return is noted. Lacks detail on error states but adequate for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value: explains input types (local/URL, multiple for merge), to format vs tool slug, and options structure. Enhances schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts/processes files with GuruPDF, covering 100+ formats and PDF tools, and distinguishes from siblings like list_conversions (lists conversions) and get_status (checks job status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use (convert files or run PDF tools) and implies when not to use (e.g., use get_status for job tracking). Could be more explicit about alternatives but is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusA
Check a GuruPDF conversion job by its id (uuid). If it's finished, downloads the result to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes | The job id returned by convert_file. | |
| output_dir | No | Folder to save the result in. Defaults to the current directory. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions download on completion but omits behavior when job is not finished, error handling, file overwrite policy, or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with two clauses, no wasted words. Concise and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool with 2 params and full schema coverage, description covers core functionality. Omits in-progress status behavior and edge cases, but adequate for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage. Description adds minimal value (e.g., uuid from convert_file, default of output_dir). Baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool checks a conversion job by uuid and downloads result if finished. It distinguishes from siblings: convert_file creates jobs, list_conversions lists, check_credits checks credits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage after convert_file to check and download. No explicit when-not-to-use or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conversionsA
List the conversions and tools GuruPDF supports, optionally filtered by an input file format.
| Name | Required | Description | Default |
|---|---|---|---|
| from_format | No | e.g. 'pdf', 'jpg', 'docx' — show only tools that accept this input. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the basic operation (listing) but does not disclose that it is a safe, read-only operation, nor any potential side effects, authentication needs, or rate limits. The agent must infer it is non-destructive from context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that is front-loaded with the core purpose. No extraneous words or information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one optional parameter, no output schema, and sibling tools, the description is adequate but could be more complete. It does not specify the format of the returned list (e.g., array of objects with conversion details), which might help the agent anticipate output. However, for a simple listing tool, it suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a well-described parameter. The description adds that the filter is optional, which is already implied by the parameter being not required. The schema's description of 'from_format' with examples already provides the meaning, so the description adds only marginal value, aligning with the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'conversions and tools GuruPDF supports', with an optional filter by input format. It distinguishes itself from sibling tools like convert_file, check_credits, and get_status by focusing on listing available capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for discovering supported conversions and tools, optionally filtering by input format. However, it does not explicitly state when to use this tool over siblings, nor when to avoid it (e.g., for actual conversion, use convert_file).
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. Dates show when Glama detected each change.
4 tool updates
v0.1.3- First observed
check_credits - First observed
convert_file - First observed
get_status - First observed
list_conversions
TDQS
Each tool has a distinct purpose: credits, conversion initiation, job status checking, and listing supported formats. No overlap in functionality.
All tool names follow a consistent verb_noun pattern in snake_case, making them predictable and easy to understand.
Four tools is appropriate for a PDF conversion service, covering the essential operations without being excessive or insufficient.
The tool set covers core operations: checking credits, initiating conversions, checking status, and listing formats. A minor gap is the lack of a cancel job tool, but the set is largely complete for typical workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
PDF tools for Claude: merge, split, compress, convert, OCR & more. Requires a PDFHaul API key.
Convert, merge, compress, OCR, redact, and sign PDFs inside your AI assistant. From pdfAssistant.
Generate PDFs from templates via AI chat. Works with Claude, ChatGPT, Cursor, and any MCP client.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP tools for video transcoding, document conversion, and multi-step pipelines — callable by any AI agent.121371MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to perform 13 PDF operations (merge, split, compress, watermark, encrypt, and more) on local files via MCP.2-
- AlicenseAqualityCmaintenanceProvides 18 PDF operations (merge, split, convert, edit, secure, repair, OCR) via iLoveAPI, callable from any MCP client like Claude Code or Claude Desktop.18701MIT
- AlicenseNot gradedqualityAmaintenanceUnified MCP server that exposes GroupDocs.Total document-processing tools (annotation, comparison, conversion, merging, metadata, parsing, redaction, signing, watermarking, and more) as AI-callable tools for MCP agents.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/GuruPDF/gurupdf-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server