MCP Reference: drivemcp.googleapis.com

यह Drive API से उपलब्ध कराया गया एमसीपी सर्वर है. यह सर्वर, डेवलपर को Drive पर एलएलएम ऐप्लिकेशन बनाने के लिए टूल उपलब्ध कराता है.

मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी) सर्वर, लार्ज लैंग्वेज मॉडल (एलएलएम) या एआई ऐप्लिकेशन को कॉन्टेक्स्ट, डेटा या सुविधाएं देने वाली बाहरी सेवा के बीच प्रॉक्सी के तौर पर काम करता है. एमसीपी सर्वर, एआई ऐप्लिकेशन को डेटाबेस और वेब सेवाओं जैसे बाहरी सिस्टम से कनेक्ट करते हैं. साथ ही, उनके जवाबों को ऐसे फ़ॉर्मैट में बदलते हैं जिसे एआई ऐप्लिकेशन समझ सके.

सर्वर का सेटअप

इसका इस्तेमाल करने से पहले, आपको Drive के एमसीपी सर्वर को कॉन्फ़िगर करना होगा. Google और Google Cloud के रिमोट एमसीपी सर्वर इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Google Cloud के एमसीपी सर्वर की खास जानकारी देखें.

सर्वर एंडपॉइंट

एमसीपी सेवा एंडपॉइंट, एमसीपी सर्वर का नेटवर्क पता और कम्यूनिकेशन इंटरफ़ेस (आम तौर पर एक यूआरएल) होता है. इसका इस्तेमाल, एआई ऐप्लिकेशन (एमसीपी क्लाइंट के लिए होस्ट) एक सुरक्षित और स्टैंडर्ड कनेक्शन बनाने के लिए करता है. यह एलएलएम के लिए संपर्क बिंदु है. इससे एलएलएम, कॉन्टेक्स्ट का अनुरोध कर सकता है, किसी टूल को कॉल कर सकता है या किसी संसाधन को ऐक्सेस कर सकता है. Google MCP के एंडपॉइंट, ग्लोबल या रीजनल हो सकते हैं.

Drive API के एमसीपी सर्वर का ग्लोबल एमसीपी एंडपॉइंट यह है:

  • https://drivemcp.googleapis.com/mcp/v1

एमसीपी टूल

एमसीपी टूल एक फ़ंक्शन या एक्ज़ीक्यूटेबल क्षमता होती है. इसे एमसीपी सर्वर, एलएलएम या एआई ऐप्लिकेशन के लिए उपलब्ध कराता है, ताकि वह असल दुनिया में कोई कार्रवाई कर सके.

टूल

drivemcp.googleapis.com एमसीपी सर्वर में ये टूल मौजूद हैं:

एमसीपी टूल
create_file

Google Drive में कोई फ़ाइल बनाने या अपलोड करने के लिए, इस टूल को कॉल करें.

अगर कोई फ़ाइल अपलोड की जा रही है, तो फ़ाइल के MIME टाइप से कोई फ़र्क़ नहीं पड़ता. कॉन्टेंट को content फ़ील्ड में base64 कोड में बदला जाना चाहिए.

फ़ाइल बनाने की प्रोसेस पूरी होने पर, एक फ़ाइल ऑब्जेक्ट दिखाता है.

यहां दिए गए Google Drive के फ़र्स्ट-पार्टी माइम टाइप, कॉन्टेंट दिए बिना बनाए जा सकते हैं:

  • 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

पहले पक्ष के माइम टाइप के लिए कन्वर्ज़न बंद करने के लिए, disable_conversion_to_google_type को true पर सेट करें.

माइम टाइप को application/vnd.google-apps.folder पर सेट करके फ़ोल्डर बनाए जा सकते हैं.

download_file_content

Drive फ़ाइल के कॉन्टेंट को रॉ बाइनरी डेटा (बाइट) के तौर पर डाउनलोड करने के लिए, इस टूल को कॉल करें.

अगर फ़ाइल, Google Drive के फ़र्स्ट-पार्टी माइम टाइप की है, तो exportMimeType फ़ील्ड ज़रूरी है. इससे डाउनलोड की गई फ़ाइल का फ़ॉर्मैट तय होगा.

अगर फ़ाइल नहीं मिलती है, तो search_files जैसे अन्य टूल का इस्तेमाल करके, उस फ़ाइल को ढूंढने की कोशिश करें जिसका अनुरोध उपयोगकर्ता ने किया है.

अगर उपयोगकर्ता को Drive में मौजूद कॉन्टेंट के बारे में सामान्य भाषा में जानकारी चाहिए, तो read_file_content टूल का इस्तेमाल करें (read_file_content छोटा होना चाहिए और इसे आसानी से समझा जा सके).

get_file_metadata

उपयोगकर्ता की Drive फ़ाइल के बारे में सामान्य मेटाडेटा ढूंढने के लिए, इस टूल को कॉल करें.

