یک سرور GroupDocs MCP به Claude Desktop، Claude Code، Cursor، GitHub Copilot و سایر مشتریان MCP امکان کار با اسناد شما به‌صورت محلی را می‌دهد: مشتری سرور را به‌عنوان یک فرایند فرزند بر روی دستگاه خود اجرا می‌کند و فایل‌ها در پوشه‌هایی که انتخاب می‌کنید خوانده و نوشته می‌شوند. معماری کامل و مدل امنیتی در صفحهٔ مستندات هر محصول برای استفاده در محل (on‑premise) مستند شده است، برای مثال اجرای سرورهای GroupDocs MCP در محل: معماری و مدل امنیتی. این پست سه روش رایج برای اتصال یک عامل هوش مصنوعی به اسناد را مقایسه می‌کند و توضیح می‌دهد چه چیزی از ماشین خارج می‌شود و چه چیزی نمی‌رود.

کدام معماری‌ها می‌توانند یک عامل هوش مصنوعی را به اسناد متصل کنند؟

سه مورد وجود دارد. آن‌ها بر اساس سؤالی که یک بازرس امنیتی ابتدا می‌پرسد متفاوت هستند: سند به کجا می‌رود؟

بارگذاری ابری API میزبانی‌شده سرور MCP محلی
چگونه کار می‌کند دستیار یا افزونه فایل را به سرویس فروشنده بارگذاری می‌کند کد یا عامل شما با استفاده از REST API فروشنده فایل را می‌فرستد مشتری هوش مصنوعی یک فرایند سرور را بر روی دستگاه شما اجرا می‌کند
سند به کجا می‌رود یک ابر شخص ثالث یک ابر شخص ثالث یا مستأجر خودتان هیچ‌جا: فقط از پوشه‌های محلی خوانده و در آن‌ها نوشته می‌شود
سطح تماس شبکه خروجی به سمت فروشنده خروجی به سمت فروشنده فقط stdio؛ هیچ‌چیز دیگری به‌جز فایل مجوز، گزارش‌های استفاده (بدون محتوای سند) در صورت داشتن لایسنس متری
پورت‌های ورودی غیرقابل اعمال غیرقابل اعمال هیچ‌یک
استفاده در محیط ایزوله (air‑gapped) غیرممکن معمولاً نه؛ بستگی به گزینه‌های استقرار فروشنده دارد ممکن است با فایل مجوز
چه کسی اجرا می‌کند فروشنده فروشنده شما، به‌عنوان بخشی از مشتری هوش مصنوعی

ستون سوم همان چیزی است که سرورهای GroupDocs MCP پیاده‌سازی می‌کنند. بقیهٔ این پست به نحوهٔ کارکرد و محدودیت‌های آن می‌پردازد.

جریان دادهٔ یک سرور MCP محلی چگونه است؟

مشتری هوش مصنوعی سرور را به‌عنوان یک فرایند فرزند اجرا می‌کند و از طریق ورودی/خروجی استاندارد (stdio) با استفاده از JSON‑RPC با آن ارتباط برقرار می‌کند. سرور هیچ‌گاه بر روی یک پورت شبکه گوش نمی‌دهد و با داشتن فایل مجوز هیچ‌گونه اتصال خروجی نیز برقرار نمی‌کند.

+--------------+          +--------------------+         +------------------+
|  مشتری هوش   |  stdio   | فرایند سرور MCP   | reads / | سیستم‌فایل محلی |
|  مصنوعی     | <------> | (موتور GroupDocs) | <-----> | ذخیره‌سازی / خروجی |
| (Claude,     | JSON-RPC|   فرایند فرزند    |  writes |     پوشه‌ها      |
|  Cursor, ..) |          |                    |         |                  |
+--------------+          +--------------------+         +------------------+
       |
       | فقط درخواست‌ها و قطعات نقل‌قول‌شده
       v
+--------------------+
|   ارائه‌دهنده مدل  |  (ابری، یا یک مدل محلی داخل شبکهٔ شما)
+--------------------+

یک بازرس امنیتی می‌تواند چهار بیانیهٔ قابل بررسی داشته باشد:

  • انتقال: ورودی و خروجی استاندارد به یک فرایند فرزند. چیزی برای فایروال کردن یا افشا کردن وجود ندارد.
  • پورت‌های ورودی: هیچ‌یک.
  • داده‌نگاری (Telemetry): هیچ‌یک. موتور سند درون‌فرایند اجرا می‌شود.
  • استفاده از شبکه: فقط در زمان نصب، برای دریافت بسته از nuget.org یا تصویر از ghcr.io. در زمان اجرا سرور هیچ تماس خروجی‌ای انجام نمی‌دهد، به‌جز یک استثنای لایسنس که در ادامه توضیح داده می‌شود.

به‌جای اعتماد به این موضوع می‌توانید خودتان تأیید کنید: یک کار را اجرا کنید و به دنبال سوکت‌های گوش‌داده‌شده و اتصال‌های خروجی بگردید.

