TrueNAS Core MCP
Created 5 months ago
Control your TrueNAS system using natural language through Claude Desktop.
development
location
documentation
public
TrueNAS
MCP
What is TrueNAS Core MCP?
An MCP server for interacting with TrueNAS Core.
Documentation
TrueNAS MCP Server
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
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
git clone https://github.com/vespo92/TrueNasCoreMCP.git
cd TrueNasCoreMCP\n\n# Quick setup (recommended)
./quick_setup.sh\n\n# On Windows: quick_setup.bat\n\n# Or manual setup:
python -m venv venv
source venv/bin/activate\n\n# On Windows: venv\Scripts\activate
pip install -r requirements.txt
2. Configure
cp .env.example .env\n\n# Edit with your TrueNAS details
nano .env
Set your TrueNAS connection details:
TRUENAS_URL=https://192.168.1.100
TRUENAS_API_KEY=1-your-api-key-here
TRUENAS_VERIFY_SSL=false
3. Test Connection
python tests/test_connection.py
4. Configure Claude Desktop
Add to your Claude Desktop config:
{
"mcpServers": {
"truenas": {
"command": "python",
"args": ["/path/to/truenas_mcp_server.py"],
"env": {
"TRUENAS_URL": "https://your-truenas-ip",
"TRUENAS_API_KEY": "your-api-key",
"TRUENAS_VERIFY_SSL": "false"
}
}
}
}
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:\n\n#### 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"\n\n#### 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# Storage Management
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
User & Permission Management
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
Sharing & Kubernetes
list_smb_shares()- View SMB/CIFS sharescreate_smb_share()- Create new SMB sharescreate_nfs_export()- NFS exports for Kubernetescreate_iscsi_target()- iSCSI block storage
Snapshots & Automation
create_snapshot()- Manual snapshotscreate_snapshot_policy()- Automated snapshot schedules
License
This project is licensed under the MIT License - see the LICENSE file for details.
Server Config
{
"mcpServers": {
"truenas-core-mcp-server": {
"command": "npx",
"args": [
"truenas-core-mcp"
]
}
}
}
Links & Status
Project Info
Hosted
Featured
Created At:
Jul 02, 2025
Updated At:
Aug 07, 2025
Author:
vespo92
Category:
community
License:
MIT
Tags:
development
location
documentation