MCP Reference: drivemcp.googleapis.com

یک سرور پروتکل زمینه مدل (MCP) به عنوان یک پروکسی بین یک سرویس خارجی عمل می‌کند که زمینه، داده‌ها یا قابلیت‌هایی را برای یک مدل زبان بزرگ (LLM) یا برنامه هوش مصنوعی فراهم می‌کند. سرورهای MCP برنامه‌های هوش مصنوعی را به سیستم‌های خارجی مانند پایگاه‌های داده و سرویس‌های وب متصل می‌کنند و پاسخ‌های آنها را به فرمتی که برنامه هوش مصنوعی می‌تواند درک کند، ترجمه می‌کنند.

ابزارهای MCP

یک ابزار MCP یک تابع یا قابلیت اجرایی است که یک سرور MCP آن را در اختیار یک برنامه LLM یا هوش مصنوعی قرار می‌دهد تا عملی را در دنیای واقعی انجام دهد.

سرور MCP مربوط به drivemcp.googleapis.com ابزارهای زیر را دارد:

ابزارهای MCP
ایجاد_فایل

برای ایجاد یا آپلود فایل در گوگل درایو، از این ابزار استفاده کنید.

در صورت آپلود فایل، صرف نظر از mimetype فایل آپلود شده، محتوا باید به صورت base64 در فیلد content کدگذاری شود.

پس از ایجاد موفقیت‌آمیز، یک شیء فایل واحد را برمی‌گرداند.

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

  • application/vnd.google-apps.document
  • application/vnd.google-apps.spreadsheet
  • application/vnd.google-apps.presentation

به طور پیش‌فرض، تبدیل‌های زیر برای انواع MIME زیر انجام می‌شود:

  • text/plain به application/vnd.google-apps.document
  • text/csv به application/vnd.google-apps.spreadsheet

برای غیرفعال کردن تبدیل‌ها برای انواع MIME شخص ثالث، disable_conversion_to_google_type را روی true تنظیم کنید.

پوشه‌ها را می‌توان با تنظیم نوع mime به application/vnd.google-apps.folder ایجاد کرد.

دانلود_فایل_محتوای

برای دانلود محتوای یک فایل Drive به صورت داده‌های باینری خام (بایت) از این ابزار استفاده کنید.

اگر فایل از نوع MIME شخص ثالث گوگل درایو باشد، فیلد exportMimeType الزامی است و فرمت فایل دانلود شده را تعیین می‌کند.

اگر فایل پیدا نشد، از ابزارهای دیگری مانند search_files برای یافتن فایلی که کاربر درخواست کرده است استفاده کنید.

اگر کاربر می‌خواهد محتوای درایو خود را به زبان طبیعی نمایش دهد، از ابزار read_file_content استفاده کند ( read_file_content باید کوچک‌تر و تجزیه آن آسان‌تر باشد).

دریافت_فراداده_فایل

برای یافتن فراداده‌های کلی درباره فایل Drive کاربر، این ابزار را فراخوانی کنید.

اگر فایل پیدا نشد، از ابزارهای دیگری مانند search_files برای یافتن فایلی که کاربر درخواست کرده است استفاده کنید.

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

این ابزار را برای یافتن فایل‌های اخیر برای کاربری که ترتیب مرتب‌سازی را مشخص کرده است، فراخوانی کنید. ترتیب مرتب‌سازی پیش‌فرض، recency است.

ترتیب‌های مرتب‌سازی پشتیبانی‌شده عبارتند از:

  • recency : جدیدترین مهر زمانی از فیلدهای تاریخ-زمان فایل.
  • lastModified : آخرین باری که فایل توسط کسی تغییر داده شده است.
  • lastModifiedByMe : آخرین باری که فایل توسط کاربر تغییر داده شده است.

اندازه پیش‌فرض صفحه ۱۰ است. next_page_token برای صفحه‌بندی نتایج استفاده کنید.

محتوای_فایل_خواندنی

برای دریافت نمایش زبان طبیعی یک فایل Drive، این ابزار را فراخوانی کنید.

محتوای فایل ممکن است برای فایل‌های بسیار بزرگ ناقص باشد. نمایش متن با گذشت زمان تغییر خواهد کرد، بنابراین در مورد قالب خاص متن برگردانده شده توسط این ابزار، فرضیاتی نداشته باشید.

انواع Mime پشتیبانی شده:

  • application/vnd.google-apps.document
  • application/vnd.google-apps.presentation
  • application/vnd.google-apps.spreadsheet
  • application/pdf
  • application/msword
  • application/vnd.openxmlformats-officedocument.wordprocessingml.document
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • application/vnd.openxmlformats-officedocument.presentationml.presentation
  • application/vnd.oasis.opendocument.spreadsheet
  • application/vnd.oasis.opendocument.presentation
  • application/x-vnd.oasis.opendocument.text
  • image/png
  • image/jpeg
  • image/jpg

اگر فایل پیدا نشد، سعی کنید از ابزارهای دیگری مانند search_files برای یافتن فایلی که کاربر درخواست کرده است با استفاده از کلمات کلیدی استفاده کنید.

جستجوی_فایل‌ها

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

فیلد query نیاز به استفاده از عملگرهای جستجوی پرس‌وجو دارد.

