MCP Reference: drivemcp.googleapis.com

นี่คือเซิร์ฟเวอร์ MCP ที่ Drive API จัดเตรียมไว้ให้ เซิร์ฟเวอร์มีเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ในการสร้างแอปพลิเคชัน LLM บนไดรฟ์

เซิร์ฟเวอร์ Model Context Protocol (MCP) ทำหน้าที่เป็นพร็อกซีระหว่างบริการภายนอกที่ให้บริบท ข้อมูล หรือความสามารถแก่โมเดลภาษาขนาดใหญ่ (LLM) หรือแอปพลิเคชัน AI เซิร์ฟเวอร์ MCP จะเชื่อมต่อแอปพลิเคชัน AI กับระบบภายนอก เช่น ฐานข้อมูลและบริการเว็บ โดยจะแปลคำตอบเป็นรูปแบบที่แอปพลิเคชัน AI เข้าใจได้

การตั้งค่าเซิร์ฟเวอร์

คุณต้องกำหนดค่าเซิร์ฟเวอร์ MCP ของไดรฟ์ก่อนใช้งาน ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้เซิร์ฟเวอร์ MCP ระยะไกลของ Google และ Google Cloud ได้ที่ภาพรวมเซิร์ฟเวอร์ MCP ของ Google Cloud

ปลายทางของเซิร์ฟเวอร์

ปลายทางบริการ MCP คือที่อยู่เครือข่ายและอินเทอร์เฟซการสื่อสาร (โดยปกติคือ URL) ของเซิร์ฟเวอร์ MCP ที่แอปพลิเคชัน AI (โฮสต์สำหรับไคลเอ็นต์ MCP) ใช้เพื่อสร้างการเชื่อมต่อที่ปลอดภัยและได้มาตรฐาน ซึ่งเป็นจุดติดต่อสำหรับ LLM ในการขอบริบท เรียกใช้เครื่องมือ หรือเข้าถึงทรัพยากร ปลายทาง MCP ของ Google อาจเป็นแบบทั่วโลกหรือระดับภูมิภาค

เซิร์ฟเวอร์ MCP ของ Drive API มีอุปกรณ์ปลายทาง MCP ทั่วโลกต่อไปนี้

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

เครื่องมือ MCP

เครื่องมือ MCP คือฟังก์ชันหรือความสามารถที่เรียกใช้งานได้ซึ่งเซิร์ฟเวอร์ MCP แสดงต่อ LLM หรือแอปพลิเคชัน AI เพื่อดำเนินการในโลกแห่งความเป็นจริง

เครื่องมือ

เซิร์ฟเวอร์ MCP ของ drivemcp.googleapis.com มีเครื่องมือต่อไปนี้

เครื่องมือ MCP
create_file

เรียกใช้เครื่องมือนี้เพื่อสร้างหรืออัปโหลดไฟล์ไปยัง Google ไดรฟ์

หากอัปโหลดไฟล์ เนื้อหาต้องได้รับการเข้ารหัส Base64 ลงในช่อง content โดยไม่คำนึงถึงประเภท MIME ของไฟล์ที่อัปโหลด

แสดงผลออบเจ็กต์ File รายการเดียวเมื่อสร้างสำเร็จ

คุณสร้าง Mime ประเภทบุคคลที่หนึ่งของ Google ไดรฟ์ต่อไปนี้ได้โดยไม่ต้องระบุเนื้อหา

  • 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

หากต้องการปิดใช้ Conversion สำหรับประเภท MIME ของบุคคลที่หนึ่ง ให้ตั้งค่า disable_conversion_to_google_type เป็นจริง

คุณสร้างโฟลเดอร์ได้โดยตั้งค่าประเภท MIME เป็น application/vnd.google-apps.folder

download_file_content

เรียกใช้เครื่องมือนี้เพื่อดาวน์โหลดเนื้อหาของไฟล์ในไดรฟ์เป็นข้อมูลไบนารีดิบ (ไบต์)

หากไฟล์เป็นประเภท MIME ของบุคคลที่หนึ่งของ Google ไดรฟ์ คุณจะต้องระบุฟิลด์ exportMimeType และฟิลด์นี้จะเป็นตัวกำหนดรูปแบบของไฟล์ที่ดาวน์โหลด

หากไม่พบไฟล์ ให้ลองใช้เครื่องมืออื่นๆ เช่น search_files เพื่อค้นหาไฟล์ที่ผู้ใช้ขอ

หากผู้ใช้ต้องการการแสดงเนื้อหาในไดรฟ์ด้วยภาษาธรรมชาติ ให้ใช้read_file_contentเครื่องมือ (read_file_content ควรมีขนาดเล็กกว่าและแยกวิเคราะห์ได้ง่ายกว่า)

get_file_metadata

เรียกใช้เครื่องมือนี้เพื่อค้นหาข้อมูลเมตาทั่วไปเกี่ยวกับไฟล์ในไดรฟ์ของผู้ใช้

หากไม่พบไฟล์ ให้ลองใช้เครื่องมืออื่นๆ เช่น search_files เพื่อค้นหาไฟล์ที่ผู้ใช้ขอ

get_file_permissions เรียกใช้เครื่องมือนี้เพื่อแสดงรายการสิทธิ์ของไฟล์ในไดรฟ์
list_recent_files

เรียกใช้เครื่องมือนี้เพื่อค้นหาไฟล์ล่าสุดสำหรับผู้ใช้ที่ระบุลำดับการจัดเรียง ลำดับการจัดเรียงเริ่มต้นคือ recency

ลำดับการจัดเรียงที่รองรับมีดังนี้

  • recency: การประทับเวลาล่าสุดจากฟิลด์วันที่และเวลาของไฟล์
  • lastModified: ครั้งล่าสุดที่มีผู้แก้ไขไฟล์
  • lastModifiedByMe: เวลาล่าสุดที่ผู้ใช้แก้ไขไฟล์

ขนาดหน้าเริ่มต้นคือ 10 ใช้ next_page_token เพื่อแบ่งหน้าผลการค้นหา

read_file_content

เรียกใช้เครื่องมือนี้เพื่อดึงข้อมูลการแสดงไฟล์ในไดรฟ์ด้วยภาษาธรรมชาติ

เนื้อหาของไฟล์อาจไม่สมบูรณ์สำหรับไฟล์ที่มีขนาดใหญ่มาก การแสดงข้อความจะเปลี่ยนแปลงไปเรื่อยๆ ดังนั้นอย่าคาดเดารูปแบบเฉพาะของข้อความที่เครื่องมือนี้แสดง

ประเภท 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 เพื่อค้นหาไฟล์ที่ผู้ใช้ขอโดยใช้คีย์เวิร์ด

search_files

เรียกใช้เครื่องมือนี้เพื่อค้นหาไฟล์ในไดรฟ์โดยใช้การค้นหาที่มีโครงสร้าง

ฟิลด์ query ต้องใช้โอเปอเรเตอร์การค้นหาคำค้นหา

สตริงการค้นหาประกอบด้วย 3 ส่วนต่อไปนี้ 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 แสดงรายการที่ตรงกับทั้ง 2 คำค้นหา
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
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
}'