MCP Reference: drivemcp.googleapis.com

Un server Model Context Protocol (MCP) funge da proxy tra un servizio esterno che fornisce contesto, dati o funzionalità a un modello linguistico di grandi dimensioni (LLM) o a un'applicazione AI. I server MCP collegano le applicazioni di AI a sistemi esterni come database e servizi web, traducendo le loro risposte in un formato che l'applicazione di AI può comprendere.

Strumenti MCP

Uno strumento MCP è una funzione o una funzionalità eseguibile che un server MCP espone a un LLM o a un'applicazione AI per eseguire un'azione nel mondo reale.

Il server MCP drivemcp.googleapis.com dispone dei seguenti strumenti:

Strumenti MCP
create_file

Chiama questo strumento per creare o caricare un file su Google Drive.

Se carichi un file, i contenuti devono essere codificati in base64 nel campo content, indipendentemente dal tipo MIME del file caricato.

Restituisce un singolo oggetto File in caso di creazione riuscita.

I seguenti tipi MIME proprietari di Google Drive possono essere creati senza fornire contenuti:

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

Per impostazione predefinita, verranno eseguite le seguenti conversioni per i seguenti tipi MIME:

  • Da text/plain a application/vnd.google-apps.document
  • Da text/csv a application/vnd.google-apps.spreadsheet

Per disattivare le conversioni per i tipi MIME proprietari, imposta disable_conversion_to_google_type su true.

Le cartelle possono essere create impostando il tipo MIME su application/vnd.google-apps.folder.

download_file_content

Chiama questo strumento per scaricare il contenuto di un file Drive come dati binari non elaborati (byte).

Se il file è un tipo MIME proprietario di Google Drive, il campo exportMimeType è obbligatorio e determinerà il formato del file scaricato.

Se il file non viene trovato, prova a utilizzare altri strumenti come search_files per trovare il file richiesto dall'utente.

Se l'utente vuole una rappresentazione in linguaggio naturale dei contenuti di Drive, utilizza lo strumento read_file_content (read_file_content deve essere più piccolo e più facile da analizzare).

get_file_metadata

Chiama questo strumento per trovare i metadati generali di un file di Drive di un utente.

Se il file non viene trovato, prova a utilizzare altri strumenti come search_files per trovare il file richiesto dall'utente.

get_file_permissions Chiama questo strumento per elencare le autorizzazioni di un file di Drive.
list_recent_files

Chiama questo strumento per trovare i file recenti di un utente specificato in un ordine di ordinamento. L'ordine di ordinamento predefinito è recency.

Gli ordini di ordinamento supportati sono:

  • recency: il timestamp più recente dei campi data e ora del file.
  • lastModified: l'ultima volta che il file è stato modificato da un utente.
  • lastModifiedByMe: l'ultima volta che il file è stato modificato dall'utente.

La dimensione predefinita della pagina è 10. Utilizza next_page_token per scorrere le pagine dei risultati.

read_file_content

Chiama questo strumento per recuperare una rappresentazione in linguaggio naturale di un file di Drive.

Il contenuto del file potrebbe essere incompleto per i file di grandi dimensioni. La rappresentazione del testo cambierà nel tempo, quindi non fare ipotesi sul formato specifico del testo restituito da questo strumento.

Tipi MIME supportati:

  • 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

Se il file non viene trovato, prova a utilizzare altri strumenti come search_files per trovare il file richiesto dall'utente utilizzando le parole chiave.

search_files

Chiama questo strumento per cercare i file di Drive in base a una query strutturata.

Il campo query richiede l'utilizzo di operatori di ricerca delle query.

Una stringa di query contiene le seguenti tre parti: query_term operator values, dove:

  • query_term è il termine o il campo della query su cui eseguire la ricerca.
  • operator specifica la condizione per il termine di query.
  • values sono i valori specifici da utilizzare per filtrare i risultati di ricerca.

Termini di ricerca

La tabella seguente elenca i termini di ricerca validi con le relative descrizioni:

Termine di query Operatori validi Utilizzo
title contains, =, != Titolo del file. Racchiudi tra virgolette singole ('). Esegui l'escape delle virgolette singole nelle query con \', ad esempio 'Valentine\'s Day'.
fullText contains Se title o il testo nei contenuti del file corrispondono. Racchiudi tra virgolette singole ('). Esegui l'escape delle virgolette singole nelle query con \', ad esempio 'Valentine\'s Day'.
mimeType contains, =, != Tipo MIME del file. Racchiudi tra virgolette singole ('). Esegui l'escape delle virgolette singole nelle query con \', ad esempio 'Valentine\'s Day'.
modifiedTime <=, <, =, !=, >, >= La data dell'ultima modifica del file. Formato RFC 3339, fuso orario predefinito UTC, ad esempio 2012-06-04T12:00:00-08:00. I campi di tipo date non sono confrontabili.
viewedByMeTime <=, <, =, !=, >, >= Data dell'ultima visualizzazione di un file da parte dell'utente. Formato RFC 3339, fuso orario predefinito UTC, ad esempio 2012-06-04T12:00:00-08:00. I campi di tipo date non sono confrontabili.
parentId =, != Indica se l'elemento principale è uguale all'ID specificato. root può essere utilizzato per specificare "Il mio Drive " dell'utente, che funge da gerarchia principale.
owner =, != Utente proprietario del file. me può essere utilizzato per specificare l'utente che effettua la richiesta.
sharedWithMe =, != File che si trovano nella raccolta "Condivisi con me " dell'utente. Tutti gli utenti del file sono inclusi nell'elenco di controllo dell'accesso (ACL) del file. Può essere true o false.
createdTime <=, <, =, !=, >, >= Data di creazione del file. Utilizza il formato RFC 3339, il fuso orario predefinito è UTC, ad esempio 2012-06-04T12:00:00-08:00.

Operatori di query

La tabella seguente elenca gli operatori di query validi:

Operatore Utilizzo
contains I contenuti di una stringa sono presenti nell'altra.
= Il contenuto di una stringa o di un valore booleano è uguale all'altro.
!= Il contenuto di una stringa o di un valore booleano non è uguale all'altro.
< Un valore è inferiore a un altro.
<= Un valore è minore o uguale a un altro.
> Un valore è maggiore di un altro.
>= Un valore è maggiore o uguale a un altro.
in Un elemento è contenuto all'interno di una raccolta.
and Restituisce gli elementi che corrispondono a entrambe le query.
or Restituisce gli elementi che corrispondono a una delle due query.
not Nega una query di ricerca.
has Una raccolta contiene un elemento corrispondente ai parametri.

Alcuni esempi di query includono:

  • 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' (per i file di proprietà dell'utente)

Utilizza next_page_token per scorrere le pagine dei risultati. Una risposta vuota indica che non ci sono risultati o non ci sono altri risultati da restituire.

Ottenere le specifiche dello strumento MCP

Per ottenere le specifiche dello strumento MCP per tutti gli strumenti di un server MCP, utilizza il metodo tools/list. L'esempio seguente mostra come utilizzare curl per elencare tutti gli strumenti e le relative specifiche attualmente disponibili nel server MCP.

Curl Request
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
}'