truenas-mcp (spranab/truenas-mcp) is an MCP server listed on the M8ven Trust Index. It scores 60 out of 100, grade C. It declares 279 tools. No publisher has claimed this listing.

C
Caution
60/100

truenas-mcp

Provides comprehensive management of TrueNAS SCALE instances through 278 actions across 18 categories using a token-efficient hierarchical tool design. Users can perform tasks like storage management, service configuration, and system monitoring while benefiting from built-in safety confirmations and read-only dashboard resources.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

spranab

Source: Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
⚠️
Known vulnerabilities in dependencies: 3 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
🔐
You'll be asked for 1 credential: TRUENAS_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes279 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

truenas

Manage your TrueNAS SCALE system. 278 actions organized in categories. Usage: - No args or category="help" → list all categories - category only → list available actions in that category with parameters - category + action → execute (pass action-specific params in 'params') Categories: syste

alert_list

List all active alerts on the TrueNAS system. Shows alert level, message, source, and dismissal status.

alert_dismiss

Dismiss an alert by its UUID. Dismissed alerts no longer appear as active but can be restored.

alert_restore

Restore a previously dismissed alert by its UUID, making it active again.

alert_categories

List all available alert categories. Useful for understanding the types of alerts the system can generate.

alert_policies

List all available alert policies. Policies define how alerts are escalated and delivered.

alertservice_list

List all configured alert notification services (e.g. email, Slack, PagerDuty). Shows their type, enabled status, and alert level.

alertservice_create

Create a new alert notification service. Configures how and where alerts are delivered.

alertservice_update

Update an existing alert notification service by its ID. All fields are optional — only provide the ones to change.

alertservice_delete

Delete an alert notification service by its ID. Use alertservice_list to find the ID.

alertservice_test

Send a test notification through an alert service to verify it is configured correctly.

certificate_list

List all certificates on the system, including self-signed, imported, CSR, and ACME certificates.

certificate_get

Get a specific certificate by its numeric ID. Returns full certificate details including the PEM content.

certificate_create

Create a new certificate. Supports internal (self-signed), CSR, imported, and ACME certificate types. Only name and create_type are required; other fields depend on the create_type.

certificate_delete

Delete a certificate by its ID. This is a DESTRUCTIVE operation — the 'confirm' parameter must be true to proceed. Optionally force deletion even if the certificate is in use.

certificate_acme_servers

