disk-space-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@disk-space-mcpcheck disk space on /projects"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
disk-space-mcp
A small Model Context Protocol server that
reports and validates free disk space. It exposes a single read-only tool,
check_disk_space, backed by Node's fs.statfs — no shell-outs to df, no
runtime dependencies beyond the MCP SDK and Zod.
Tool: check_disk_space
Reports total / used / available space for the filesystem that contains a path, and validates it against optional free-space thresholds.
Argument | Type | Default | Description |
| string | home directory | Any path; stats apply to the filesystem containing it. |
| number | — | If available space is below this many GiB, |
| number |
| If available space is below this percentage, |
It returns both a human-readable text block and structuredContent:
{
"path": "/Users/you",
"totalBytes": 494384795648,
"usedBytes": 312000000000,
"freeBytes": 182000000000,
"availableBytes": 175000000000,
"usedPercent": 63.11,
"availablePercent": 35.4,
"status": "ok",
"message": "OK: 163 GiB available of 460 GiB (35.4% free, 63.11% used) on /Users/you."
}availableBytes (POSIX bavail) is the space actually usable by your user and
is the value the thresholds check; freeBytes (bfree) additionally counts
space reserved for root.
Related MCP server: Local File System MCP Server
Develop
npm install
npm run build # tsc -> dist/
npm test # vitest: pure-logic unit tests + in-memory protocol tests
npm run typecheck # tsc --noEmit
npm run smoke # build first, then spawn the server and call the tool over stdioRegister with Claude Code
npm run build
claude mcp add disk-space --scope user -- node /ABSOLUTE/PATH/TO/disk-space-mcp/dist/index.jsOr add it manually to an MCP client config:
{
"mcpServers": {
"disk-space": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/disk-space-mcp/dist/index.js"]
}
}
}Design notes
Layered for testability.
diskSpace.tsis a pure module (byte math, thresholds, formatting) with no I/O, unit-tested in isolation.getDiskStats.tsis the thinfs.statfsadapter, injected intocreateServer()so the protocol wiring can be tested end-to-end against an in-memory transport with fabricated stats.stdio-safe. All diagnostics go to stderr; stdout carries only JSON-RPC.
Read-only and shell-free. The tool only reads filesystem capacity via
statfs; it never reads file contents and never invokes a shell, so there is no command-injection surface. Paths are resolved to absolute and failures (missing path, permission denied) return a cleanisErrorresult.Unit semantics. Byte counts use
frsizewhen available (Node ≥ 24.16), falling back tobsizeon older runtimes. Sizes are formatted with binary (IEC) units — KiB / MiB / GiB.
Security
Read-only, shell-free. The only side effect is
fs.statfs. There is nochild_process/exec/spawnanywhere, so there is no command-injection surface, andstatfsexposes filesystem capacity only — never file contents.Input is validated at the boundary. The
pathargument is length-capped and rejected if it contains control characters (NUL, ESC, CR, …), which both neutralizesstatfs's silent null-byte truncation and prevents control/ANSI sequences from being reflected into tool output that a terminal or agent later renders.minFreeGb/minFreePercentare bounded and must be finite.No information leak on error. Failures return a clean
isErrorresult with an errno code (e.g.ENOENT) rather than raw runtime internals; full error detail is logged to stderr only.stdio-only. Only
StdioServerTransportis instantiated. The MCP SDK transitively pulls in an HTTP/auth stack that this server never uses; since consumers only run the stdio binary, those code paths are never reached. For a hardened install,npm ci --ignore-scriptsis safe (no runtime dependency needs an install script). CI gates production dependencies withnpm audit --omit=dev --audit-level=high.
License
MIT — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/fjmn2001/disk-space-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server