MCP Reference: drivemcp.googleapis.com

Model Context Protocol(MCP)サーバーは、大規模言語モデル(LLM)または AI アプリケーションにコンテキスト、データ、機能を提供する外部サービスとの間のプロキシとして機能します。MCP サーバーは、AI アプリケーションをデータベースやウェブサービスなどの外部システムに接続し、そのレスポンスを AI アプリケーションが理解できる形式に変換します。

MCP ツール

MCP ツールは、現実世界でアクションを実行する目的で MCP サーバーが LLM または AI アプリケーションに対して公開する関数または実行可能な機能です。

drivemcp.googleapis.com MCP サーバーには、次のツールがあります。

MCP ツール
create_file

このツールを呼び出して、ファイルを Google ドライブに作成またはアップロードします。

ファイルをアップロードする場合、アップロードするファイルの MIME タイプに関係なく、コンテンツを content フィールドに base64 エンコードする必要があります。

作成が成功すると、単一の File オブジェクトが返されます。

次の Google ドライブのファーストパーティ 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

このツールを呼び出して、ドライブ ファイルのコンテンツを未加工のバイナリデータ(バイト)としてダウンロードします。

ファイルが Google ドライブのファーストパーティ MIME タイプの場合、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 フィールドでは、クエリ検索演算子を使用する必要があります。

クエリ文字列には、query_term operator values の 3 つの部分が含まれます。

  • 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 1 つの文字列のコンテンツがもう一方の文字列に含まれています。
= 文字列またはブールのコンテンツがもう一方の文字列と等しい。
!= 文字列またはブールのコンテンツがもう一方の文字列と等しくない。
< ある値が別の値より小さい。
<= ある値が別の値以下である。
> ある値が別の値より大きい。
>= ある値が別の値以上である。
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
}'