List available ACME server choices (e.g. Let's Encrypt production/staging). Use when configuring ACME certificates.

acme_dns_authenticator_list

List all configured ACME DNS authenticators. These are used for DNS-01 challenge validation when issuing ACME certificates.

acme_dns_authenticator_create

Create a new ACME DNS authenticator for DNS-01 challenge validation. The attributes depend on the authenticator type (e.g. Cloudflare, Route53).

acme_dns_authenticator_delete

Delete an ACME DNS authenticator by its ID.

update_check

Check for available system updates. Returns information about pending updates and the current train.

update_config

Get the current update configuration, including the active update train.

update_config_set

Set the update configuration. Currently supports changing the update train.

update_download

Download pending system updates. This starts the download process; the system is not updated until update_apply is called.

update_apply

Apply previously downloaded system updates. This is a DESTRUCTIVE operation that may reboot the system. The 'confirm' parameter must be true to proceed.

bootenv_list

List all boot environments. Shows name, active status, creation date, size, and keep flag.

bootenv_create

Create a new boot environment by cloning an existing one. Useful for creating a restore point before updates.

bootenv_activate

Activate a boot environment so it will be used on next boot.

bootenv_delete

Delete a boot environment. This is a DESTRUCTIVE operation — the 'confirm' parameter must be true to proceed. Cannot delete the currently active boot environment.

bootenv_keep

Set or clear the 'keep' flag on a boot environment. Boot environments with keep=true are protected from automatic pruning.

boot_state

Get the current state of the boot pool, including disk layout, health status, and capacity.

boot_attach_disk

Attach a disk to the boot pool to create or extend a mirror. This is a DESTRUCTIVE operation that will erase the target disk. The 'confirm' parameter must be true to proceed.

boot_detach_disk

Detach a disk from the boot pool mirror. This is a DESTRUCTIVE operation — the 'confirm' parameter must be true to proceed.

boot_scrub

Start a scrub of the boot pool to check for and repair data integrity issues.

filesystem_stat

Get file or directory info including permissions, size, owner, and timestamps. Provide the full path on the TrueNAS system.

filesystem_listdir

List contents of a directory. Returns files and subdirectories with metadata. Supports pagination via limit and offset.

filesystem_mkdir

Create a new directory at the specified path. Optionally set the UNIX mode (permissions).

filesystem_set_permissions

Set UNIX permissions on a file or directory. Can optionally apply recursively and strip existing ACLs.

filesystem_get_acl

Get the Access Control List (ACL) for a file or directory path. Optionally return a simplified representation.

filesystem_set_acl

Set the Access Control List (ACL) for a file or directory. This is a powerful operation — the 'confirm' parameter must be true to proceed.

filesystem_chown

Change ownership of a file or directory. Can optionally apply recursively.

reporting_config

Get the current reporting/metrics configuration.

reporting_graphs

List all available reporting graphs (CPU, memory, disk, network, etc.). Use the graph names with reporting_get_data to fetch time-series data.

reporting_get_data

Get time-series reporting data for one or more graphs (CPU, memory, disk, network, etc.). Use reporting_graphs first to discover available graph names and identifiers.

directory_services_config

Get directory services configuration (Active Directory / LDAP).

directory_services_update

Update directory services configuration. Fields depend on whether Active Directory or LDAP is configured. Pass only the fields you want to change.

directory_services_status

Get current directory services status including connection state and health.

directory_services_leave

Leave the current Active Directory or LDAP domain. This is a DESTRUCTIVE operation — 'confirm' must be true to proceed. Requires domain credentials.

directory_services_cache_refresh

Refresh the directory services cache. Forces re-read of users and groups from the directory server.

kerberos_config

Get Kerberos configuration settings.

kerberos_realm_list

List all configured Kerberos realms.

kerberos_keytab_list

List all configured Kerberos keytabs.

tunable_list

List all system tunables (sysctl, loader, and rc variables).

tunable_create

Create a new system tunable. Tunables allow setting sysctl, loader, or rc variables.

tunable_update

Update an existing tunable by its ID. Use tunable_list to find the ID. All fields are optional — only provide the ones to change.

tunable_delete

Delete a tunable by its ID. Use tunable_list to find the ID.

ssh_config

Get the current SSH service configuration.

ssh_config_update

Update SSH service configuration. All fields are optional — only provide the ones you want to change. Restart the SSH service after changes.

ftp_config

Get the current FTP service configuration.

ftp_config_update

Update FTP service configuration. All fields are optional — only provide the ones you want to change. Restart the FTP service after changes.

snmp_config

Get the current SNMP service configuration.

snmp_config_update

Update SNMP service configuration. All fields are optional — only provide the ones you want to change.

ups_config

Get the current UPS service configuration.

ups_config_update

Update UPS service configuration. All fields are optional — only provide the ones you want to change.

privilege_list

List all privileges/roles configured on the system.

privilege_create

Create a new privilege/role with specific permissions and group bindings.

privilege_update

Update an existing privilege/role by its ID. Use privilege_list to find the ID. All fields are optional.

privilege_delete

Delete a privilege/role by its ID. Use privilege_list to find the ID.

audit_query

Query the TrueNAS audit log. Supports filtering by services and applying query filters and options.

audit_config

Get the current audit configuration including retention and quota settings.

audit_config_update

Update audit configuration. All fields are optional — only provide the ones you want to change.

truenas_api_call

Make a raw API call to any TrueNAS endpoint not covered by specific tools. This is an escape hatch for advanced or uncommon operations. The body parameter accepts a JSON string that will be parsed before sending.

network_interface_list

List all network interfaces on the TrueNAS system, including physical NICs, VLANs, bridges, and bond/LAGG interfaces.

network_interface_get

Get details of a specific network interface by its ID (e.g. 'em0', 'br0', 'bond0').

network_interface_create

Create a new network interface (VLAN, bridge, or bond/LAGG). Network changes are staged until committed with network_commit_changes.

network_interface_update

Update an existing network interface. All fields are optional — only provide the ones you want to change. Network changes are staged until committed with network_commit_changes.

network_interface_delete

Delete a network interface. This is a DESTRUCTIVE operation — the 'confirm' parameter must be set to true to proceed. Network changes are staged until committed.

network_config

Get the global network configuration including hostname, domain, gateways, nameservers, and proxy settings.

network_config_update

Update global network configuration. All fields are optional — only provide the ones you want to change.

network_summary

Get a summary of the network configuration including all interfaces, IPs, default routes, and nameservers.

network_static_route_list

List all configured static routes.

network_static_route_create

Create a new static route.

network_static_route_delete

Delete a static route by its numeric ID. Use network_static_route_list to find the ID.

network_ipmi_info

Get IPMI chassis information if IPMI is available on this system. First checks whether IPMI hardware is present.

network_commit_changes

Commit pending network interface changes. Network changes are staged and must be committed to take effect. Use checkin_timeout to set a rollback timer — if you do not check in (network_checkin) within that time, changes are automatically rolled back.

network_rollback_changes

Rollback all pending (uncommitted) network interface changes, restoring the previous network configuration.

network_checkin

Check in after committing network changes to confirm they are working. This prevents the automatic rollback that occurs if you don't check in within the checkin_timeout window.

user_list

List all users on the TrueNAS system, including system and local accounts.

user_get

Get details of a specific user by their numeric ID.

user_create

Create a new user account on the TrueNAS system.

user_update

Update an existing user account. All fields are optional — only provide the ones you want to change.

user_delete

Delete a user account. This is a DESTRUCTIVE operation — the 'confirm' parameter must be set to true to proceed.

user_shell_choices

Get a list of available login shells on the system. Useful when creating or updating a user to know which shells are valid.

user_set_password

Set or change a user's password by their numeric ID.

group_list

List all groups on the TrueNAS system.

group_get

Get details of a specific group by its numeric ID.

group_create

Create a new group on the TrueNAS system.

group_update

Update an existing group. All fields are optional — only provide the ones you want to change.

group_delete

Delete a group. This is a DESTRUCTIVE operation — the 'confirm' parameter must be set to true to proceed.

disk_list

List all physical disks in the TrueNAS system with their details including serial numbers, sizes, and pool membership.

disk_get

Get details of a specific disk by its device name (e.g. 'sda', 'nvme0n1').

179 further tools are not listed here. The complete surface is in the source.

// known CVEs in dependencies3 high

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

high@modelcontextprotocol/sdk@1.12.1GHSA-345p-7cg4-v4c7

@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse

high@modelcontextprotocol/sdk@1.12.1GHSA-8r9q-7v3j-jr4g

Anthropic's MCP TypeScript SDK has a ReDoS vulnerability

high@modelcontextprotocol/sdk@1.12.1GHSA-w48q-cv73-mx4w

Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
🔐 secretTRUENAS_API_KEYTRUENAS_URL=https://truenas.local =1-abc123 npx truenas-mcp
configTRUENAS_HOST
configTRUENAS_URLYes TrueNAS instance URL (e.g. https://truenas.local)
configTRUENAS_VERIFY_SSLNo Set to false to skip SSL verification (self-signed certs)
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

279/279 tools missing one or more hints — truenas (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); alert_list (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); alert_dismiss (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +276 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Tool inputs are validated

198/279 tool handlers declare input schemas (71%)

Declare an inputSchema with zod/joi/yup on every tool definition.

Tool handlers catch errors

Only 2/279 tool handlers wrap calls in try/catch (1%)

Wrap each tool handler body in try/catch and return a structured error response.

Tests exist

No test files found

Add tests that exercise each declared tool.

Production dependencies are patched

0 critical, 3 high severity in production deps — @modelcontextprotocol/sdk@1.12.1 (high), @modelcontextprotocol/sdk@1.12.1 (high)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 6 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/spranab/truenas-mcp?variant=verified)](https://m8ven.ai/mcp/spranab/truenas-mcp)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: b6f25be9cf91cc304d2f8c21b957c0fc2f510356
code hash: e9e289a40454c1bbb5f2b2fe228afff115ee58721e8429c05766f17aef3d8c5c
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client