چه چیزی هنگام پردازش سند توسط یک عامل از ماشین خارج می‌شود؟

اسناد از ماشین خارج نمی‌شوند. درخواست‌ها (prompts) و قطعات نقل‌قول‌شده خارج می‌شوند.

مدل پشت مشتری هوش مصنوعی شما مکالمه را می‌بیند. اگر مدل به‌صورت ابری میزبانی شود، متن دستور شما به ارائه‌دهنده مدل می‌رسد و هر چیزی که عامل به شما نقل می‌کند نیز می‌رود. دو مثال:

  • پس از یک مقایسه، یک عامل گزارش می‌دهد که شرط پرداخت از ۳۰ به ۴۵ روز تغییر کرده است. این جمله بخشی از مکالمه است و به ارائه‌دهنده می‌رسد.
  • پس از یک استخراج، یک عامل مجموع فاکتور را گزارش می‌کند. فایل جابه‌جا نشده است، اما آن مقدار رفته است.

یک عادت مفید این است که درخواست‌ها را طوری فرموله کنید که پاسخ محتوا کمتری داشته باشد؛ برای مثال به‌جای درخواست مجموع‌ها، بپرسید کدام فایل‌ها مجموعی بالاتر از یک آستانه دارند. برای مجموعه‌های حساس، سرور را با یک مدل میزبانی‌شده محلی ترکیب کنید. سپس کل حلقه (مشتری، مدل، سرور، فایل‌ها) داخل شبکهٔ شما می‌ماند.

آیا یک سرور محلی به دسترسی به اینترنت نیاز دارد؟

برای پردازش نیازی نیست. این بستگی به حالت لایسنس دارد:

  • فایل مجوز: توسط فرایند محلی از دیسک خوانده می‌شود. این حالت به‌صورت کامل آفلاین کار می‌کند و گزینهٔ مناسب برای شبکه‌های ایزوله (air‑gapped) است.
  • متری (پرداخت به ازای استفاده): سرور استفاده را به GroupDocs گزارش می‌دهد، بنابراین نیاز به خروجی شبکه دارد. گزارش حاوی محتوای سند نیست، اما خود اتصال باید توسط فایروال شما اجازه داده شود.

اگر هم کلیدهای متری و هم فایل مجوز پیکربندی شوند، کلیدهای متری اولویت دارند. کلیدها را در متغیرهای محیطی نگه دارید نه در تنظیمات کامیت‌شده. صفحهٔ لایسنس هر محصول نحوهٔ تنظیم را توضیح می‌دهد و ابزار get_license_status حالت فعال را گزارش می‌کند.

چگونه سرور را داخل مرزهای شبکه با Docker اجرا کنید؟

تصویر Docker اغلب گزینهٔ ساده‌تری برای تیم پلتفرم است: یک تصویر با تمام وابستگی‌های بومی، بدون نیاز به SDK روی میزبان، و مرز محدود به پوشه‌هایی که سوار می‌کنید. هر محصول تصویر مخصوص خود را دارد که به شکل ghcr.io/groupdocs-<product>/<product>-net-mcp نام‌گذاری شده است. دستور زیر شکل یک محصول را نشان می‌دهد؛ جایگزین‌کننده‌ها را با مقادیر خود عوض کنید.

docker run --rm -i \
  -v /srv/documents:/data \
  -v /srv/licenses:/license:ro \
  -e GROUPDOCS_MCP_STORAGE_PATH=/data \
  -e GROUPDOCS_LICENSE_PATH=/license/GroupDocs.<Product>.lic \
  ghcr.io/groupdocs-<product>/<product>-net-mcp:<tag>
  • برچسب (tag) را ثابت کنید. دستورات سریع‌الاستفاده از :latest استفاده می‌کنند؛ برای تولید، برچسب را به نسخه‌ای که تست کرده‌اید ثابت کنید تا بازسازی نتواند رفتار را تحت یک جریان کاری در حال اجرا تغییر دهد.
  • سوار کردن به‌صورت عمدی. کانتینر فقط پوشه‌هایی را می‌بیند که به آن می‌دهید، که مرزی محکم‌تر نسبت به فرایندی است که به‌عنوان کاربر شما اجرا می‌شود.
  • مجوز را به‌صورت فقط‑خواندنی سوار کنید.
  • بخش‌های ایزوله (air‑gapped): تصویر را پیش‌بارگیری کنید یا بستهٔ NuGet را پیش‌کش کنید و نسخه را ثابت کنید.

مشتری هوش مصنوعی شما این دستور docker run را به‌عنوان فرمان سرور در تنظیمات MCP خود اجرا می‌کند، بنابراین کانتینر فرایند فرزند در نمودار بالا است. اسناد تصاویر را به‌عنوان چند معماری (multi‑arch) (linux/amd64 و linux/arm64) توصیف می‌کنند.

آیا یک سرور MCP محلی برای صنایع تحت‌نظر مقررات مناسب است؟

این بزرگ‌ترین سؤال در یک بازبینی حریم‌خصوصی را حذف می‌کند؛ یعنی انتقال اسناد به یک پردازشگر شخص ثالث. تیم‌های حقوقی، مالی، بهداشتی و بخش عمومی که سیاستشان ممنوعیت بارگذاری اسناد است می‌توانند از آن به‌عنوان یک بلوک سازنده برای جریان‌های کاری مطابق با HIPAA یا GDPR استفاده کنند. این فقط توصیف مناسب بودن معماری است. سرورهای GroupDocs MCP برای هیچ‌یک از مقرراتی گواهی نشده‌اند و تعهدات شما همچنان به مدلی که با آن ترکیب می‌کنید، حالت لایسنس و کنترل‌های خودتان بستگی دارد.

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

  • یک سرور یک فرایند مشتری را سرو می‌کند. یک سرور stdio توسط یک مشتری روی یک ماشین شروع می‌شود. این یک سرویس چندکاربره نیست. برای سرویس مشترک، سرویس خود را جلوی کتابخانهٔ GroupDocs قرار دهید به‌جای اجرای تعداد زیادی سرور MCP.
  • لایسنس متری نیاز به خروجی شبکه دارد. گزارش‌های استفاده ارسال می‌شوند، همان‌طور که در بالا توضیح شد. اگر شبکه باید بسته بماند، از فایل مجوز استفاده کنید.
  • درخواست‌ها هنوز به ارائه‌دهنده مدل می‌رسند مگر این‌که از یک مدل میزبانی‌شده محلی استفاده کنید.
  • حالت ارزیابی محدودیت دارد. بدون لایسنس، سرورها در حالت ارزیابی با محدودیت‌های محصول‑خاص اجرا می‌شوند. برای مثال، سرور Comparison فقط دو صفحهٔ اول را مقایسه می‌کند و نتیجه را واترمارک می‌کند. ابتدا get_license_status را فراخوانی کنید و صفحهٔ لایسنس محصول خود را بخوانید.
  • Parser و Search فقط به‌صورت تصاویر Docker عرضه می‌شوند. GroupDocs.Parser.Mcp و GroupDocs.Search.Mcp بستهٔ NuGet ندارند، بنابراین مسیر Docker بالا تنها مسیر برای این محصولات است. روی یک میزبان لینوکسی، کانتینرهای آن‌ها را با --user "$(id -u):$(id -g)" اجرا کنید تا بتوانند در پوشه‌های سوارشده بنویسند.
  • استثنای‌های پلتفرم. دو عملیات خاص PDF در حال حاضر روی لینوکس (از جمله تصویر Docker) شکست می‌خورند، چون پردازش تصویر موتور PDF به System.Drawing.Common وابسته است که .NET فقط روی ویندوز پشتیبانی می‌کند: generate_pages_preview در GroupDocs.Annotation.Mcp برای فایل‌های PDF (رندر Word) و redact_image_area و erase_metadata در GroupDocs.Redaction.Mcp برای فایل‌های PDF (redact_text روی PDF و هر سه روی فایل‌های Word کار می‌کند). این‌ها را روی ویندوز با dnx اجرا کنید؛ به پست‌های محصول مراجعه کنید.

پرسش‌های متداول

آیا MCP برای اسناد حساس امن است؟
با یک سرور GroupDocs MCP، اسناد درون‌فرایند بر روی دستگاه شما و از طریق stdio پردازش می‌شوند، بدون پورت‌های گوش‌داده‌شده و بدون داده‌نگاری. آنچه باقی می‌ماند تا ارزیابی شود، مدل مورد استفادهٔ مشتری هوش مصنوعی شماست، زیرا درخواست‌ها و قطعات نقل‌قول‌شده به آن می‌روند.

آیا می‌توانم ابزارهای Claude را بدون ارسال داده به ابر اجرا کنم؟
اسناد به‌هر حال به‌صورت محلی می‌مانند. برای اینکه درخواست‌ها نیز محلی بمانند، از یک مشتری استفاده کنید که از یک مدل میزبانی‌شده محلی پشتیبانی می‌کند، تا هیچ بخشی از مکالمه از شبکهٔ شما خارج نشود.

سرور MCP چه داده‌ای ارسال می‌کند؟
در زمان اجرا، یک سرور GroupDocs MCP وقتی از فایل مجوز استفاده می‌شود، هیچ‌چیزی را از طریق شبکه ارسال نمی‌کند. با لایسنس متری، گزارش‌های استفاده به GroupDocs ارسال می‌شود و محتوای سند هرگز ارسال نمی‌شود.

به‌ازای هر محصول: صفحات on‑premise در مستندات

هر صفحه همان معماری را با دستورات مخصوص آن محصول پوشش می‌دهد. این‌ها مراجع اصلی برای یک بازبینی امنیتی هستند.

به‌ازای هر محصول: از کجا در بلاگ شروع کنیم

هر محصول مجموعه‌ای از پست‌ها دارد — برای اکثر‌ها چهار پست و برای Search شش پست. اولین پست الگو را توضیح می‌دهد؛ بقیه آن را اعمال می‌کنند.