Outil : search_files
Recherchez des fichiers et des répertoires dans un espace de travail Dataform qui correspondent à un filtre de recherche.
Utilisez cet outil au lieu de lister les répertoires de manière récursive avec l'outil query_directory_contents lorsque vous recherchez un fichier par nom ou par extension dans un grand dépôt.
La valeur du paramètre workspace doit être au format projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.
La valeur du paramètre filter limite les résultats. Le filtrage n'est autorisé que sur le champ path (par exemple, path="*.sqlx" ou path="definitions/model.sqlx").
L'exemple de code suivant montre comment utiliser curl pour appeler l'outil MCP search_files.
| Requête 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": "search_files", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Schéma d'entrée
Configuration contenant les paramètres de la requête de recherche de fichiers.
SearchFilesRequest
| Représentation JSON |
|---|
{ "workspace": string, "pageSize": integer, "pageToken": string, "filter": string } |
| Champs | |
|---|---|
workspace |
Obligatoire. Nom de l'espace de travail. |
pageSize |
Facultatif. Nombre maximal de résultats de recherche à renvoyer. Le serveur peut renvoyer un nombre d'éléments inférieur à celui demandé. Si aucune valeur n'est spécifiée, le serveur sélectionne une valeur par défaut appropriée. |
pageToken |
Facultatif. Jeton de page reçu d'un appel Lors de la pagination, tous les autres paramètres fournis à |
filter |
Facultatif. Filtre facultatif pour la liste renvoyée au format de filtrage. Le filtrage n'est actuellement possible que sur le champ |
Schéma de sortie
Représentation d'une réponse de recherche de fichiers destinée au client.
SearchFilesResponse
| Représentation JSON |
|---|
{
"searchResults": [
{
object ( |
| Champs | |
|---|---|
searchResults[] |
Liste des résultats correspondants. |
nextPageToken |
Facultatif. Jeton pouvant être envoyé en tant que |
SearchResult
| Représentation JSON |
|---|
{ // Union field |
| Champs | |
|---|---|
Champ d'union entry. Contenu de l'entrée. entry ne peut être qu'un des éléments suivants : |
|
file |
Détails lorsqu'un résultat de recherche est un fichier. |
directory |
Informations lorsqu'un résultat de recherche est un répertoire. |
FileSearchResult
| Représentation JSON |
|---|
{ "path": string } |
| Champs | |
|---|---|
path |
Chemin du système de fichiers par rapport à la racine de l'espace de travail. |
DirectorySearchResult
| Représentation JSON |
|---|
{ "path": string } |
| Champs | |
|---|---|
path |
Chemin du système de fichiers par rapport à la racine de l'espace de travail. |
Annotations d'outils
Les annotations d'outil sont envoyées aux clients MCP pour décrire le risque de base d'un outil donné. La plupart des clients traitent ces indices comme non fiables, mais ils peuvent être utilisés pour déterminer quand un message de confirmation peut être envoyé à un utilisateur.
En plus de la chaîne de titre, les indications booléennes suivantes sont définies comme suit :
readOnlyHint: si la valeur est "true", l'outil ne modifie pas son environnement. Valeur par défaut : "false".destructiveHint: si la valeur est "true", l'outil peut effectuer des actions destructrices. Si la valeur est "false", l'outil ne peut effectuer que des actions d'ajout. Valeur par défaut : "true".idempotentHint: si la valeur est "true", appeler l'outil à plusieurs reprises avec les mêmes arguments n'aura aucun effet supplémentaire sur son environnement. Valeur par défaut : "false".openWorldHint: si la valeur est "true", l'outil peut interagir avec un "monde ouvert" d'entités externes. Si la valeur est "false", l'outil ne peut interagir qu'avec des entités internes. Par exemple, un outil de recherche Web serait en monde ouvert, tandis qu'un outil de mémoire ne le serait pas.
Indication destructive : ❌ | Indication d'idempotence : ✅ | Indication de lecture seule : ✅ | Indication de monde ouvert : ❌