Citra

A PDF-reading MCP server: structured text, tables, OCR, visual crops and page-level citations

MCP serverOfficial

Medium risk

We rate an entry medium when the tool runs code, makes network calls or reads project files. Check what exactly it does before installing.

Why this level

  • Reads local PDF files
  • Runs a local server with a native engine
All reasons and checks

sylphxai/pdf-reader-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/citra

Detects the agents on your machine, checks the risk and pins the version.

Other ways to install

Run in a terminal

claude mcp add --transport stdio citra -- npx -y @sylphx/citra@6.0.0

Or add to the file .mcp.json, in the project

{
  "mcpServers": {
    "citra": {
      "command": "npx",
      "args": [
        "-y",
        "@sylphx/citra@6.0.0"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Install in Cursor

The button opens the agent and offers to add the server. If nothing happens, copy the config below.

Add to the file ~/.cursor/mcp.json, for all projects

{
  "mcpServers": {
    "citra": {
      "command": "npx",
      "args": [
        "-y",
        "@sylphx/citra@6.0.0"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key. For a single project, put the same block into .cursor/mcp.json.

Install in VS Code

The button opens the agent and offers to add the server. If nothing happens, copy the config below.

Run in a terminal

code --add-mcp '{"name":"citra","type":"stdio","command":"npx","args":["-y","@sylphx/citra@6.0.0"]}'

Or add to the file .vscode/mcp.json, in the project

{
  "servers": {
    "citra": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@sylphx/citra@6.0.0"
      ]
    }
  }
}

If the file already exists, add the server inside the servers key.

Run in a terminal

codex mcp add citra -- npx -y @sylphx/citra@6.0.0

Or add to the file ~/.codex/config.toml, for all projects

[mcp_servers.citra]
command = "npx"
args = ["-y", "@sylphx/citra@6.0.0"]

If the file already exists, append the block to the end.

Add to the file ~/.gemini/settings.json, for all projects

{
  "mcpServers": {
    "citra": {
      "command": "npx",
      "args": [
        "-y",
        "@sylphx/citra@6.0.0"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Add to the file ~/.config/devin/mcp_config.json, for all projects

{
  "mcpServers": {
    "citra": {
      "command": "npx",
      "args": [
        "-y",
        "@sylphx/citra@6.0.0"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Legacy Cascade keeps the MCP config in ~/.codeium/windsurf/mcp_config.json.

Formerly Windsurf.

Add to the file cline_mcp_settings.json, for all projects

{
  "mcpServers": {
    "citra": {
      "command": "npx",
      "args": [
        "-y",
        "@sylphx/citra@6.0.0"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Open the settings file in Cline: MCP Servers tab, Configure MCP Servers.

Add to the file .roo/mcp.json, in the project

{
  "mcpServers": {
    "citra": {
      "command": "npx",
      "args": [
        "-y",
        "@sylphx/citra@6.0.0"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

A fork of Roo Code, same .roo folders.

Add to the file opencode.json, in the project

{
  "mcp": {
    "citra": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@sylphx/citra@6.0.0"
      ]
    }
  }
}

If the file already exists, add the server inside the mcp key.

Add to the file ~/.config/zed/settings.json, for all projects

{
  "context_servers": {
    "citra": {
      "command": "npx",
      "args": [
        "-y",
        "@sylphx/citra@6.0.0"
      ]
    }
  }
}

If the file already exists, add the server inside the context_servers key.

Add to the file .codeassistant/mcp.json, in the project

{
  "mcpServers": {
    "citra": {
      "command": "npx",
      "args": [
        "-y",
        "@sylphx/citra@6.0.0"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

You will need: Node.js

Checked against the repository on Sep 25, 2026, commit 3152941.

Text for your agent

Add the MCP server: npx -y @sylphx/citra. No key or Docker needed; the server runs locally over stdio.

Other ways from the author
npx -y @sylphx/citra

Starts a stdio MCP server, no key or Docker needed.

This is third-party code. Review the repository files before installing.

What it does

Citra lets an agent work with PDFs on the merits, not by guessing. The server extracts structured text and tables, runs OCR on scans and can return visual page crops as evidence. The key idea is citation: answers are tied to specific pages so the agent can back up where information came from rather than invent it. It runs locally, with no Docker and no key: one command starts a stdio MCP server the agent can use immediately. Underneath is a native Rust engine, and there is also a CLI and SDK with the same read, search and evidence tools.

Who it is for. For anyone giving an agent PDF documents who wants verifiable answers with a page reference.

Good fit when

  • You need an agent to read PDFs with tables and scans
  • You need answers with citations and a page reference
  • You want local document processing without a key

Not a fit when

  • The documents are not PDFs
  • You need full search over a large library rather than reading individual files

Example request

Read this PDF report, find the expenses table and answer with a page reference

Limitations

The server handles PDFs and relies on a native package for your platform, installed automatically. OCR quality depends on the source scan. This is reading and extraction from individual documents, not a ready RAG store.

How to disable. Remove the citra server from your MCP config.

MCP

Transport
stdio
Authentication
not required

Security check

  • Reads local PDF files
  • Runs a local server with a native engine

README in short

The README presents Citra as a local MCP server that lets an agent read PDFs with evidence: structured text, tables, OCR, visual crops and page-level citations. It starts with one npx command without Docker or a key, with configs for Claude Desktop, Cursor, VS Code and Codex. Underneath is a native Rust engine, with a CLI and SDK exposing the same read, search and evidence tools. MIT licensed.

FAQ

Do I need a key or Docker?

No, a one-line npx run starts a local stdio server without a key or Docker.

How does it help avoid invented answers?

Answers are tied to PDF pages, so the agent can show the source rather than make it up.

Official

Microsoft's utility and MCP server that turn PDF, Word, Excel, PowerPoint, HTML and other files into Markdown for models

MCP serverMedium riskNo VPN needed187.4KRepository stars
Editors’ pick

Anthropic's official skill examples: docx, pdf, pptx and xlsx documents, design, MCP builder and the Agent Skills spec

SkillMedium risk178.8KRepository stars
Editors’ pick

A skill that builds editable PPTX decks from PDF, DOCX, URLs and Markdown with native shapes, charts and animations

SkillMedium risk56.8KRepository stars
Editors’ pick

A skill that draws editorial diagrams as standalone HTML and SVG files: architecture, flowcharts, ER, funnels and about forty more types

SkillMedium riskNo VPN needed42.6KRepository stars
Foxx AICitra

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.