Skip to main content
Glama

TrueNAS Core MCP Server

TrueNAS MCP Server

Control your TrueNAS system using natural language through Claude Desktop

FeaturesQuick StartInstallationDocumentationExamples


🌟 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

# Clone the repository git clone https://github.com/vespo92/TrueNasCoreMCP.git cd TrueNasCoreMCP # Quick setup (recommended) ./quick_setup.sh # On Windows: quick_setup.bat # Or manual setup: python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt

2. Configure

# Copy example config cp .env.example .env # 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

  1. Log into TrueNAS web interface
  2. Navigate to SettingsAPI Keys
  3. Click Add and name your key
  4. 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 pools
  • list_datasets() - List all datasets
  • get_pool_status() - Detailed pool information
  • create_dataset() - Create new datasets
  • modify_dataset_properties() - Change ZFS properties
  • get_dataset_properties() - View dataset configuration
  • list_users() - List system users
  • get_user() - Detailed user information
  • modify_dataset_permissions() - Change Unix permissions
  • update_dataset_acl() - Manage Access Control Lists
  • get_dataset_permissions() - View current permissions
  • list_smb_shares() - View SMB/CIFS shares
  • create_smb_share() - Create new SMB shares
  • create_nfs_export() - NFS exports for Kubernetes
  • create_iscsi_target() - iSCSI block storage
  • create_snapshot() - Manual snapshots
  • create_snapshot_policy() - Automated snapshot schedules

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Setup

# Install development dependencies pip install -r requirements-dev.txt # Run tests pytest tests/ # Format code black truenas_mcp_server.py # Lint flake8 truenas_mcp_server.py

🔒 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


Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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.

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.

  1. 🌟 Overview
    1. 🎯 Key Features
    2. ✅ Tested On
  2. 🚀 Quick Start
    1. Prerequisites
    2. Clone & Install
    3. Configure
    4. Test Connection
    5. Configure Claude Desktop
  3. 📚 Documentation
    1. Getting Your API Key
    2. Example Commands
    3. Detailed Documentation
  4. 🛠️ Available Functions
    1. 🤝 Contributing
      1. Development Setup
    2. 🔒 Security
      1. 📝 License
        1. 🙏 Acknowledgments

          Related MCP Servers

          • -
            security
            F
            license
            -
            quality
            A 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 -
            48
            4
            TypeScript
            • Apple
          • -
            security
            A
            license
            -
            quality
            A 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 -
            22
            Python
            Apache 2.0
            • Apple
            • Linux
          • -
            security
            F
            license
            -
            quality
            A filesystem Model Context Protocol server that provides Claude Desktop with capabilities to read, write, and manipulate files on your system.
            Last updated -
            TypeScript
          • -
            security
            A
            license
            -
            quality
            Model Context Protocol server that enables Claude Desktop (or any MCP client) to fetch web content and process images appropriately.
            Last updated -
            11
            MIT License
            • Apple

          View all related MCP servers

          MCP directory API

          We provide all the information about MCP servers via our MCP API.

          curl -X GET 'https://glama.ai/api/mcp/v1/servers/vespo92/TrueNasCoreMCP'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server