Give your AI agent a real local drive — MeshDrive 2.0 + MCP (stdio) Vistrix Labs released MeshDrive 2.0, a local-first Linux storage layer built on JuiceFS and SQLite metadata that ships a free MCP server letting AI agents list, read, and write files only within an isolated root directory. The release supports Cursor, Claude Code, and Hermes via stdio transport, with a terminal UI, loopback Filebrowser interface, and no cloud requirement for the free tier. The company says "MeshDrive MCP works today with Cursor, Claude Code, and Hermes via stdio. Local-first JuiceFS storage for Linux, with MCP tools for Cursor, Claude Code, and Hermes. Most AI agents can read files — but only if you point them at random folders on your laptop. That’s fragile, hard to isolate, and useless when you want durable storage multi-volume, quotas, web UI that agents can use safely. MeshDrive is a local-first Linux storage layer JuiceFS + SQLite metadata with a terminal UI, loopback Filebrowser, and a free MCP server so agents can list, read, and write files only inside an isolated root /opt/meshdrive by default . No cloud required for the free tier.. Your data stays on your disks. GitHub: vix-gateway/MeshDrive https://github.com/Hardik94/vix-gateway/tree/master Docs: MCP clients guide https://github.com/Hardik94/vix-gateway/blob/master/meshdrive/docs/mcp-clients.md Requirements: Ubuntu/Debian amd64, FUSE, Python 3.10+, outbound HTTPS on first install. curl https://github.com/Hardik94/vix-gateway/releases/download/v2.0.0/meshdrive 2.0.0 amd64.deb sudo dpkg -i meshdrive 2.0.0 amd64.deb Verify: meshdrive doctor meshdrive status sudo systemctl status meshdrive-agent Create storage one-time meshdrive-tui In the TUI: Storage → Add backend → Mount . Then open Filebrowser: http://127.0.0.1:8080 http://127.0.0.1:8080 sudo meshdrive-addons install mcp Smoke test no LLM needed — proves MCP works : /opt/meshdrive/venv/bin/python packaging/mcp-smoke-test.py --stdio You should see: tools 8 and health check → PASS. Run Cursor on the same machine as MeshDrive or use SSH — see below . Create .cursor/mcp.json in your project or ~/.cursor/mcp.json globally : { "mcpServers": { "meshdrive": { "command": "/opt/meshdrive/bin/meshdrive-mcp", "args": , "env": { "MESHDRIVE ROOT": "/opt/meshdrive", "MESHDRIVE MCP TRANSPORT": "stdio" } } } } Why stdio? Cursor’s URL mode often uses Streamable HTTP. MeshDrive’s HTTP mode is legacy SSE GET /sse + POST /messages/ . stdio avoids that mismatch entirely. { "mcpServers": { "meshdrive": { "command": "ssh", "args": "user@YOUR SERVER IP", "MESHDRIVE ROOT=/opt/meshdrive", "MESHDRIVE MCP TRANSPORT=stdio", "/opt/meshdrive/bin/meshdrive-mcp" } } } Set up passwordless SSH first ssh-copy-id . On the MeshDrive host: claude mcp add meshdrive \ --env MESHDRIVE ROOT=/opt/meshdrive \ -- /opt/meshdrive/bin/meshdrive-mcp claude mcp list In a session: “ Call meshdrive health check and list storage backends. ” Project-level config .mcp.json — same JSON as Cursor’s mcpServers block. Run Hermes on the MeshDrive machine same host as Ollama . Do not use HTTP/SSE for local models — many never trigger tool calls. ~/.hermes/config.yaml: mcp servers: meshdrive: command: /opt/meshdrive/bin/meshdrive-mcp args: env: MESHDRIVE ROOT: /opt/meshdrive MESHDRIVE MCP TRANSPORT: stdio enabled: true hermes mcp test meshdrive Use a model with solid function-calling e.g. Qwen2.5, Llama 3.1+ . Set context ≥ 8192 so tool schemas aren’t truncated. ~/.hermes/config.yaml: mcp servers: meshdrive: url: "http://localhost:9000/sse" transport: sse enabled: true connect timeout: 30 Release message: “ MeshDrive MCP works today with Cursor, Claude Code, and Hermes via stdio. ” AI client stdio → meshdrive-mcp → isolated paths under /opt/meshdrive → JuiceFS mounts Humans use Filebrowser; agents use MCP. Same storage, different interfaces. Try it Issues & feedback: GitHub Issues on that repo. MeshDrive 2.0 — local-first storage for the agentic era. Built by Vistrix Labs.