یک رشته پرس‌وجو شامل سه بخش زیر است: query_term operator values که در آن:

  • query_term عبارت یا فیلد پرس‌وجو برای جستجو است.
  • operator شرط مربوط به عبارت جستجو را مشخص می‌کند.
  • values مقادیر خاصی هستند که برای فیلتر کردن نتایج جستجوی شما استفاده می‌شوند.

شرایط پرس و جو

جدول زیر فهرستی از عبارات پرس‌وجوی معتبر به همراه توضیحات آنها را نشان می‌دهد:

عبارت جستجو عملگرهای معتبر کاربرد
title contains , = , != عنوان فایل. با علامت نقل قول ( ' ) احاطه شود. در کوئری‌هایی که از علامت نقل قول استفاده می‌کنند \' مانند 'Valentine\'s Day' از علامت نقل قول تکی خارج شود.
fullText contains اینکه آیا title یا متن موجود در محتوای فایل مطابقت دارد یا خیر. با علامت نقل قول ( ' ) احاطه کنید. در کوئری‌هایی که از علامت نقل قول استفاده می‌کنند \' مانند 'Valentine\'s Day' از علامت نقل قول تکی خارج شوید.
mimeType contains , = , != نوع MIME فایل. با علامت نقل قول ( ' ) احاطه شود. در کوئری‌هایی که از \' نقل قول استفاده می‌کنند، مانند 'Valentine\'s Day' از علامت نقل قول تکی خارج شود.
modifiedTime <= ، < ، = ، != ، > ، >= تاریخ آخرین تغییر فایل. قالب RFC 3339، منطقه زمانی پیش‌فرض UTC است، مانند 2012-06-04T12:00:00-08:00 . فیلدهای از نوع date قابل مقایسه نیستند.
viewedByMeTime <= ، < ، = ، != ، > ، >= تاریخی که کاربر آخرین بار فایلی را مشاهده کرده است. قالب RFC 3339، منطقه زمانی پیش‌فرض UTC است، مانند 2012-06-04T12:00:00-08:00 . فیلدهای از نوع date قابل مقایسه نیستند.
parentId = ، != اینکه آیا والد با شناسه مشخص شده برابر است یا خیر. root می‌تواند برای مشخص کردن «درایو من» کاربر که به عنوان سلسله مراتب اصلی او عمل می‌کند، استفاده شود.
owner = ، != کاربر مالک فایل. me می‌تواند برای مشخص کردن کاربری که درخواست را انجام می‌دهد، استفاده شود.
sharedWithMe = ، != فایل‌هایی که در مجموعه «به اشتراک گذاشته شده با من» کاربر قرار دارند. همه کاربران فایل در فهرست کنترل دسترسی (ACL) فایل هستند. می‌تواند true یا false باشد.
createdTime <= ، < ، = ، != ، > ، >= تاریخ ایجاد فایل. از قالب RFC 3339 استفاده کنید، منطقه زمانی پیش‌فرض UTC است، مانند 2012-06-04T12:00:00-08:00 .

عملگرهای پرس و جو

جدول زیر عملگرهای پرس و جوی معتبر را فهرست می‌کند:

اپراتور کاربرد
contains محتوای یک رشته در رشته دیگر وجود دارد.
= محتوای یک رشته یا مقدار بولی با دیگری برابر است.
!= محتوای یک رشته یا مقدار بولی با دیگری برابر نیست.
< یک مقدار کمتر از دیگری است.
<= یک مقدار کمتر یا مساوی مقدار دیگری است.
> یک مقدار از مقدار دیگر بزرگتر است.
>= یک مقدار بزرگتر یا مساوی مقدار دیگری است.
in یک عنصر درون یک مجموعه قرار دارد.
and مواردی را که با هر دو پرس و جو مطابقت دارند، برگردانید.
or مواردی را که با هر یک از پرس‌وجوها مطابقت دارند، برگردانید.
not یک عبارت جستجو را خنثی می‌کند.
has یک مجموعه شامل عنصری است که با پارامترها مطابقت دارد.

برخی از نمونه‌های پرس‌وجو عبارتند از:

  • title contains 'hello' and title contains 'goodbye'
  • modifiedTime > '2024-01-01T00:00:00Z' and (mimeType contains 'image/' or mimeType contains 'video/')
  • parentId = '1234567'
  • fullText contains 'hello'
  • owner = 'test@example.org'
  • sharedWithMe = true
  • owner = 'me' (برای فایل‌هایی که متعلق به کاربر هستند)

next_page_token برای صفحه‌بندی نتایج استفاده کنید. یک پاسخ خالی نشان می‌دهد که یا هیچ نتیجه‌ای وجود ندارد یا نتیجه‌ی دیگری برای برگرداندن وجود ندارد.

مشخصات ابزار MCP را دریافت کنید

برای دریافت مشخصات ابزار MCP برای همه ابزارهای موجود در یک سرور MCP، از متد tools/list استفاده کنید. مثال زیر نحوه استفاده از curl برای فهرست کردن همه ابزارها و مشخصات آنها که در حال حاضر در سرور MCP موجود هستند را نشان می‌دهد.

درخواست کرل
curl --location 'https://drivemcp.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
    "method": "tools/list",
    "jsonrpc": "2.0",
    "id": 1
}'