MCP Reference: drivemcp.googleapis.com

모델 컨텍스트 프로토콜 (MCP) 서버는 대규모 언어 모델 (LLM) 또는 AI 애플리케이션에 컨텍스트, 데이터 또는 기능을 제공하는 외부 서비스 간의 프록시 역할을 합니다. MCP 서버는 AI 애플리케이션을 데이터베이스 및 웹 서비스와 같은 외부 시스템에 연결하여 응답을 AI 애플리케이션이 이해할 수 있는 형식으로 변환합니다.

MCP 도구

MCP 도구는 MCP 서버가 실제 세계에서 작업을 실행하기 위해 LLM 또는 AI 애플리케이션에 노출하는 함수 또는 실행 가능한 기능입니다.

drivemcp.googleapis.com MCP 서버에는 다음과 같은 도구가 있습니다.

MCP 도구
create_file

이 도구를 호출하여 Google Drive에 파일을 만들거나 업로드합니다.

파일을 업로드하는 경우 업로드되는 파일의 MIME 유형과 관계없이 콘텐츠를 content 필드에 base64로 인코딩해야 합니다.

생성이 완료되면 단일 파일 객체를 반환합니다.

다음 Google Drive 퍼스트 파티 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로 설정하여 폴더를 만들 수 있습니다.

download_file_content

이 도구를 호출하여 Drive 파일의 콘텐츠를 원시 바이너리 데이터 (바이트)로 다운로드합니다.

파일이 Google Drive 퍼스트 파티 MIME 유형인 경우 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 파일의 자연어 표현을 가져옵니다.

파일 크기가 매우 큰 경우 파일 콘텐츠가 불완전할 수 있습니다. 텍스트 표현은 시간이 지남에 따라 변경되므로 이 도구에서 반환되는 텍스트의 특정 형식을 가정하지 마세요.

지원되는 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

이 도구를 호출하여 구조화된 쿼리가 지정된 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 =, != 상위 요소가 지정된 ID와 같은지 여부입니다. 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 요청
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
}'