ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

pdfnative MCP — PDF generation, PAdES signing & introspection

โดย Nizokaรุ่น 1.8.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.Nizoka/pdfnative-mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

PDF MCP server: PDF/A, PDF/X-4, PAdES (LTV), forms, 32 scripts, JPEG 2000, spot colours. 28 tools

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: เอกสาร ตาราง และงานออฟฟิศ
  • ต้องใส่ค่าเหล่านี้: PDFNATIVE_MCP_HTTP_TOKEN, PDFNATIVE_MCP_TSA_AUTH

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

  • ผลตรวจเบื้องต้น: ผ่าน 1 จาก 1 ข้อ
  • รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
  • ค่าที่คุณต้องใส่เอง: PDFNATIVE_MCP_OUTPUT_DIR, PDFNATIVE_MCP_OUTPUT_BASE_URL, PDFNATIVE_MCP_CACHE_DIR, PDFNATIVE_MCP_FONT_DIR, PDFNATIVE_MCP_PORT, PDFNATIVE_MCP_HTTP_TOKEN, PDFNATIVE_MCP_MAX_INFLATE_BYTES, PDFNATIVE_MCP_CREATION_DATE, SOURCE_DATE_EPOCH, PDFNATIVE_MCP_TSA_URL, PDFNATIVE_MCP_TSA_AUTH, PDFNATIVE_MCP_REVOCATION, PDFNATIVE_MCP_NETWORK_ALLOWED_HOSTS, PDFNATIVE_MCP_NETWORK_TIMEOUT_MS

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "pdfnative": {
      "command": "npx",
      "args": [
        "-y",
        "pdfnative-mcp"
      ],
      "env": {
        "PDFNATIVE_MCP_OUTPUT_DIR": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_OUTPUT_BASE_URL": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_CACHE_DIR": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_FONT_DIR": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_PORT": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_HTTP_TOKEN": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_MAX_INFLATE_BYTES": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_CREATION_DATE": "ใส่ค่าของคุณ",
        "SOURCE_DATE_EPOCH": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_TSA_URL": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_TSA_AUTH": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_REVOCATION": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_NETWORK_ALLOWED_HOSTS": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_NETWORK_TIMEOUT_MS": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add pdfnative --env PDFNATIVE_MCP_OUTPUT_DIR='ใส่ค่าของคุณ' --env PDFNATIVE_MCP_OUTPUT_BASE_URL='ใส่ค่าของคุณ' --env PDFNATIVE_MCP_CACHE_DIR='ใส่ค่าของคุณ' --env PDFNATIVE_MCP_FONT_DIR='ใส่ค่าของคุณ' --env PDFNATIVE_MCP_PORT='ใส่ค่าของคุณ' --env PDFNATIVE_MCP_HTTP_TOKEN='ใส่ค่าของคุณ' --env PDFNATIVE_MCP_MAX_INFLATE_BYTES='ใส่ค่าของคุณ' --env PDFNATIVE_MCP_CREATION_DATE='ใส่ค่าของคุณ' --env SOURCE_DATE_EPOCH='ใส่ค่าของคุณ' --env PDFNATIVE_MCP_TSA_URL='ใส่ค่าของคุณ' --env PDFNATIVE_MCP_TSA_AUTH='ใส่ค่าของคุณ' --env PDFNATIVE_MCP_REVOCATION='ใส่ค่าของคุณ' --env PDFNATIVE_MCP_NETWORK_ALLOWED_HOSTS='ใส่ค่าของคุณ' --env PDFNATIVE_MCP_NETWORK_TIMEOUT_MS='ใส่ค่าของคุณ' -- npx -y pdfnative-mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "pdfnative": {
      "command": "npx",
      "args": [
        "-y",
        "pdfnative-mcp"
      ],
      "env": {
        "PDFNATIVE_MCP_OUTPUT_DIR": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_OUTPUT_BASE_URL": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_CACHE_DIR": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_FONT_DIR": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_PORT": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_HTTP_TOKEN": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_MAX_INFLATE_BYTES": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_CREATION_DATE": "ใส่ค่าของคุณ",
        "SOURCE_DATE_EPOCH": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_TSA_URL": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_TSA_AUTH": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_REVOCATION": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_NETWORK_ALLOWED_HOSTS": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_NETWORK_TIMEOUT_MS": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "pdfnative": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "pdfnative-mcp"
      ],
      "env": {
        "PDFNATIVE_MCP_OUTPUT_DIR": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_OUTPUT_BASE_URL": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_CACHE_DIR": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_FONT_DIR": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_PORT": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_HTTP_TOKEN": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_MAX_INFLATE_BYTES": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_CREATION_DATE": "ใส่ค่าของคุณ",
        "SOURCE_DATE_EPOCH": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_TSA_URL": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_TSA_AUTH": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_REVOCATION": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_NETWORK_ALLOWED_HOSTS": "ใส่ค่าของคุณ",
        "PDFNATIVE_MCP_NETWORK_TIMEOUT_MS": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • PDFNATIVE_MCP_OUTPUT_DIR env
    Absolute path of a sandboxed directory where outputMode='file' may write PDFs. Unset: every tool returns base64 only (file output disabled).
  • PDFNATIVE_MCP_OUTPUT_BASE_URL env
    Optional public base URL of PDFNATIVE_MCP_OUTPUT_DIR when the operator serves it over HTTP (e.g. https://files.example.com/pdf/). File-mode results then carry url (base + sandbox-relative path, perce…
  • PDFNATIVE_MCP_CACHE_DIR env
    Opt-in content-addressed response cache directory (SHA-256 keyed, 1h TTL, 256 MiB LRU, plaintext at rest). Never caches encrypt/decrypt, sign, timestamp, add_ltv, update_metadata, encrypted builds or…
  • PDFNATIVE_MCP_FONT_DIR env
    Optional operator font sandbox: absolute path of a directory of .ttf / .otf files (at most 64, 16 MiB each), each parsed by the engine and registered at boot under the slug of its file name; tools na…
  • PDFNATIVE_MCP_PORT env
    Serve Streamable HTTP on this loopback port instead of stdio (MCP 2026-07-28, stateless). Unauthenticated unless PDFNATIVE_MCP_HTTP_TOKEN is set.
  • PDFNATIVE_MCP_HTTP_TOKEN ความลับ env
    Opt-in bearer token for the HTTP transport (>= 16 chars, no whitespace). When set, /mcp requires 'Authorization: Bearer ' or answers 401. Never logged.
  • PDFNATIVE_MCP_MAX_INFLATE_BYTES env
    Per-stream FlateDecode decompression cap in bytes (zip-bomb mitigation; default 104857600 = 100 MiB). Integer >= 1024; an invalid value refuses to start the server.
  • PDFNATIVE_MCP_CREATION_DATE env
    ISO 8601 instant with a time zone (e.g. 2026-01-01T00:00:00Z) pinned as the creation date of every generated document: reproducible bytes on any host. A call's own creationDate still wins. An invalid…
  • SOURCE_DATE_EPOCH env
    reproducible-builds.org convention: integer seconds since the Unix epoch, used as the pinned creation date when PDFNATIVE_MCP_CREATION_DATE is unset. An invalid value refuses to start the server.
  • PDFNATIVE_MCP_TSA_URL env
    http(s) URL of the RFC 3161 timestamp authority used by sign_pdf timestamp=true and timestamp_pdf (PAdES B-T / B-LTA). Unset: those calls fail with TSA_NOT_CONFIGURED and no network request is made.…
  • PDFNATIVE_MCP_TSA_AUTH ความลับ env
    Optional Authorization header value sent to the TSA (e.g. 'Basic ...' or 'Bearer ...'). Never logged or echoed.
  • PDFNATIVE_MCP_REVOCATION env
    'ocsp', 'crl' or 'ocsp,crl': enables online revocation collection for add_ltv mode='online' (PAdES B-LT). Unset: that mode fails with REVOCATION_NOT_CONFIGURED; mode='offline' stays fully offline. Re…
  • PDFNATIVE_MCP_NETWORK_ALLOWED_HOSTS env
    Comma-separated allow-list of OCSP / CRL responder hosts ('host', 'host:port' or '*.suffix'). Mandatory when PDFNATIVE_MCP_REVOCATION is set: responder URLs found in certificates are fetched only if…
  • PDFNATIVE_MCP_NETWORK_TIMEOUT_MS env
    Per-request timeout for TSA / OCSP / CRL calls in milliseconds, 1000-120000 (default 10000).

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub Nizoka ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด เอกสาร ตาราง และงานออฟฟิศi

  • ดาวมากกว่า 0% ของอีก 2195 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 81% ของอีก 2195 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 2195 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

pdfnative MCP — PDF generation, PAdES signing & introspection ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: PDFNATIVE_MCP_HTTP_TOKEN, PDFNATIVE_MCP_TSA_AUTH

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.8.0) เข้า registry 5 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Agent-Native Calendar

โดย BuilderIO

Agent-Native Google Calendar - manage events, sync, and public booking

รันบนคลาวด์★ 7,620MITอัปเดต 2 เดือนที่ผ่านมา
ติดตั้ง

Excel MCP Server

โดย haris-musa

ให้ AI สร้างและแก้ไฟล์ Excel ได้เอง ทั้งสูตร กราฟ และ PivotTable โดยไม่ต้องมีโปรแกรม Excel ในเครื่อง

รันบนเครื่อง★ 4,276MITอัปเดต 6 วันที่ผ่านมา
ติดตั้ง

MCP Server for Excel

โดย sbroenne

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

รันบนเครื่อง★ 847MITอัปเดต 4 วันที่ผ่านมา
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

pdfnative-mcp

MCP server for PDF generation, PDF/A archival, PDF/X-4 print exchange, spot colours, right-to-left and 32-script text, JPEG 2000, fine typography, PAdES signing with long-term validation, AcroForms, merge/split, encryption and layout preview — 28 tools and 7 prompts on the pdfnative engine (zero-dependency, ISO 32000-1 compliant), for Claude Desktop, Cursor, ChatGPT and any Model Context Protocol client.


✨ Features

pdfnative-mcp exposes 28 production-grade tools to any MCP host:

ToolPurpose
generate_basic_pdfMulti-page documents from 13 block kinds — heading, paragraph, list, table, image (JPEG/PNG/JPEG 2000), link, toc (printed table of contents), barcode, svg, formField, chart, pageBreak, spacer — every DocumentBlock the engine offers. Embedded newlines auto-split into paragraphs. Optional pdfA, pdfx *(new in v1.7.0)*, print, metadata, embedFonts, watermark, outline, layout options (pageSize, margins, headerTemplate / footerTemplate, compress, debug, encrypt), typography *(new in v1.7.0)* and CMYK colours *(new in v1.7.0)*.
inspect_layout *(new in v1.6.0)*Read-only pagination dry run of the same blocks (+ title, footerText, pdfA, normalize, embedFonts, font, pageSize, margins, headerTemplate, footerTemplate, typography): page count and where every block lands, no PDF produced.
add_barcodeQR Code, Code 128, EAN-13, Data Matrix, PDF417 — embedded in a single-page PDF.
add_international_text32 Unicode scripts — Gujarati, Gurmukhi, Kannada, Malayalam and Odia *(new in v1.8.0)*, Lao, Tai Tham, New Tai Lue, Tai Le and Cham *(v1.7.0)* — plus Latin, math and COLRv1 colour emoji (flag / ZWJ sequences, skin-tone modifiers), with BiDi & OpenType shaping; multi-lang per document.
add_tableTabular reports with smart fields (wrap, repeatHeader, zebra, caption, minRowHeight, cellPadding).
add_formCreate a new interactive AcroForm PDF with text fields, text areas, checkboxes, radio buttons, dropdowns, list boxes (+ placeholder hint text).
read_form_fieldsRead-only enumeration of an existing AcroForm's field tree (names, types, values, widgets).
fill_formFill and/or flatten an existing AcroForm (non-destructive incremental update).
add_chartNative vector charts v2 — bar / barH / stackedBar / stackedBarH / line / area / scatter / pie / donut, secondary axis, log & time scales, data labels, per-value bar colours and optional series labels *(new in v1.8.0)* (pure PDF path operators, PDF/A-safe).
embed_imageEmbed a JPEG, PNG or JPEG 2000 image *(image/jp2, new in v1.8.0)* (base64) into a titled PDF document (align, alt text for tagged output).
prepare_signature_placeholderOptional step 1 of the sign workflow — create a PDF with a /Sig placeholder (signer metadata, subFilter, reserveTimestamp baked in).
sign_pdfPAdES B-B / B-T CMS signature (RSA-SHA256/384/512, ECDSA-SHA256 P-256; profile: 'pades', timestamp, certChainDerBase64, multiple signatures, pinnable signingTime). Auto-injects a placeholder when needed.
add_ltv *(new in v1.6.0)*PAdES B-LT — embed a /DSS with certificates + OCSP/CRL material (operator-configured provider, or caller-supplied offline material composed by the engine — `match: 'all''chain'`, *new in v1.8.0*).
timestamp_pdf *(new in v1.6.0)*PAdES B-LTA — append an RFC 3161 /DocTimeStamp from the operator-configured TSA; re-run to extend the archival chain.
verify_pdfVerify every PAdES signature and document timestamp (integrity + signature value + optional chain trust; a /DocTimeStamp counts in allValid like any signature); ltv: true reports the B-B…B-LTA level.
validate_pdfValidate a Tagged PDF for PDF/UA (ISO 14289-1) structural conformance, or with standard: 'pdf-x-4' *(new in v1.7.0)* the structural prerequisites of PDF/X-4 (ISO 15930-7) — read-only, not a certified preflight.
add_attachmentGenerate a PDF/A-3 document with embedded files (Factur-X / ZUGFeRD invoices).
extract_attachmentsRead-only extraction of embedded files (Factur-X / ZUGFeRD XML round-trip) with byte-for-byte payloads.
extract_textUnicode text extraction (resolves /ToUnicode; logical order for right-to-left and Indic text, tagged or not) with optional positioned runs; onStreamError *(new in v1.8.0)*; opens encrypted PDFs via password.
inspect_pdfRead-only inspection: PDF version, page count, encryption (+ precise encryptionInfo), PDF/A claim, PDF/X claim (pdfX, *new in v1.7.0*), signatures (+ inventory, /DSS, document timestamps), page boxes, /Trapped, attachments, placeholder state, annotations: true inventory of existing page annotations.
update_metadata *(new in v1.6.0)*Rewrite /Info title / author / subject / keywords (+ XMP, dates included) of an existing PDF as an incremental update; pin modDate for reproducible bytes.
encrypt_pdfRe-secure a PDF with AES-128 / AES-256 (owner/user passwords, permissions, password rotation).
decrypt_pdfEmit an unencrypted copy of an RC4 / AES-128 / AES-256 document.
merge_pdfsConcatenate 2–50 PDFs into one via pdfnative's page-tree API (page boxes preserved).
split_pdfSplit one PDF into one document per page range (multi-output).
extract_pagesPull an arbitrary page subset into a single PDF.
annotate_pdfAdd markup annotations (highlight, note, square/circle, line, freetext) and link annotations *(new in v1.8.0)* as a visual overlay — not a redaction.
draft_governance_issueDraft a governance-compliant GitHub issue locally for human review; never submits, no network.

New in v1.8.0:

  • 🎨 Spot colours — print.spotColours declares inks with a process alternate; { spot, tint } (a /Separation plate) and { inks: { … } } (a /DeviceN mix) are accepted wherever a colour is — table borders, templates, watermarks, charts, SVG, annotations. An undeclared ink is refused by name.
  • ↔️ Right-to-left documents — direction: 'auto' | 'ltr' | 'rtl' on the nine document tools, inspect_layout and each paragraph; untagged output carries /ActualText on right-to-left and reordered shaped runs (actualText: false to opt out), so extract_text returns reading order with or without a PDF/A claim.
  • 🌏 32 Unicode scripts — add_international_text gains gu (Gujarati), pa (Gurmukhi), kn (Kannada), ml (Malayalam) and or (Odia); every shaper names its glyphs in ToUnicode, so Tai Tham passes PDF/A-2u too.
  • 🖼️ JPEG 2000 — mimeType: 'image/jp2' (a JP2 file or a raw codestream) on embed_image, the image block and image watermarks, embedded as /JPXDecode without re-encoding; PDFA1_JPX_IMAGE under PDF/A-1, PDFA_JPX_IMAGE for an opacity channel.
  • 🖨️ PDF/X-4 + PDF/A-2 dual claim — pdfx: 'pdfx4' combines with pdfA: 'pdfa2b' | 'pdfa2u' in one file; pdfa1b and pdfa3b are refused with the engine's own message.
  • 🔗 Link annotations — annotate_pdf type: 'link' adds a /URI link to an existing page (http: / https: / mailto:).
  • 🔤 Operator fonts — PDFNATIVE_MCP_FONT_DIR registers the operator's .ttf / .otf files at boot (parsed by the engine, ≤ 64 files); font: ' ' on generate_basic_pdf, inspect_layout and add_international_text draws that face first — FONT_NOT_FOUND lists the slugs. See docs/guides/FONTS.md.
  • 🌐 File mode behind a reverse proxy — PDFNATIVE_MCP_OUTPUT_BASE_URL maps the sandbox to a public base URL: file-mode results carry url and name it instead of the host's path (issue #66); pure string formatting, never requested.
  • 📊 Charts — series[].colors (one colour per bar) and an optional series label ("Series N" otherwise).
  • 🔏 LTV, ECDSA — add_ltv mode: 'offline' composes /DSS + /VRI through the engine (match: 'all' | 'chain'); verify_pdf verifies ECDSA through the engine's ecdsaVerifyHash (the local P-256 code is gone).
  • 📖 extract_text — a content stream over the decompression cap is now PDF_PARSE_FAILED naming the remedy (onStreamError: 'skip' restores the 1.7.0 empty page); inspect_pdf decodes /Info text strings (UTF-16BE titles read back as text).
  • 🤝 Governance as resources — pdfnative://governance/policy and pdfnative://governance/rules serve the AI-governance contract byte-identical to the repository (always listed); 13 engine diagnostics (4 new), 48 error codes (FONT_NOT_FOUND), prepare_signature_placeholder.blocks takes 5000 items like generate_basic_pdf (llama.cpp grammar, issue #65); calls carrying password are never cached.
  • 🧪 Hardening — the pdfnative 1.9 release pipeline (guard → build → publish → attest → registry: Trusted Publishing, SHA-512-pinned npm client, registry bytes attested with three SBOMs, server.json published to the MCP registry with the workflow's OIDC identity), ClusterFuzzLite over five boundary targets, workflow-lint (zizmor + actionlint) as a required check, block-mode egress on the Linux jobs whose hosts are baselined (audit mode with a dated reason elsewhere), CodeQL on the workflows, Node 26 advisory, a pack-manifest

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx