Allows interaction with TrueNAS Core systems through the TrueNAS API, enabling management of users, storage (pools and datasets), SMB shares, ZFS snapshots, and retrieving system information.
TrueNAS MCP Server
Control your TrueNAS system using natural language through Claude Desktop
Features • Quick Start • Installation • Documentation • Examples
🌟 Overview
TrueNAS MCP Server enables seamless interaction between Claude Desktop (or any MCP client) and your TrueNAS Core system. Manage storage, users, permissions, and even Kubernetes storage backends—all through natural language commands.
🎯 Key Features
- 🗂️ Storage Management - Create and manage pools, datasets, and snapshots
- 👥 User Administration - List, view, and manage system users
- 🔐 Advanced Permissions - Control Unix permissions and ACLs with simple commands
- ☸️ Kubernetes Ready - Export NFS shares and create iSCSI targets for K8s
- 🤖 Automation - Set up automated snapshot policies and retention
- 📊 Property Control - Manage ZFS properties like compression, deduplication, and quotas
✅ Tested On
- TrueNAS Core: Version 13.0-U6.1
- API Version: v2.0
- Python: 3.10+
🚀 Quick Start
Prerequisites
- Python 3.10 or higher
- TrueNAS Core system with API access
- Claude Desktop (or any MCP-compatible client)
- TrueNAS API key
1. Clone & Install
2. Configure
Set your TrueNAS connection details:
3. Test Connection
4. Configure Claude Desktop
Add to your Claude Desktop config:
📚 Documentation
Getting Your API Key
- Log into TrueNAS web interface
- Navigate to Settings → API Keys
- Click Add and name your key
- Copy the generated key immediately
Example Commands
Once configured, ask Claude natural language questions:
Basic Operations
- "List all users in my TrueNAS"
- "Show me the storage pools"
- "Create a dataset called backups in the tank pool"
- "Take a snapshot of tank/important"
Advanced Features
- "Set permissions 755 on tank/shared with owner john"
- "Enable compression on tank/backups"
- "Create an NFS export for my Kubernetes cluster"
- "Set up daily snapshots for tank/data with 30-day retention"
Detailed Documentation
🛠️ Available Functions
list_pools()
- View all storage poolslist_datasets()
- List all datasetsget_pool_status()
- Detailed pool informationcreate_dataset()
- Create new datasetsmodify_dataset_properties()
- Change ZFS propertiesget_dataset_properties()
- View dataset configuration
list_users()
- List system usersget_user()
- Detailed user informationmodify_dataset_permissions()
- Change Unix permissionsupdate_dataset_acl()
- Manage Access Control Listsget_dataset_permissions()
- View current permissions
list_smb_shares()
- View SMB/CIFS sharescreate_smb_share()
- Create new SMB sharescreate_nfs_export()
- NFS exports for Kubernetescreate_iscsi_target()
- iSCSI block storage
create_snapshot()
- Manual snapshotscreate_snapshot_policy()
- Automated snapshot schedules
🤝 Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Development Setup
🔒 Security
- API keys are stored securely in environment variables
- SSL/TLS verification is configurable
- Never commit
.env
files or API keys - See Security Policy for reporting vulnerabilities
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Built for TrueNAS Core
- Powered by Model Context Protocol (MCP)
- Uses FastMCP for easy server creation
- Tested on TrueNAS-13.0-U6.1
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
A Model Context Protocol server that enables Claude Desktop and other MCP clients to interact with TrueNAS Core systems through the TrueNAS API, supporting user management, storage operations, sharing, and snapshot creation.
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol server built with mcp-framework that allows users to create and manage custom tools for processing data, integrating with the Claude Desktop via CLI.Last updated -484TypeScript
- -securityAlicense-qualityA custom Model Context Protocol server that gives Claude Desktop and other LLMs access to file system operations and command execution capabilities through standardized tool interfaces.Last updated -22PythonApache 2.0
- -securityFlicense-qualityA filesystem Model Context Protocol server that provides Claude Desktop with capabilities to read, write, and manipulate files on your system.Last updated -TypeScript
- -securityAlicense-qualityModel Context Protocol server that enables Claude Desktop (or any MCP client) to fetch web content and process images appropriately.Last updated -11MIT License