Puter MCP
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
作者提供的说明(英文原文)
Local-first MCP server + CLI that turns PDFs into source-linked, card-based HTML readers.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
链接指向作者自己的文件;我们不托管也不重新打包它。打开文件后,Claude Desktop 会进行安装。
在终端中运行这条命令
claude mcp add pdf-card -- uvx pdf-card-mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"pdf-card": {
"command": "uvx",
"args": [
"pdf-card-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"pdf-card": {
"type": "stdio",
"command": "uvx",
"args": [
"pdf-card-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。
在你的电脑上运行,适用于
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月11日
注册名称已通过 GitHub 账户 velyan 验证,该账户拥有此仓库
代码最后更新于2个月前
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 2 项适用的基础检查中通过了 2 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于2个月前,最新版本(0.1.2)于5个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv), MCPB。
同一分类中有:Puter MCP, Agent-Native Slides, Agent-Native Forms
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
PDF Card MCP is a local-first MCP server and CLI for turning dense local PDFs into portable, source-linked HTML readers. An MCP host can ask it to convert a PDF path, validate notes/highlights, or publish a static annotated reader bundle. The converter preserves source text, renders source pages for verification, crops detected tables, figures, and display formulas as images, derives safe reader styling from the original PDF palette, and writes a standalone HTML file that can be moved across devices without losing assets.
Default conversion runs locally and does not require a hosted service. Optional MCP sampling is deliberately bounded: the host model may choose validated style tokens or suggest card-boundary polish operations, but raw CSS and source-text rewrites are rejected.
The default reader is designed for comfortable reading: large type, small cards, search, section navigation, next/previous controls, keyboard navigation, a font-size slider, and source-page previews.
PDF Card MCP is meant for PDFs you actually need to read, cite, or inspect. It turns long documents into smaller source-linked cards, keeps tables/figures/formulas as faithful image crops, and lets you export your own notes and highlights as Markdown.
PDF Card MCP is a Python server, so it needs a runtime. The one thing to install first is uv — it manages Python for you, so you do not have to. This is the only prerequisite for every install path below:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Then add the server with one click. The buttons run the published pdf-card-mcp package through uv:
Claude Code (terminal):
claude mcp add pdf-card -- uvx --from pdf-card-mcp pdf-card-mcp-server
Claude Desktop (no terminal, no prerequisites): download pdf-card-mcp-desktop.mcpb from the latest release and double-click it to install as an extension. This bundle declares the uv runtime, so Claude Desktop installs Python and dependencies for you — you do not need the uv step above for this path.
After installing, restart (or reload MCP servers in) your client so it picks up the new server.
These screenshots are from a generated reader for *Agents in Software Engineering* and the same source PDF opened side by side for comparison.
| Generated reader | Original PDF |
|---|---|
Convert a local PDF into one portable HTML reader:
pdf-card-mcp ./paper.pdf --output ./out/paper-reader.html
Use the explicit subcommand form with PDF-derived styling:
pdf-card-mcp convert ./paper.pdf \
--output ./out/paper-reader.html \ --style-engine pdf
Run the MCP server so a compatible host can generate readers from local PDF paths:
python -m pdf_card_mcp.server
Publish a read-only static reader with selected public annotations:
pdf-card-mcp publish ./out/paper-reader.html \
--annotations ./paper.annotations.json \ --output ./published/paper-reader.html
| Output | What it contains |
|---|---|
paper-reader.html | Standalone reader with embedded CSS, JavaScript, page images, and detected crops. |
paper.manifest.json | Structured metadata for cards, pages, warnings, and source anchors. |
| Markdown export | User-authored notes and highlights from the reader UI. |
| Published bundle | Read-only static HTML or a directory bundle for sharing public annotations. |
This is an early open-source implementation. It is useful for text-layer PDFs now, with best-effort table detection via pdfplumber, permissive raster rendering via pypdfium2, and optional richer local table detection via gmft. Scanned PDFs need optional OCR support.
Most people should use the one-click install above. To install the package directly instead, from PyPI:
python -m pip install pdf-card-mcp
Or install the latest unreleased changes directly from the repository:
python -m pip install "pdf-card-mcp @ git+https://github.com/velyan/pdf-card-mcp.git"
For local development:
git clone https://github.com/velyan/pdf-card-mcp.git
cd pdf-card-mcp python3 -m venv .venv . .venv/bin/activate python3 -m pip install -e ".[dev]"
uv is recommended for MCPB packaging:
uv sync
uv run pdf-card-mcp path/to/document.pdf --output out/document.html
Install the optional local ML table detector when you want stronger table crops:
uv sync --extra table-ml
uv run --extra table-ml pdf-card-mcp path/to/document.pdf --table-engine gmft
Add it to Claude Code or another CLI-compatible MCP client with uvx (requires uv):
claude mcp add pdf-card -- uvx --from pdf-card-mcp pdf-card-mcp-server
Generic MCP host configuration:
{
"mcpServers": { "pdf-card": { "command": "uvx", "args": ["--from", "pdf-card-mcp", "pdf-card-mcp-server"] } } }
For local development before the PyPI release, point the client at this checkout:
{
"mcpServers": { "pdf-card-local": { "command": "uv", "args": [ "--directory", "/path/to/pdf-card-mcp", "run", "python", "-m", "pdf_card_mcp.server" ] } } }
Claude Desktop can also install the .mcpb bundle from the latest GitHub release.
The repository includes a minimal Dockerfile so registries such as Glama can build the server, start it over stdio, and inspect its MCP tool schemas. The server still works on local file paths, so container users must mount any PDFs and output directories they want the tool to read or write:
docker build -t pdf-card-mcp .
docker run --rm -i \ -v "$PWD/examples:/docs" \ pdf-card-mcp
pdf-card-mcp path/to/document.pdf --output examples/out/document.html
The command writes:
document.html: standalone reader with embedded CSS, JavaScript, table crops, figure crops, formula crops, and source-page images.document.manifest.json: structured metadata without embedded image payloads.The explicit subcommand form is also supported:
pdf-card-mcp convert path/to/document.pdf --output examples/out/document.html
Generated readers include a local annotation overlay:
Select text in a text card, choose Highlight or Note, and use Export Markdown to download a readable .annotations.md file. Import is intentionally not exposed in the reader UI yet. Notes and highlights are user-authored data and are kept separate from the source-derived document.manifest.json.
The lower-level CLI and MCP publishing tools still accept a structured annotation bundle when you need to build a read-only static reader with embedded annotations. Validate that bundle against a reader:
pdf-card-mcp validate-annotations examples/out/document.html document.annotations.json
Publish a shareable static reader with public annotations:
pdf-card-mcp publish examples/out/document.html \
--annotations document.annotations.json \ --output published/document-reader.html
If --output is a directory instead of an .html file, the command writes a static bundle:
index.htmlreader.manifest.jsonreader.annotations.jsonbundle.jsonPublishing includes only visibility: public annotations by default, redacts the local source_pdf path by default, and renders the published reader read-only by default. Use --include-private only when you intentionally want private local notes included in the published output. Publishing fails if any included annotation cannot be anchored to the reader; run validate-annotations to inspect mismatches before publishing.
The MCP server is the automation layer around the same local converter. It accepts local file paths from an MCP client and returns generated reader paths, manifest metadata, warnings, and publishing/validation results.
The server exposes three tools:
convert_pdf_to_card_html
validate_reader_annotations publish_reader_bundle
Inputs:
pdf_path: local PDF path.output_path: optional HTML output path.title: optional title override.standalone: defaults to true; asset-folder output is reserved for a later release.ocr: optional OCR fallback if pytesseract is installed.max_pages: optional processing limit.theme: defaults to soft.style_engine: fixed, pdf, or sampling; defaults to pdf. fixed preserves the original soft palette, pdf derives bounded colors and typography hints locally from the source PDF, and sampling asks the host LLM to choose validated style tokens from those local hints.table_engine: auto, pdfplumber, or gmft; auto uses gmft when installed.text_engine: char_geometry or pdfplumber_words; defaults to char_geometry so missing spaces are repaired from PDF character positions instead of trusting fused words.postprocess_engine: none or sampling; defaults to none. When set to sampling, the MCP server asks the host LLM for boundary-only card polish operations, validates exact source-text preservation, and rewrites the generated reader. If the MCP client does not support sampling, deterministic output is returned with a warning.model_cache_dir: optional cache directory for local ML table model weights.-