MCP Tools Reference: dataform.googleapis.com

Strumento: list_workspaces

Elenca gli spazi di lavoro di sviluppo in un determinato repository Dataform.

Utilizza questo strumento per scoprire gli spazi di lavoro esistenti prima di eseguire operazioni sui file (utilizzando strumenti come read_file o write_file) o di eseguire il commit del codice (utilizzando uno strumento come commit_workspace_changes).

Il valore parametro parent deve essere nel formato projects/{project_id}/locations/{location}/repositories/{repository}.

Il seguente esempio di codice mostra come utilizzare curl per chiamare lo strumento MCP list_workspaces.

Richiesta curl
curl --location 'https://dataform.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "list_workspaces",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Schema di input

ListWorkspaces messaggio di richiesta.

ListWorkspacesRequest

Rappresentazione JSON
{
  "parent": string,
  "pageSize": integer,
  "pageToken": string,
  "orderBy": string,
  "filter": string
}
Campi
parent

string

Obbligatorio. Il repository in cui elencare i workspace. Deve essere nel formato projects/*/locations/*/repositories/*.

pageSize

integer

Facoltativo. Il numero massimo di spazi di lavoro da restituire. Il server potrebbe restituire meno elementi di quelli richiesti. Se non specificato, il server sceglierà un valore predefinito appropriato.

pageToken

string

Facoltativo. Token di pagina ricevuto da una precedente chiamata ListWorkspaces. Forniscilo per recuperare la pagina successiva.

Durante la paginazione, tutti gli altri parametri forniti a ListWorkspaces, ad eccezione di page_size, devono corrispondere alla chiamata che ha fornito il token di pagina.

orderBy

string

Facoltativo. Questo campo supporta solo l'ordinamento per name. Se non specificato, il server sceglierà l'ordinamento. Se specificato, l'ordine predefinito è crescente per il campo name.

filter

string

Facoltativo. Filtra l'elenco restituito.

Schema di output

Messaggio di risposta ListWorkspaces.

ListWorkspacesResponse

Rappresentazione JSON
{
  "workspaces": [
    {
      object (Workspace)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}
Campi
workspaces[]

object (Workspace)

Elenco dei workspace.

nextPageToken

string

Un token, che può essere inviato come page_token per recuperare la pagina successiva. Se questo campo viene omesso, non verranno visualizzate altre pagine.

unreachable[]

string

Località non raggiungibili.

Workspace

Rappresentazione JSON
{
  "name": string,
  "createTime": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },
  "privateResourceMetadata": {
    object (PrivateResourceMetadata)
  },
  "depth": integer,

  // Union field _internal_metadata can be only one of the following:
  "internalMetadata": string
  // End of list of possible types for union field _internal_metadata.

  // Union field _disable_moves can be only one of the following:
  "disableMoves": boolean
  // End of list of possible types for union field _disable_moves.

  // Union field _original_branch can be only one of the following:
  "originalBranch": string
  // End of list of possible types for union field _original_branch.

  // Union field _enable_branch_management can be only one of the following:
  "enableBranchManagement": boolean
  // End of list of possible types for union field _enable_branch_management.

  // Union field _shallow can be only one of the following:
  "shallow": boolean
  // End of list of possible types for union field _shallow.
}
Campi
name

string

Identificatore. Il nome del workspace.

createTime

string (Timestamp format)

Solo output. Il timestamp di creazione dello spazio di lavoro.

Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

dataEncryptionState

object (DataEncryptionState)

Solo output. Stato di crittografia dei dati di un repository Git se questo spazio di lavoro è protetto da una chiave KMS.

privateResourceMetadata

object (PrivateResourceMetadata)

Solo output. Metadati che indicano se questa risorsa è limitata all'utente. Per le risorse Workspace, il campo user_scoped è sempre true.

depth

integer

Facoltativo. Solo input. Immutabile. La profondità massima del repository Git da estrarre per questo workspace. Se definito e maggiore di 0, il repository Git verrà creato come clone shallow con la profondità specificata, altrimenti verrà eseguito un clone completo. Questo campo è disponibile solo per i repository GitHub, GitLab e di prima parte con la gestione dei rami attivata.

Campo unione _internal_metadata.

_internal_metadata può essere solo uno dei seguenti tipi:

internalMetadata

string

Solo output. Tutte le informazioni sui metadati utilizzate internamente per pubblicare la risorsa. Ad esempio, timestamp, flag, campi di stato e così via. Il formato di questo campo è una stringa JSON.

Campo unione _disable_moves.

_disable_moves può essere solo uno dei seguenti tipi:

disableMoves

boolean

Facoltativo. Se impostato su true, gli spazi di lavoro non verranno spostati se il repository collegato viene spostato. Verrà invece eliminato.

Campo unione _original_branch.

_original_branch può essere solo uno dei seguenti tipi:

originalBranch

string

Facoltativo. Solo input. Immutabile. Il nome del ramo upstream predefinito per tutte le operazioni pull/push nel repository remoto per questo workspace. Se il campo è vuoto, verrà utilizzato il ramo HEAD del repository.

Campo unione _enable_branch_management.

_enable_branch_management può essere solo uno dei seguenti tipi:

enableBranchManagement

boolean

Immutabile. Controlla l'attivazione del checkout del ramo per lo spazio di lavoro.

Se viene impostato su true, lo spazio di lavoro potrà estrarre i rami.

Campo unione _shallow.

_shallow può essere solo uno dei seguenti tipi:

shallow

boolean

Solo output. Se impostato su true, lo spazio di lavoro è stato creato come clone shallow. Verrà impostato su true se il campo Profondità è impostato su un valore maggiore di 0, altrimenti verrà impostato su false.

Timestamp

Rappresentazione JSON
{
  "seconds": string,
  "nanos": integer
}
Campi
seconds

string (int64 format)

Rappresenta i secondi di tempo UTC dall'epoca di Unix 1970-01-01T00:00:00Z. Deve essere compreso tra -62135596800 e 253402300799 inclusi (corrispondenti a 0001-01-01T00:00:00Z e 9999-12-31T23:59:59Z).

nanos

integer

Frazioni di secondo non negative con risoluzione in nanosecondi. Questo campo è la parte in nanosecondi della durata, non un'alternativa ai secondi. I valori negativi dei secondi con frazioni devono comunque avere valori di nanosecondi non negativi che vengono conteggiati in avanti nel tempo. Deve essere compreso tra 0 e 999.999.999 inclusi.

DataEncryptionState

Rappresentazione JSON
{
  "kmsKeyVersionName": string
}
Campi
kmsKeyVersionName

string

Obbligatorio. Il nome della versione della chiave KMS con cui vengono criptati i dati di una risorsa.

PrivateResourceMetadata

Rappresentazione JSON
{
  "userScoped": boolean
}
Campi
userScoped

boolean

Solo output. Se true, questa risorsa è limitata all'utente, il che significa che è uno spazio di lavoro o proviene da uno spazio di lavoro.

Annotazioni dello strumento

Le annotazioni dello strumento vengono inviate ai client MCP per descrivere il rischio di base di un determinato strumento. La maggior parte dei client considera questi suggerimenti non attendibili, ma possono essere utilizzati per decidere quando inviare a un utente una richiesta di conferma.

Oltre alla stringa del titolo, sono definiti i seguenti suggerimenti booleani:

  • readOnlyHint: se è true, lo strumento non modifica il suo ambiente. Valore predefinito: false.
  • destructiveHint: se è true, lo strumento può eseguire azioni distruttive. Se il valore è false, lo strumento può eseguire solo azioni additive. Valore predefinito: true.
  • idempotentHint: se è true, chiamare ripetutamente lo strumento con gli stessi argomenti non avrà alcun effetto aggiuntivo sul suo ambiente. Valore predefinito: false.
  • openWorldHint: se è true, lo strumento può interagire con un "open world" di entità esterne. Se è false, lo strumento può interagire solo con le entità interne. Ad esempio, uno strumento di ricerca web sarebbe open world, mentre uno strumento di memoria no.

Suggerimento distruttivo: ❌ | Suggerimento idempotente: ✅ | Suggerimento di sola lettura: ✅ | Suggerimento open world: ❌