# Built-in Tools Wassette comes with several built-in tools for managing components and their permissions. These tools are available immediately when you start the MCP server. | Tool | Description | |------|-------------| | `load-component` | Dynamically loads a new tool or component from either the filesystem or OCI registries | | `unload-component` | Unloads a tool or component | | `list-components` | Lists all currently loaded components or tools | | `search-components` | Lists all known components that can be fetched and loaded from the component registry | | `get-policy` | Gets the policy information for a specific component | | `grant-storage-permission` | Grants storage access permission to a component, allowing it to read from and/or write to specific storage locations | | `grant-network-permission` | Grants network access permission to a component, allowing it to make network requests to specific hosts | | `grant-environment-variable-permission` | Grants environment variable access permission to a component, allowing it to access specific environment variables | | `revoke-storage-permission` | Revokes all storage access permissions from a component for the specified URI path, removing both read and write access to that location | | `revoke-network-permission` | Revokes network access permission from a component, removing its ability to make network requests to specific hosts | | `revoke-environment-variable-permission` | Revokes environment variable access permission from a component, removing its ability to access specific environment variables | | `reset-permission` | Resets all permissions for a component, removing all granted permissions and returning it to the default state |
Component Management Tools ## load-component **Parameters:** - `path` (string, required): Path to the component from either filesystem or OCI registries (e.g., `oci://ghcr.io/microsoft/time-server-js:latest` or `/path/to/component.wasm`) **Returns:** ```json { "status": "component loaded successfully", "id": "component-unique-id", "tools": ["tool-one", "tool-two"] } ``` When an existing component is replaced, the `status` value becomes `component reloaded successfully`. ## unload-component **Parameters:** - `id` (string, required): Unique identifier of the component to unload **Returns:** ```json { "status": "component unloaded successfully", "id": "component-unique-id" } ``` ## list-components **Parameters:** None **Returns:** ```json { "components": [ { "id": "component-id", "tools_count": 2, "schema": { "tools": [...] } } ], "total": 1 } ``` ## search-components **Parameters:** None **Returns:** ```json { "status": "Component list found", "components": [ { "name": "Weather Server", "description": "A weather component written in JavaScript", "uri": "oci://ghcr.io/microsoft/get-weather-js:latest" }, { "name": "Time Server", "description": "A time server component written in JavaScript", "uri": "oci://ghcr.io/microsoft/time-server-js:latest" } ] } ```
Policy Management Tools ## get-policy **Parameters:** - `component_id` (string, required): ID of the component to get policy information for **Returns:** ```json { "status": "policy found", "component_id": "component-id", "policy_info": { "policy_id": "policy-uuid", "source_uri": "oci://registry.example.com/component:tag", "local_path": "/path/to/cached/component", "created_at": 1640995200 } } ```
Permission Grant Tools ## grant-storage-permission **Parameters:** - `component_id` (string, required): ID of the component to grant storage permission to - `details` (object, required): - `uri` (string, required): URI of the storage resource (e.g., `fs:///tmp/test`) - `access` (array, required): Array of access types, must be `["read"]`, `["write"]`, or `["read", "write"]` **Returns:** ```json { "status": "permission granted successfully", "component_id": "component-id", "permission_type": "storage", "details": { "uri": "fs:///tmp/test", "access": ["read", "write"] } } ``` ## grant-network-permission **Parameters:** - `component_id` (string, required): ID of the component to grant network permission to - `details` (object, required): - `host` (string, required): Host to grant network access to (e.g., `api.example.com`) **Returns:** ```json { "status": "permission granted successfully", "component_id": "component-id", "permission_type": "network", "details": { "host": "api.example.com" } } ``` ## grant-environment-variable-permission **Parameters:** - `component_id` (string, required): ID of the component to grant environment variable permission to - `details` (object, required): - `key` (string, required): Environment variable key to grant access to (e.g., `API_KEY`) **Returns:** ```json { "status": "permission granted successfully", "component_id": "component-id", "permission_type": "environment", "details": { "key": "API_KEY" } } ```
Permission Revoke Tools ## revoke-storage-permission **Parameters:** - `component_id` (string, required): ID of the component to revoke storage permission from - `details` (object, required): - `uri` (string, required): URI of the storage resource to revoke access from (e.g., `fs:///tmp/test`) **Returns:** ```json { "status": "permission revoked successfully", "component_id": "component-id", "uri": "fs:///tmp/test", "message": "All access (read and write) to the specified URI has been revoked" } ``` ## revoke-network-permission **Parameters:** - `component_id` (string, required): ID of the component to revoke network permission from - `details` (object, required): - `host` (string, required): Host to revoke network access from (e.g., `api.example.com`) **Returns:** ```json { "status": "permission revoked", "component_id": "component-id", "permission_type": "network", "details": { "host": "api.example.com" } } ``` ## revoke-environment-variable-permission **Parameters:** - `component_id` (string, required): ID of the component to revoke environment variable permission from - `details` (object, required): - `key` (string, required): Environment variable key to revoke access from (e.g., `API_KEY`) **Returns:** ```json { "status": "permission revoked", "component_id": "component-id", "permission_type": "environment", "details": { "key": "API_KEY" } } ``` ## reset-permission **Parameters:** - `component_id` (string, required): ID of the component to reset permissions for **Returns:** ```json { "status": "permissions reset successfully", "component_id": "component-id" } ```
These tools enable you to dynamically manage components and their security permissions without needing to restart the server or modify configuration files directly.