अगर फ़ाइल नहीं मिलती है, तो search_files जैसे अन्य टूल का इस्तेमाल करके, उस फ़ाइल को ढूंढने की कोशिश करें जिसका अनुरोध उपयोगकर्ता ने किया है.

get_file_permissions Drive फ़ाइल की अनुमतियों की सूची बनाने के लिए, इस टूल को कॉल करें.
list_recent_files

इस टूल को कॉल करके, किसी उपयोगकर्ता के लिए हाल ही की फ़ाइलें ढूंढें. इसके लिए, क्रम से लगाने का तरीका तय करें. डिफ़ॉल्ट रूप से क्रम recency होता है.

सॉर्ट करने के लिए इन ऑर्डर का इस्तेमाल किया जा सकता है:

  • recency: फ़ाइल के तारीख और समय वाले फ़ील्ड का सबसे नया टाइमस्टैंप.
  • lastModified: फ़ाइल में पिछली बार किसी व्यक्ति ने कब बदलाव किया था.
  • lastModifiedByMe: उपयोगकर्ता ने फ़ाइल में आखिरी बार कब बदलाव किया था.

पेज का डिफ़ॉल्ट साइज़ 10 होता है. नतीजों को पेज के हिसाब से देखने के लिए, next_page_token का इस्तेमाल करें.

read_file_content

Drive फ़ाइल के नैचुरल लैंग्वेज वर्शन को फ़ेच करने के लिए, इस टूल को कॉल करें.

बहुत बड़ी फ़ाइलों के लिए, फ़ाइल का कॉन्टेंट अधूरा हो सकता है. टेक्स्ट का फ़ॉर्मैट समय के साथ बदलता रहेगा. इसलिए, इस टूल से मिले टेक्स्ट के फ़ॉर्मैट के बारे में अनुमान न लगाएं.

इन माइम टाइप का इस्तेमाल किया जा सकता है:

  • 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 जैसे अन्य टूल का इस्तेमाल करें.

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 <=, <, =, !=, >, >= फ़ाइल में पिछली बार बदलाव किए जाने की तारीख. आरएफ़सी 3339 फ़ॉर्मैट. डिफ़ॉल्ट टाइम ज़ोन यूटीसी होता है. जैसे, 2012-06-04T12:00:00-08:00. date टाइप के फ़ील्ड की तुलना नहीं की जा सकती.
viewedByMeTime <=, <, =, !=, >, >= वह तारीख जब उपयोगकर्ता ने आखिरी बार कोई फ़ाइल देखी थी. आरएफ़सी 3339 फ़ॉर्मैट. डिफ़ॉल्ट टाइम ज़ोन यूटीसी होता है. जैसे, 2012-06-04T12:00:00-08:00. date टाइप के फ़ील्ड की तुलना नहीं की जा सकती.
parentId =, != क्या पैरंट, तय किए गए आईडी के बराबर है. root का इस्तेमाल, उपयोगकर्ता की "मेरी ड्राइव" के बारे में बताने के लिए किया जा सकता है. यह उसकी मुख्य हाइरार्की के तौर पर काम करती है.
owner =, != वह उपयोगकर्ता जिसके पास फ़ाइल का मालिकाना हक है. me का इस्तेमाल, अनुरोध करने वाले उपयोगकर्ता के बारे में बताने के लिए किया जा सकता है.
sharedWithMe =, != उपयोगकर्ता के "मुझसे शेयर की गई" कलेक्शन में मौजूद फ़ाइलें. फ़ाइल का इस्तेमाल करने वाले सभी लोग, फ़ाइल की ऐक्सेस कंट्रोल लिस्ट (एसीएल) में शामिल हों. यह true या false हो सकता है.
createdTime <=, <, =, !=, >, >= वह तारीख जब फ़ाइल बनाई गई थी. आरएफ़सी 3339 फ़ॉर्मैट का इस्तेमाल करें. डिफ़ॉल्ट टाइम ज़ोन यूटीसी होता है. जैसे, 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 का इस्तेमाल करें. खाली जवाब का मतलब है कि कोई नतीजा नहीं है या दिखाने के लिए कोई और नतीजा नहीं है.

एमसीपी टूल की खास जानकारी पाना

किसी एमसीपी सर्वर में मौजूद सभी टूल के लिए, एमसीपी टूल की खास जानकारी पाने के लिए, tools/list तरीके का इस्तेमाल करें. इस उदाहरण में, curl का इस्तेमाल करके, MCP सर्वर में फ़िलहाल उपलब्ध सभी टूल और उनकी खास बातों की सूची बनाने का तरीका बताया गया है.

Curl अनुरोध
curl --location 'https://drivemcp.googleapis.com/mcp/v1' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
    "method": "tools/list",
    "jsonrpc": "2.0",
    "id": 1
}'