Server Configuration
Describes the environment variables required to run the server.
Name | Required | Description | Default |
---|---|---|---|
TRUENAS_URL | Yes | URL of your TrueNAS system (e.g., https://192.168.1.100) | |
TRUENAS_API_KEY | Yes | Your TrueNAS API key | |
TRUENAS_VERIFY_SSL | No | Whether to verify SSL certificates when connecting to TrueNAS | false |
Schema
Prompts
Interactive templates invoked by user choice
Name | Description |
---|---|
No prompts |
Resources
Contextual data attached and managed by the client
Name | Description |
---|---|
No resources |
Tools
Functions exposed to the LLM to take actions
Name | Description |
---|---|
debug_connection | Debug connection settings and environment variables |
reset_connection | Reset the HTTP client to force re-initialization |
list_users | List all users in TrueNAS |
get_user | Get detailed information about a specific user
Args:
username: Username to look up |
get_system_info | Get TrueNAS system information |
list_pools | List all storage pools |
list_datasets | List all datasets |
get_pool_status | Get detailed status of a specific pool
Args:
pool_name: Name of the pool |
create_dataset | Create a new dataset
Args:
pool: Pool name where dataset will be created
name: Dataset name
compression: Compression algorithm (default: lz4)
quota: Optional quota in bytes |
list_smb_shares | List all SMB shares |
create_smb_share | Create a new SMB share
Args:
path: Path to share
name: Share name
comment: Optional comment
read_only: Whether share is read-only |
create_snapshot | Create a snapshot of a dataset
Args:
dataset: Dataset path (e.g., "tank/data")
name: Snapshot name
recursive: Whether to create recursive snapshots |
modify_dataset_permissions | Modify dataset permissions (chmod/chown equivalent)
Args:
dataset: Dataset path (e.g., "tank/data")
mode: Unix permission mode (e.g., "755", "644")
owner: Owner username or UID
group: Group name or GID
recursive: Apply permissions recursively |
update_dataset_acl | Update dataset Access Control Lists (ACLs)
Args:
dataset: Dataset path (e.g., "tank/data")
acl_entries: List of ACL entries with permissions
recursive: Apply ACLs recursively
strip_acl: Remove all ACLs and revert to Unix permissions |
get_dataset_permissions | Get current permissions and ACL information for a dataset
Args:
dataset: Dataset path (e.g., "tank/data") |
modify_dataset_properties | Modify ZFS dataset properties
Args:
dataset: Dataset path (e.g., "tank/data")
properties: Dictionary of properties to update
Examples: {"compression": "lz4", "dedup": "on", "quota": "10G"} |
get_dataset_properties | Get all properties of a dataset
Args:
dataset: Dataset path (e.g., "tank/data") |
create_nfs_export | Create an NFS export for Kubernetes persistent volumes
Args:
dataset: Dataset path to export (e.g., "tank/k8s-volumes")
allowed_networks: List of allowed networks (e.g., ["10.0.0.0/24"])
read_only: Whether the export is read-only
maproot_user: User to map root to
maproot_group: Group to map root to |
create_iscsi_target | Create an iSCSI target for Kubernetes block storage
Args:
name: Target name (e.g., "k8s-block-01")
dataset: Dataset for storing the iSCSI extent
size: Size of the iSCSI extent (e.g., "100G")
portal_id: iSCSI portal ID to use |
create_snapshot_policy | Create an automated snapshot policy
Args:
dataset: Dataset to snapshot
name: Policy name
schedule: Schedule configuration (cron-like)
{"minute": "0", "hour": "*/4", "dom": "*", "month": "*", "dow": "*"}
retention: Retention settings {"hourly": 24, "daily": 7, "weekly": 4, "monthly": 12}
recursive: Include child datasets |