Invoke Tools via CLI
invoke command.The invoke command allows you to invoke tools defined in your configuration directly from the CLI. This is useful for:
- Ephemeral Invocation: Executing a tool without spinning up a full MCP server/client.
- Debugging: Isolating tool execution logic and testing with various parameter combinations.
Tip
Keep configurations minimal: The invoke command initializes all resources (sources, tools, etc.) defined in your configuration files during execution. To ensure fast response times, consider using a minimal configuration file containing only the tools you need for the specific invocation.
Before you begin
- Make sure you have the
toolboxbinary installed or built. - Make sure you have a valid tool configuration file (e.g.,
tools.yaml).
Command Usage
The basic syntax for the command is:
toolbox <tool-source> invoke <tool-name> [params]
<tool-source>: Can be--tools-file,--tools-files,--tools-folder, and--prebuilt. See the CLI Reference for details.<tool-name>: The name of the tool you want to call. This must match the name defined in yourtools.yaml.[params]: (Optional) A JSON string representing the arguments for the tool.
Examples
1. Calling a Tool without Parameters
If your tool takes no parameters, simply provide the tool name:
toolbox --tools-file tools.yaml invoke my-simple-tool
2. Calling a Tool with Parameters
For tools that require arguments, pass them as a JSON string. Ensure you escape quotes correctly for your shell.
Example: A tool that takes parameters
Assuming a tool named mytool taking a and b:
toolbox --tools-file tools.yaml invoke mytool '{"a": 10, "b": 20}'
Example: A tool that queries a database
toolbox --tools-file tools.yaml invoke db-query '{"sql": "SELECT * FROM users LIMIT 5"}'
3. Using Prebuilt Configurations
You can also use the --prebuilt flag to load prebuilt toolsets.
toolbox --prebuilt cloudsql-postgres invoke cloudsql-postgres-list-instances
Troubleshooting
- Tool not found: Ensure the
<tool-name>matches exactly what is in your YAML file and that the file is correctly loaded via--tools-file. - Invalid parameters: Double-check your JSON syntax. The error message will usually indicate if the JSON parsing failed or if the parameters didn’t match the tool’s schema.
- Auth errors: The
invokecommand currently does not support flows requiring client-side authorization (like OAuth flow initiation via the CLI). It works best for tools using service-side authentication (e.g., Application Default Credentials).