<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>SMART on Wojciech Marusiak IT Blog</title>
        <link>https://www.wojcieh.net/tags/smart/</link>
        <description>Recent content in SMART on Wojciech Marusiak IT Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <lastBuildDate>Wed, 21 Oct 2026 10:00:00 +0200</lastBuildDate><atom:link href="https://www.wojcieh.net/tags/smart/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Giving AI Access to Your NAS: Building a QNAP MCP Server for Disk Health &amp; Backup Audits</title>
        <link>https://www.wojcieh.net/giving-ai-access-to-nas-qnap-mcp-server/</link>
        <pubDate>Wed, 21 Oct 2026 10:00:00 +0200</pubDate>
        
        <guid>https://www.wojcieh.net/giving-ai-access-to-nas-qnap-mcp-server/</guid>
        <category>QNAP</category>
        <category>NAS</category>
        <category>Storage</category>
        <category>MCP</category>
        <category>FastMCP</category>
        <category>SMART</category>
        <category>HBS3</category>
        <category>Antigravity</category>
        <category>AI &amp; LLM Ops</category>
        <category>Homelab</category>
        <description>&lt;p&gt;&lt;img src=&#34;https://www.wojcieh.net/images/uploads/2026/10/qnap-nas-mcp-server-antigravity.webp?v=2&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Giving AI Access to Your NAS with QNAP MCP Server&#34;
	
	
&gt;&lt;/p&gt;
&lt;p&gt;QNAP QTS is a powerful operating system for enterprise and homelab storage, but navigating the web interface just to check drive health, QuLog alerts, or HBS3 replication jobs can be slow and tedious.&lt;/p&gt;
&lt;p&gt;In this post, I detail how we built and deployed &lt;strong&gt;&lt;code&gt;mcp-qnap&lt;/code&gt;&lt;/strong&gt;—a FastMCP microservice listening on port 8442 that allows Antigravity to perform deep diagnostics, SMART disk inspections, and shared folder ACL audits directly from the prompt.&lt;/p&gt;
&lt;h2 id=&#34;the-architecture-fastmcp-on-qts&#34;&gt;The Architecture: FastMCP on QTS
&lt;/h2&gt;&lt;p&gt;We interface with QNAP&amp;rsquo;s underlying QTS management API using Python and FastMCP. The service exposes read-only endpoints secured with Bearer token authentication:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Endpoint:&lt;/strong&gt; &lt;code&gt;http://10.10.30.25:8442/mcp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transport:&lt;/strong&gt; HTTP JSON-RPC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auth:&lt;/strong&gt; Pre-shared API Key in &lt;code&gt;Authorization: Bearer &amp;lt;token&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;what-the-ai-can-inspect&#34;&gt;What the AI Can Inspect
&lt;/h2&gt;&lt;p&gt;Our &lt;code&gt;mcp-qnap&lt;/code&gt; server registers 25 granular inspection tools:&lt;/p&gt;
&lt;h3 id=&#34;1-storage--smart-telemetry&#34;&gt;1. Storage &amp;amp; SMART Telemetry
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;list_disks&lt;/code&gt; / &lt;code&gt;list_storages&lt;/code&gt;: Checks NVMe and HDD SMART temperatures, reallocated sector counts, and pool capacity.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get_pool_usage_history&lt;/code&gt; / &lt;code&gt;get_qts_volume_usage_history&lt;/code&gt;: Identifies capacity growth trends.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-access-control--shared-folders&#34;&gt;2. Access Control &amp;amp; Shared Folders
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;list_shared_folder&lt;/code&gt; / &lt;code&gt;get_shared_folder_permission_acl&lt;/code&gt;: Audits SMB/NFS permissions and subfolder ACL inheritance.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;verify_shared_folder_permission&lt;/code&gt;: Verifies whether user &lt;code&gt;wojcieh&lt;/code&gt; or service account &lt;code&gt;kopia&lt;/code&gt; has write access without guessing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-system-load--security&#34;&gt;3. System Load &amp;amp; Security
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;query_top_processes&lt;/code&gt; / &lt;code&gt;query_load_avg&lt;/code&gt;: Diagnoses CPU/RAM spikes without SSH logins.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get_securitycenter_report&lt;/code&gt; / &lt;code&gt;get_qvr_logs&lt;/code&gt;: Scans for failed login attempts and firewall blocks.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;real-world-example-automating-3-2-1-backup-verification&#34;&gt;Real-World Example: Automating 3-2-1 Backup Verification
&lt;/h2&gt;&lt;p&gt;When verifying our automated Kopia backups to QNAP NFS:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;User: &amp;#34;Antigravity, audit my QNAP backup storage pool before we trigger the weekly offsite sync.&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Agent:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. Calls mcp_qnap_list_disks: All 4 WD Red Pro drives healthy, max temp 36°C, 0 bad sectors.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. Calls mcp_qnap_get_shared_folder(folder=&amp;#34;Kopia-Backups&amp;#34;): 2.4 TB used, 4.1 TB free.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. Calls mcp_qnap_verify_shared_folder_permission(user=&amp;#34;kopia-svc&amp;#34;, folder=&amp;#34;Kopia-Backups&amp;#34;): Write Access: OK.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Agent Response:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;Storage Pool 1 is healthy (all drives nominal at 36°C). The Kopia-Backups share has 4.1 TB available space with correct POSIX write permissions. Ready for offsite sync.&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;By connecting your NAS via MCP, your AI assistant becomes a proactive storage reliability engineer.&lt;/p&gt;</description>
        </item>
        
    </channel>
</rss>
