Skip to main content
Glama
GuruPDF
by GuruPDF

GuruPDF MCP — convert PDFs & 100+ file formats from your AI agent

npm version License: MIT gurupdf-mcp MCP server

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:

  1. Sign up at gurupdf.com.

  2. Open Profile → API tokens and create a token.

  3. Add the server to your agent with that key (configs below). No install step — npx fetches 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_file

Convert/process a local file (or URL). Give it an input and a target format (pdf, png, docx…) or a tool slug (compress-pdf, merge-pdf…). Saves the result to disk.

get_status

Check a conversion job by id and download the result when ready (for long jobs like video).

list_conversions

List supported conversions/tools, optionally filtered by an input format.

check_credits

Show remaining credits and how to get more.

Examples

"Compress ~/Documents/report.pdf."convert_file(input: "~/Documents/report.pdf", to: "compress-pdf")

"Convert invoice.docx to PDF."convert_file(input: "invoice.docx", to: "pdf")

"Merge a.pdf and b.pdf into 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

GURUPDF_API_KEY

Required. Your API token from Profile → API tokens.

GURUPDF_API_URL

https://gurupdf.com/api/v1

Override only for self-hosted / staging.

gurupdf-mcp MCP server

License

MIT

Available Tools

4 tools
check_creditsA

Show how many GuruPDF credits the user has left, and how to get more.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesAbsolute path to a local file (or several paths for merge), or an https URL for url-to-pdf.
toYesTarget format (e.g. 'pdf', 'docx', 'png') OR a tool slug (e.g. 'compress-pdf', 'merge-pdf', 'protect-pdf').
output_dirNoFolder to save the result in. Defaults to the input file's folder.
optionsNoTool-specific options, e.g. { password, page_range, rotation, watermark_text }.
waitNoWait for the result (default true). If false, returns a job id to check with get_status.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesThe job id returned by convert_file.
output_dirNoFolder to save the result in. Defaults to the current directory.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
from_formatNoe.g. 'pdf', 'jpg', 'docx' — show only tools that accept this input.

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 4 tool updatesv0.1.3
    • First observedcheck_credits
    • First observedconvert_file
    • First observedget_status
    • First observedlist_conversions

TDQS

A4/5.0
Disambiguation5/5

Each tool has a distinct purpose: credits, conversion initiation, job status checking, and listing supported formats. No overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, making them predictable and easy to understand.

Tool Count5/5

Four tools is appropriate for a PDF conversion service, covering the essential operations without being excessive or insufficient.

Completeness4/5

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

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    MCP tools for video transcoding, document conversion, and multi-step pipelines — callable by any AI agent.
    12
    137
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to perform 13 PDF operations (merge, split, compress, watermark, encrypt, and more) on local files via MCP.
    2
    -
  • A
    license
    A
    quality
    C
    maintenance
    Provides 18 PDF operations (merge, split, convert, edit, secure, repair, OCR) via iLoveAPI, callable from any MCP client like Claude Code or Claude Desktop.
    18
    70
    1
    MIT

Latest Blog Posts

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