Skip to main content
Glama
vespo92

TrueNAS Core MCP Server

by vespo92

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TRUENAS_URLYesURL of your TrueNAS system (e.g., https://192.168.1.100)
TRUENAS_API_KEYYesYour TrueNAS API key
TRUENAS_VERIFY_SSLNoWhether to verify SSL certificates when connecting to TrueNASfalse

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Server capabilities have not been inspected yet.

Tools

Functions exposed to the LLM to take actions

NameDescription
debug_connectionB

Debug connection settings and environment variables

reset_connectionB

Reset the HTTP client to force re-initialization

list_usersB

List all users in TrueNAS

get_userC
Get detailed information about a specific user

Args:
    username: Username to look up
get_system_infoB

Get TrueNAS system information

list_poolsB

List all storage pools

list_datasetsB

List all datasets

get_pool_statusC
Get detailed status of a specific pool

Args:
    pool_name: Name of the pool
create_datasetB
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_sharesB

List all SMB shares

create_smb_shareC
Create a new SMB share

Args:
    path: Path to share
    name: Share name
    comment: Optional comment
    read_only: Whether share is read-only
create_snapshotB
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_permissionsB
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_aclB
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_permissionsC
Get current permissions and ACL information for a dataset

Args:
    dataset: Dataset path (e.g., "tank/data")
modify_dataset_propertiesB
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_propertiesB
Get all properties of a dataset

Args:
    dataset: Dataset path (e.g., "tank/data")
create_nfs_exportB
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_targetB
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_policyB
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

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 20 tools

Disambiguation4/5

Most tools have distinct purposes targeting specific TrueNAS resources like datasets, pools, shares, and users, with clear separation between creation, listing, and modification operations. However, some potential overlap exists between 'modify_dataset_permissions' and 'update_dataset_acl' as both handle dataset access control, though their descriptions differentiate Unix permissions versus ACLs.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, such as 'create_dataset', 'list_datasets', 'get_dataset_properties', and 'modify_dataset_permissions'. All tools use snake_case without deviation, making them predictable and readable for an agent.

Tool Count4/5

With 20 tools, the count is slightly high but reasonable for a TrueNAS server covering storage management, sharing protocols, and user administration. It includes core operations for datasets, pools, shares, snapshots, and users, though it might benefit from consolidation in areas like debugging tools.

Completeness4/5

The tool set provides comprehensive coverage for dataset lifecycle (create, list, get, modify, snapshot), storage pools, and sharing protocols (NFS, SMB, iSCSI), with user management included. Minor gaps exist, such as missing update/delete operations for shares or targets, but agents can likely work around these for core workflows.

Maintenance

ActivityInactive
ResponsivenessUnresponsive