Unstorage MCP Server
@slow-groovin
Key-Value storage MCP server based on unjs/unstorage, support drivers: redis, mongodb, filesystem. http
Overview
What is Unstorage MCP Server?
A Key-Value storage MCP server based on unjs/unstorage. It mounts multiple storage backends (memory, filesystem, Redis, MongoDB, HTTP server) and exposes CRUD operations as MCP tools. Designed for developers who need to interact with diverse key-value stores through an AI agent or MCP client.
How to use Unstorage MCP Server?
Install via npm with npx @slow-groovin/unstorage-mcp, configuring drivers through environment variables (e.g., REDIS_URL, MONGODB_URL, FS_BASE, HTTP_BASE). Use arguments like --disable-modify to restrict write operations. Run with an MCP inspector or as a local dev server using tsx.
Key features of Unstorage MCP Server
- Supports memory, filesystem, Redis, MongoDB, and HTTP storage drivers.
- Provides 12 tools:
showMounts,getItem,getItems,getItemRaw,getMeta,getKeys,setItem,setItems,setItemRaw,setMeta,removeItem,removeMeta. --disable-modifyflag to forbid destructive tools.- Automatic fallback to memory driver when no root mount is defined.
- Easy to extend: clone repo, copy a driver file, and implement.
- Environment variables configure driver-specific base paths and mount points.
Use cases of Unstorage MCP Server
- Let an AI assistant read and write key-value data in Redis, MongoDB, or the filesystem.
- Provide a unified MCP interface to multiple storage backends for debugging or operations.
- Enable AI agents to store session state, configuration, or temporary data across runs.
- Quickly test or prototype storage interactions without writing a custom MCP server.
FAQ from Unstorage MCP Server
What drivers does Unstorage MCP Server support out of the box?
Memory, filesystem, Redis, MongoDB, and unstorage HTTP server.
Can I disable write operations to prevent accidental modifications?
Yes, pass the --disable-modify argument to the server. This disables setItem, setItems, setItemRaw, setMeta, removeItem, and removeMeta.
How do I configure the Redis driver?
Set the REDIS_URL environment variable (e.g., redis://user:pass@host:6379). Optionally set REDIS_BASE and REDIS_MOUNT_POINT. Similarly for MongoDB, filesystem, and HTTP drivers.
What happens if I don’t define any root mount?
A memory driver is automatically mounted on "/", mirroring the default behavior of unstorage.
How can I add a new storage driver?
Clone the repository, copy an existing driver file (e.g., src/storage/redis.ts), modify it to use the desired unjs/unstorage driver, test, and optionally open a pull request.