原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

PDFluent

作者:pdfluent版本 0.3.0i★ –i在你的电脑上运行
注册名称io.github.pdfluent/pdfluent-mcp

安装

概览

作者提供的说明(英文原文)

Read, search and fill PDFs as markdown, text, tables, forms. Your documents stay on your machine.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 搜索与 AI 记忆

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: PDFLUENT_MCP_MAX_PAGES, PDFLUENT_MCP_MAX_BYTES, PDFLUENT_MCP_MAX_OUTPUT_CHARS

你需要

  • PyPI已安装 Python 的 uv(用于 uvx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "pdfluent": {
      "command": "uvx",
      "args": [
        "pdfluent-mcp",
        "--root"
      ],
      "env": {
        "PDFLUENT_MCP_MAX_PAGES": "your-value",
        "PDFLUENT_MCP_MAX_BYTES": "your-value",
        "PDFLUENT_MCP_MAX_OUTPUT_CHARS": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add pdfluent --env PDFLUENT_MCP_MAX_PAGES=your-value --env PDFLUENT_MCP_MAX_BYTES=your-value --env PDFLUENT_MCP_MAX_OUTPUT_CHARS=your-value -- uvx pdfluent-mcp --root

运行前请先填写空着的值。

这个服务器需要在启动命令中填入值,请复制设置后自行填写。

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "pdfluent": {
      "command": "uvx",
      "args": [
        "pdfluent-mcp",
        "--root"
      ],
      "env": {
        "PDFLUENT_MCP_MAX_PAGES": "your-value",
        "PDFLUENT_MCP_MAX_BYTES": "your-value",
        "PDFLUENT_MCP_MAX_OUTPUT_CHARS": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器需要在启动命令中填入值,请复制设置后自行填写。

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "pdfluent": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "pdfluent-mcp",
        "--root"
      ],
      "env": {
        "PDFLUENT_MCP_MAX_PAGES": "your-value",
        "PDFLUENT_MCP_MAX_BYTES": "your-value",
        "PDFLUENT_MCP_MAX_OUTPUT_CHARS": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • PDFLUENT_MCP_MAX_PAGES env
    Pages one call may read (default 200).
  • PDFLUENT_MCP_MAX_BYTES env
    Largest document the server opens, in bytes (default 104857600).
  • PDFLUENT_MCP_MAX_OUTPUT_CHARS env
    Longest result one call returns, in characters (default 200000).

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 pdfluent 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“搜索与 AI 记忆”中的其他服务器比较i

  • 星标数多于此分类中其他 7231 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 7231 个服务器的 93% 更新
  • 基础检查结果等于或优于此分类中其他 7231 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

PDFluent 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.3.0)于3天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。

有什么可以替代它?

同一分类中有:Context7, Codebase Memory, Exa

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Context7

作者:upstash

Up-to-date docs for AI agents

电脑或云端★ 64,224MIT3天前更新
安装

Codebase Memory

作者:DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

在你的电脑上运行★ 48,148MIT20天前更新
安装

Exa

作者:exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

在云端运行★ 5,213MIT44天前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

pdfluent-mcp

An MCP server that lets your AI client read, search and fill local PDFs.

An MCP server for PDFluent. It lets Claude Desktop, Claude Code, Cursor, VS Code and any other MCP client read a local PDF as markdown, plain text, tables or positioned blocks, look up its metadata, search it, and fill its form fields into a new file.

Runs on your machine, no upload. It runs over stdio, one process per client, on the pdfluent Python package. Your documents stay on your machine. The server reads and writes only inside the directories you allow. Your documents are never uploaded.

Quick start

uvx pdfluent-mcp setup --root ~/Documents

This registers a stdio server named pdfluent in the user configs of Claude Desktop, Claude Code, Cursor and Codex, then tells you to restart the clients. pipx run pdfluent-mcp setup works the same way. Without --root, file access relies on client MCP roots or PDFLUENT_MCP_ROOTS (SETUP-001, SETUP-002).

Needs Python 3.10 or later and uv. uvx downloads the server and pdfluent on first use and caches them. The balanced quality tier needs model files; pdfluent models install downloads them once.

Tools

ToolWhat it doesExample prompt
extract_markdownThe document as markdown in reading order: headings, list items and tables. Running heads and page numbers are left out."Summarise ~/Documents/report.pdf."
extract_textThe plain text layer, page by page, each page behind ."Give me the raw text of pages 0 to 2 of contract.pdf."
extract_tablesOne entry per table with page, rows and header_rows."Pull the tables out of invoice.pdf."
extract_blocksPositioned blocks with kind, text, page, bbox and confidence. Also lists the pages whose text layer is missing."List every heading in manual.pdf with its page."
get_metadataPage count, title, author, dates, PDF version, encryption, form fields, signatures, bookmarks, and pages with no text layer."How many pages does scan.pdf have, and is it encrypted?"
searchThe pages that mention a query, with up to three snippets per page."Which pages of policy.pdf mention retention?"
list_form_fieldsEvery form field with name, type, value and page."Which fields does application.pdf have?"
fill_formFills the named fields and writes a new file. The input is never changed."Fill application.pdf with my name and address, save as application-filled.pdf."
vision_adviceOne entry per page with needs_vision and its reasons."Which pages of scan.pdf need a vision model?"

Page numbers are 0-based in every argument and result.

Tool arguments and result details

ToolReturns
extract_markdown(path, pages?, quality?)The document as markdown in reading order: headings, list items and tables. Running heads and page numbers are left out. quality is fast (default) or balanced.
extract_text(path, pages?)The plain text layer, page by page, each page behind .
extract_tables(path, pages?)tables: one entry per table with page, rows (lists of cell strings) and header_rows.
extract_blocks(path, pages?, include_furniture?)blocks: each with kind, text, page, bbox and confidence, plus level, ordinal or table-cell position where they apply. pages_needing_vision: the pages whose text layer is missing.
get_metadata(path)Page count, title, author, dates, PDF version, encryption, whether the document has form fields, how many signatures and bookmarks it has, and which pages have no text layer.
search(path, query)The pages that mention query, with up to three snippets per page.
list_form_fields(path)Every form field with name, type, value and page.
fill_form(path, values, out_path, overwrite?)Fills the named fields and writes a new file at out_path. The input is never changed; an existing out_path is refused unless overwrite is true, and a symbolic link there is always refused.
vision_advice(path)advice: one entry per page with needs_vision and its reasons.

confidence is the probability of the learned model that decided a block's kind; it is null where no model decided it, and null means unknown, not low.

Install per client

Replace /path/to/documents with the directory your PDFs live in.

Claude Desktop

Add to claude_desktop_config.json and restart Claude Desktop:

{

"mcpServers": { "pdfluent": { "command": "uvx", "args": ["pdfluent-mcp", "--root", "/path/to/documents"] } } }

Config file location and troubleshooting

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json.

If Claude Desktop does not find uvx, write its full path (which uvx) in command.

Claude Code
claude mcp add pdfluent -- uvx pdfluent-mcp --root /path/to/documents

Project setup for a team, and the Claude skill

Claude Code also offers its working directory as an MCP root, so inside a project claude mcp add pdfluent -- uvx pdfluent-mcp is enough. For a team, put this in the project's .mcp.json:

{

"mcpServers": { "pdfluent": { "type": "stdio", "command": "uvx", "args": ["pdfluent-mcp"] } } }

To tell Claude when to reach for these tools, copy skills/pdfluent from this repository to ~/.claude/skills/pdfluent (every project) or to .claude/skills/pdfluent in one project.

Cursor

Add to Cursor (then change /path/to/documents), or add to ~/.cursor/mcp.json or the project's .cursor/mcp.json:

{

"mcpServers": { "pdfluent": { "type": "stdio", "command": "uvx", "args": ["pdfluent-mcp", "--root", "/path/to/documents"] } } }

VS Code

Install in VS Code, or from a terminal:

code --add-mcp '{"name":"pdfluent","type":"stdio","command":"uvx","args":["pdfluent-mcp","--root","/path/to/documents"]}'

Workspace config

Or add to .vscode/mcp.json in the workspace (note the key is servers):

{

"servers": { "pdfluent": { "type": "stdio", "command": "uvx", "args": ["pdfluent-mcp", "--root", "/path/to/documents"] } } }

Codex

Add to ~/.codex/config.toml:

[mcp_servers.pdfluent]

command = "uvx" args = ["pdfluent-mcp", "--root", "/path/to/documents"]

One-click install for Cursor and VS Code registers the server with a placeholder root that you then change.

Reference

Setup command: flags, backups, uninstall

  • --root DIR (repeatable) is added to the saved command for each directory you name, for example uvx pdfluent-mcp setup --root ~/Documents.
  • --dry-run shows what would change and writes nothing.
  • Before it replaces a config file, setup saves the previous file next to it as .pdfluent-backup- and prints the path.
  • --client claude-desktop|claude-code|cursor|codex limits it to some clients (repeatable).
  • uvx pdfluent-mcp uninstall (or setup --uninstall) removes only the pdfluent entry, and only when it was written by pdfluent-mcp (or with --force). It does not remove the Python package.

Close the clients before you run setup or uninstall. Files are replaced atomically, but no portable call lets setup detect a client that saves the same file in the last instant; a save in that gap can be lost, and where hard links are unavailable the backup is a plain copy and the gap is wider.

Setup keeps unrelated settings and servers, preserves TOML comments, and refuses malformed configs and symbolic links. A different existing pdfluent entry is left alone unless you pass --force (SETUP-003). The saved launcher uses the absolute uvx path when found, otherwise the current Python interpreter, which must stay installed (SETUP-004).

Config files used: Claude Desktop's platform config (see above), Claude Code's ~/.claude.json, Cursor's ~/.cursor/mcp.json, and Codex's ~/.codex/config.toml (CODEX_HOME is respected).

Install into your own environment

pip install pdfluent-mcp

pdfluent-mcp --root ~/Documents

Allowed roots and limits

The server touches nothing outside its roots. Give them with --root (repeat for more than one), with PDFLUENT_MCP_ROOTS (:-separated, ; on Windows), or let the client offer them: Claude Code sends its working directory and --add-dir directories as MCP roots. A server with no root from any of these answers every call with a message saying so. Symlinks are resolved before the check, so a link inside a root cannot point outside it.

A root is as wide as the directory it names. A client that offers /, ~ or a drive as an MCP root widens the server to everything the user can read; if that is not what you want, start the server with --root on the folder your PDFs live in and keep the client's roots narrow.

Three more limits: --max-pages (default 200) is how many pages one call returns, so a long document is read in windows through pages (the engine still parses the whole document for every window; the cap bounds the output, not the work); --max-bytes (default 100 MiB) is the largest document the server opens; --max-output-chars (default 200000) is the longest result one call returns, after which it is cut and says so. All three also read from PDFLUENT_MCP_MAX_PAGES, PDFLUENT_MCP_MAX_BYTES and PDFLUENT_MCP_MAX_OUTPUT_CHARS.

Claude plugin and data handling

The repository is also a Claude plugin (.claude-plugin/plugin.json). It bundles the pdfluent skill from skills/ and starts the local MCP server with uvx pdfluent-mcp==0.3.0 over stdio, so the plugin runs one pinned PyPI package and nothing else. A local MCP server loads in Claude Code and in Cowork sessions on your computer; chat on claude.ai ignores it.

What the plugin does with data: the server reads PDFs only inside the directories you allow,

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx