Puter MCP
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Extract text from local PDF documents with optional pluggable OCR. Read-only, no network.
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ผลตรวจผ่าน 2/2 · ทำงานบนเครื่องคุณ
ขั้นแรก: คุณใช้ AI ตัวไหน
เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง
ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน
ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
SettingsDeveloperEdit Config
{
"mcpServers": {
"pdf": {
"command": "npx",
"args": [
"-y",
"@sezzlee/pdf-mcp"
]
}
}
}ใช้ Sezzlee PDF บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude บอกว่ากำลังใช้ Sezzlee PDF หรือมีชื่อเครื่องมือของ Sezzlee PDF ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ChatGPT ยังต่อ Sezzlee PDF ไม่ได้
Sezzlee PDF ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ
ก · ใช้แอปที่ต่อ Sezzlee PDF ได้
ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน
ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว)
Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell
claude mcp add pdf -- npx -y @sezzlee/pdf-mcpต้องเห็น Sezzlee PDF ในรายการและขึ้นว่าเชื่อมต่อแล้ว
ใช้ Sezzlee PDF บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude Code บอกว่ากำลังใช้ Sezzlee PDF หรือมีชื่อเครื่องมือของ Sezzlee PDF ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน
ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว) · ไม่มีปุ่มกดทีเดียว ต้องวางค่าตั้งและกรอกค่าเอง
~/.cursor/mcp.json
วางค่าตั้งนี้ กรอกค่าที่ว่างไว้ แล้วบันทึกไฟล์
{
"mcpServers": {
"pdf": {
"command": "npx",
"args": [
"-y",
"@sezzlee/pdf-mcp"
]
}
}
}ใช้ Sezzlee PDF บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Cursor บอกว่ากำลังใช้ Sezzlee PDF หรือมีชื่อเครื่องมือของ Sezzlee PDF ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน
ต้องลง Node.js ในเครื่องก่อน (ทำครั้งเดียว) · ไม่มีปุ่มกดทีเดียว ต้องวางค่าตั้งและกรอกค่าเอง
MCP: Open User Configuration
วางค่าตั้งนี้ กรอกค่าที่ว่างไว้ แล้วบันทึกไฟล์
{
"servers": {
"pdf": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@sezzlee/pdf-mcp"
]
}
}
}ใช้ Sezzlee PDF บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า VS Code บอกว่ากำลังใช้ Sezzlee PDF หรือมีชื่อเครื่องมือของ Sezzlee PDF ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
Claude Code
claude mcp add pdf -- npx -y @sezzlee/pdf-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"pdf": {
"command": "npx",
"args": [
"-y",
"@sezzlee/pdf-mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"pdf": {
"command": "npx",
"args": [
"-y",
"@sezzlee/pdf-mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"pdf": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@sezzlee/pdf-mcp"
]
}
}
}ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
npm: @sezzlee/pdf-mcpดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569
ติดตั้งบนเครื่องได้ใน
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 11 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub sezzlee ซึ่งเป็นเจ้าของ repo
มีการแก้โค้ดล่าสุด เมื่อวานซืน
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์
ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย
ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx
ยังไม่มีรีวิว
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 2 จาก 2 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด เมื่อวานซืน และส่งรุ่นล่าสุด (0.1.2) เข้า registry 31 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Puter MCP, XcodeBuildMCP, XcodeBuildMCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more
ให้ AI จัดการโปรเจกต์ Xcode สั่ง build และใช้ iOS Simulator
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A read-only, sandboxed MCP server for local PDF documents. It builds on @sezzlee/file-core, which supplies sandbox path resolution, the response budget, the error envelope, cursors and the document cache. Text extraction uses @firecrawl/pdf-inspector. The server never reaches the network: OCR is optional, and when it is enabled, the connection decision belongs entirely to whoever supplies the two injected ports.
{
"mcpServers": { "pdf": { "command": "npx", "args": ["-y", "@sezzlee/pdf-mcp", "/path/to/documents"] } } }
To enable OCR, point --ocr at a module whose default export is an OcrBinding (see Configuration and OCR):
{
"mcpServers": { "pdf": { "command": "npx", "args": [ "-y", "@sezzlee/pdf-mcp", "/path/to/documents", "--ocr", "/path/to/ollama-binding.js" ] } } }
| Tool | What it does | Key arguments |
|---|---|---|
list_documents | Lists readable PDF candidates under the root; never opens a file | subdirectory, pattern, maxResults |
describe_document | Page count, document type, per-page OCR need, server capabilities | filePath |
read_pages | Reads selected pages as Markdown, page numbers 1-based | filePath, pages, maxPages, ocr, cursor |
find_in_document | Literal search over extracted text, with page number and match context | filePath, query, matchMode, caseSensitive, ocr, cursor |
If the file path is already known, describe_document is optional: read_pages and find_in_document work from filePath alone.
CLI (sezzlee-pdf [--ocr ]):
| Argument | Default | Meaning |
|---|---|---|
| required | Sandbox root; every readable path is resolved and checked against it. |
--ocr | none | Path or package specifier to a module whose default export is { rasterizer, provider }. Absent means no OCR: read_pages/find_in_document refuse ocr: true and describe_document reports capabilities.ocr: false. |
Programmatic (createPdfMcpServer(root, options)):
| Option | Default | Meaning |
|---|---|---|
documentCacheSize | 2 | Extracted documents held in memory at once, 1–16. A budget, not a guard: each cached document holds every page's Markdown on the heap. |
maxConcurrentListings | 4 | Concurrent list_documents calls before a request is refused. |
maxConcurrentExtractions | 2 | Concurrent PDF extractions before a request is refused. |
ocr | none | An OcrBinding ({ rasterizer, provider, dpi?, maxPagesPerCall?, timeoutMs? }). Neither port is a dependency of this package. |
The server does not perform OCR; it supports it. Two ports are injected — neither the raster library nor the model client is a dependency of this package.
interface PageRasterizer {
render(job: { bytes: Buffer; pages: readonly number[]; dpi: number; signal?: AbortSignal; }): Promise ; // { page, image, mediaType } }
interface OcrProvider { readonly name: string; recognize(job: { pages: readonly RenderedPage[]; signal?: AbortSignal; }): Promise ; // { page, markdown, confidence? } }
The server does exactly this: it renders the pages the text layer could not answer, recognizes the resulting images, substitutes the result for that page, and marks it source: "ocr".
Programmatic binding:
createPdfMcpServer(root, {
ocr: { rasterizer: pdfjsRasterizer, provider: ollamaProvider, dpi: 200 }, });
CLI binding — a module whose default export matches OcrBinding, loaded with --ocr (see examples/ollama-binding.ts in this package for a working example built from @sezzlee/pdf-raster-pdfjs and @sezzlee/ocr-ollama):
import { createPdfjsRasterizer } from "@sezzlee/pdf-raster-pdfjs";
import { createOllamaOcrProvider } from "@sezzlee/ocr-ollama"; import type { OcrBinding } from "@sezzlee/pdf-mcp";
const binding: OcrBinding = { rasterizer: createPdfjsRasterizer(), provider: createOllamaOcrProvider({ baseUrl: process.env["SEZZLEE_PDF_OCR_URL"] ?? "http://127.0.0.1:11434", model: process.env["SEZZLEE_PDF_OCR_MODEL"] ?? "deepseek-ocr:3b", }), dpi: 200, };
export default binding;
ocr_unavailable), never a silent fall back to the text layer. Otherwise an agent that asked for OCR could mistake "nobody transcribed this document" for "no match". describe_document → capabilities.ocr reports whether one is bound.needsOcr — "the model returned nothing" is not the same as "this page is blank".src/engine/, and lint bans importing @firecrawl/pdf-inspector outside that folder — a second import site would reintroduce the bug (measured on 1.23.0: PageMarkdownResult.page is 0-based, sibling pagesNeedingOcr is 1-based).needsOcr; a negative index wraps through u32. Both would look like a real page to the agent.classifyPdf marks every page of a document that contains a single scanned page. The list comes from the per-page extraction instead. classificationConfidence is confidence in the classifier's own verdict, not in any extracted text's accuracy.true; empty is true` only for a page the engine trusted and found genuinely blank.
coverageComplete is false, and an empty match list is not proof the query is absent from the whole document.pages selection is preserved across a cursor: it carries forward the rest of that selection and never wanders into unselected pages. A cursor resuming inside a page carries that page's text fingerprint; if the text changed since transcription, the response is stale_cursor rather than silently skipping content.fetch, node:http, node:net and their siblings are lint-banned inside src/, and the ban is repeated in every layer's override — a later oxlint override replaces no-restricted-imports rather than merging with it, so a single top-level ban would not apply everywhere.darwin-x64 binary and its wasm fallback is unpublished. On an unsupported host the server stops at startup with a one-line message (exit code 3).pnpm turbo run build --filter=@sezzlee/pdf-mcp
node packages/servers/pdf-mcp/dist/cli.js /path/to/documents
Tests: pnpm turbo run test --filter=@sezzlee/pdf-mcp (Vitest). A live-Ollama suite (test/ocr-live.spec.ts) is skipped unless SEZZLEE_PDF_OCR_URL is set; it also reads SEZZLEE_PDF_OCR_MODEL (default deepseek-ocr:3b). Everything else in test/ocr.spec.ts runs against fake ports; the live suite only proves the two real adapters compose.