می‌توانید از یک LLM یا عامل هوش مصنوعی بخواهید داده‌ها را از اسناد استخراج کند و پاسخ از یک موتور سند باشد، نه از خواندن مدل فایل چسبانده‌شده. با اجرای سرور GroupDocs.Parser.Mcp به‌صورت محلی در یک کانتینر Docker، یک درخواست می‌تواند متن، جدول، تصاویر جاسازی‌شده یا مقدار بارکد را برگرداند:

فاکتور.pdf چه می‌گوید و چه چیزی در جدول آن وجود دارد؟

نسخه گام‌به‌گام با پیکربندی و عیب‌یابی در مستندات موجود است: چگونه داده‌های سند را با استفاده از عوامل هوش مصنوعی و MCP استخراج کنیم.

چرا یک عامل هوش مصنوعی به ابزار استخراج نیاز دارد؟

یک مدل چت فقط آنچه در پنجرهٔ زمینهٔ خود قرار می‌گیرد را می‌داند. اگر یک PDF را در چت بچسبانید، مدل بر پایهٔ متنی که مشتری توانسته آن را از فایل استخراج کند کار می‌کند، به‌طوری که ستون‌ها فرو می‌ریزند، اسکن‌ها خالی می‌شوند و هیچ‌کس نمی‌تواند بگوید کدام یک اتفاق افتاده است. یک سرور استخراج این گام را از مدل جدا می‌کند: عامل یک ابزار را فراخوانی می‌کند، یک موتور سند فایل را داخل کانتینر می‌خواند و عامل نتیجه را دریافت می‌کند. سپس مدل کاری را انجام می‌دهد که در آن مهارت دارد، یعنی استدلال بر روی مقادیری که به آن داده شده است.

GroupDocs.Parser.Mcp هفت ابزار را برای مشتریان سازگار با MCP مانند Claude Desktop، Claude Code، Cursor، VS Code با GitHub Copilot و Windsurf فراهم می‌کند. پنج ابزار برای استخراج داده (extract_text، extract_tables، extract_images، extract_barcodes، extract_metadata)، یک ابزار برای بررسی (get_document_info) و یک ابزار برای گزارش وضعیت لایسنس (get_license_status).

روش ۱: درخواست مقدار و اجازه به عامل برای انتخاب ابزار

درخواست را به صورت سؤال دربارهٔ سند بیان کنید. عامل سؤال را به یک ابزار نگاشت می‌کند.

درخواست شما ابزاری که عامل فراخوانی می‌کند
“این چه می‌گوید؟” extract_text
“در جدول چه چیزی است؟” extract_tables
“چه کسی آن را نوشت و کی؟” extract_metadata
“شکل‌ها را ذخیره کن.” extract_images
“بارکد چه چیزی را رمزگذاری می‌کند؟” extract_barcodes

extract_text از PDF، DOCX، XLSX، PPTX، TXT، HTML، CSV، EML، MSG، RTF، ODT، EPUB و بیش از ۵۰ فرمت دیگر پشتیبانی می‌کند، بنابراین همان درخواست بر روی ایمیل و برگه‌محاسبه کار می‌کند. خروجی‌های بسیار بزرگ با یک نشانگر کوتاه می‌شوند، بنابراین برای یک گزارش طولانی صفحه به صفحه درخواست کنید:

متن این گزارش ۴۰ صفحه‌ای را صفحه به صفحه استخراج کنید و هر بخش را خلاصه کنید.

مثال جلسه (مختصر):

You:    What does invoice.pdf say, and what is in its table?
Agent:  [calls extract_text, extract_tables]
        Invoice 2026-0412 from Northwind Supplies, dated 3 October.
        The table has 3 rows (item, quantity, amount); the amounts add up to 1,240.00.

روش ۲: لایهٔ متن را قبل از اعتماد به نتیجهٔ خالی بررسی کنید

یک PDF دیجیتالی لایهٔ متنی دارد؛ اسکن لایه‌ای ندارد. در یک صفحهٔ اسکن‌شده extract_text مقدار کمی یا هیچ‌چیزی بر نمی‌گرداند که بیان صحیحی از فایل است. قبل از استخراج، عامل را وادار کنید این را تست کند:

این سند چند صفحه دارد و آیا متن استخراج‌پذیری دارد؟

get_document_info نام فایل، نوع، تعداد صفحات و اندازه را بدون تغییر چیزی برمی‌گرداند، و یک فراخوانی extract_text یک‌صفحه‌ای نشان می‌دهد آیا متن وجود دارد یا نه. دو فراخوانی ارزان هزینه «این فایل خالی است» را از «این فایل یک تصویر است» جدا می‌کند. در این سرور هیچ مرحلهٔ OCR وجود ندارد، بنابراین کلمات چاپ‌شده در اسکن به صورت پیکسل می‌مانند. کدها استثنا هستند و روش ۳ به آن‌ها می‌پردازد.

روش ۳: استخراج آنچه استخراج متن نمی‌تواند دست یابد

هر یک از جدول‌ها، تصاویر و بارکدها ابزار اختصاصی خود را دارند، زیرا تبدیل آن‌ها به متن، آنچه را که مفید می‌سازد از دست می‌دهد.

  • extract_tables جدول‌های Markdown را برمی‌گرداند که در چت رندر می‌شوند، یا ردیف‌های JSON وقتی format: "json" را پاس می‌دهید.
  • extract_images هر تصویر جاسازی‌شده را در پوشهٔ خروجی به صورت <basename>_image<N>.<ext> ذخیره می‌کند.
  • extract_barcodes کدهای Code128، QR Code، PDF417، DataMatrix، EAN-13، EAN-8، UPC، Aztec و موارد دیگر را رمزگشایی می‌کند، حتی در صفحات اسکن‌شده، زیرا مدل‌های موتور کدها را در تصویر رستر شده تشخیص می‌دهند.

موارد خطی را از invoice.pdf به صورت JSON استخراج کنید، سپس تصاویر صفحهٔ ۱ را ذخیره کنید.

آیا عامل به استخراج یا تبدیل نیاز دارد؟

این‌ها کارهای متفاوتی هستند و انتخاب سرور نادرست باعث سردرگمی می‌شود.

چه می‌خواهید سرور
مقادیر استخراج‌شده از سند: متن، جدول، بارکد، ویژگی‌ها GroupDocs.Parser.Mcp
سند به قالب دیگری، با حفظ چیدمان GroupDocs.Conversion.Mcp
Markdown تمیز از کل سند برای RAG GroupDocs.Markdown.Mcp
متادیتا ویرایش یا حذف شده، نه فقط خوانده شده GroupDocs.Metadata.Mcp

بسیاری از خطوط پردازش از دو سرور استفاده می‌کنند: تبدیل برای ورود داده‌ها، تجزیه برای استخراج.

اجرا به‌صورت محلی با Docker

این سرور فقط به‌صورت تصویر Docker عرضه می‌شود. موتور حدود ۲۳۴ مگابایت مدل‌های ONNX را در خود دارد، که باعث می‌شود بستهٔ NuGet از محدودیت ۲۵۰ مگابایت عبور کند، بنابراین دستوری به نام dnx وجود ندارد. یک پوشهٔ اسناد را به عنوان /data سوار کنید:

docker run --rm -i -v $(pwd)/documents:/data \
  ghcr.io/groupdocs-parser/parser-net-mcp:latest

کلاینت هوش مصنوعی شما کانتینر را به‌عنوان یک فرآیند فرزند از طریق stdio اجرا می‌کند. هیچ پورت ورودی‌ای وجود ندارد و اسناد روی ماشین باقی می‌مانند. پیکربندی برای هر کلاینت (Claude Desktop، Claude Code، VS Code، Cursor، Windsurf، Cline و Codex) در Register in AI clients موجود است.

محدودیت‌ها چیستند؟

  • حالت ارزیابی. بدون لایسنس، استخراج محدود است؛ محدودیت‌های دقیق در [licensing page] کتابخانه موجود است. ابتدا از عامل بخواهید get_license_status را اجرا کند و خروجی بدون لایسنس را به‌عنوان یک تست اولیه در نظر بگیرید، نه یک خواندن کامل.
  • بدون OCR. متن در یک اسکن قابل استخراج نیست.
  • فقط Docker. نیاز به نصب Docker دارید؛ تصویر بزرگ است، بنابراین یک‌بار آن را دریافت کنید.

سؤالات متداول

آیا می‌توانم متن یک PDF را با Claude به‌صورت محلی استخراج کنم، بدون بارگذاری آن؟
بله. سرور در یک کانتینر روی ماشین شما اجرا می‌شود و Claude Desktop از طریق stdio با آن ارتباط برقرار می‌کند، بنابراین فایل از پوشهٔ سوارشده خوانده می‌شود و به سرویس استخراج ارسال نمی‌شود.

چرا عامل برای برخی PDFها هیچ چیزی بر نمی‌گرداند؟
احتمالاً فایل یک اسکن بدون لایهٔ متن است. از عامل بخواهید get_document_info و یک فراخوانی extract_text یک‌صفحه‌ای را اجرا کند تا تأیید شود، سپس برای کدها extract_barcodes یا برای کلمات یک ابزار OCR استفاده کنید.

آیا دستور dnx برای GroupDocs.Parser.Mcp وجود دارد؟
خیر. این محصول فقط Docker است، بنابراین هر نصب از docker run یا ورودی کلاینت MCP که Docker را اجرا می‌کند استفاده می‌کند.

بیشتر بخوانید