mcpField
U
Unstorage MCP Server

Unstorage MCP Server

Local
github.com/slow-groovinDatabases1Updated 66w ago

About Unstorage MCP Server

Unstorage MCP Server exposes key-value storage operations through unjs/unstorage. It is for MCP clients that need to read, write, inspect, or remove values across supported storage drivers, with stdio and HTTP-based transports.

Key features

  1. 01Read and write key-value entries
  2. 02Retrieve raw values and metadata
  3. 03List keys and mounted stores
  4. 04Support memory, filesystem, Redis, MongoDB, and HTTP drivers
  5. 05Offer stdio, Streamable HTTP, and SSE transports
  6. 06Disable modification tools by configuration

Use cases

  1. 01Store values produced during an agent workflow
  2. 02Read or update data in configured storage backends
  3. 03Inspect keys and metadata across mounted stores

MCP support

It provides key-value storage tools to MCP clients over stdio, Streamable HTTP, or SSE.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"unstorage": {
"command": "npx",
"args": [
"-y",
"/y"
],
"env": {
"REDIS_URL": "<REDIS_URL>",
"REDIS_BASE": "<REDIS_BASE>",
"REDIS_MOUNT_POINT": "<REDIS_MOUNT_POINT>"
}
}
}
}
Run commandnpx -y /y
Environment variables to set
REDIS_URL
REDIS_BASE
REDIS_MOUNT_POINT

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm/y

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Unstorage MCP Server

中文 README

A Key-Value storage MCP server based on unjs/unstorage.

Support drivers:

  1. memory
  2. filesystem
  3. redis
  4. unstorage http server
  5. mongodb

Support transports:

  • stdio
  • Streamable HTTP
  • SSE

Tools:

  • showMounts()
  • getItem(key)
  • getItems(items)
  • getItemRaw(key)
  • getMeta(key, nativeOnly)
  • getKeys(base, maxDepth)
  • setItem(key, value)
  • setItems(items)
  • setItemRaw(key, value)
  • setMeta(key, meta)
  • removeItem(key, removeMeta)
  • removeMeta(key)



Running with stdio

minimal configuration
{
  "mcpServers": {
    "unstorage": {
      "command": "npx",
      "args": ["-y", "@slow-groovin/unstorage-mcp"]
    }
  }
}
maximum configuration
{
  "mcpServers": {
    "unstorage": {
      "command": "npx",
      "env": {
        "REDIS_URL": "redis://default:123456@localhost:6379",
        "REDIS_BASE": "visits:date:api:",
        "REDIS_MOUNT_POINT": "redis_storage",
        "FS_BASE": "D:/tmp",
        "FS_MOUNT_POINT": "fs_storage",
        "HTTP_BASE": "http://localhost:3001",
        "HTTP_MOUNT_POINT": "http_storage",
        "HTTP_HEADERS": "Authorization=Bear 123;A=3;B=4;C=5",
        "MONGODB_URL": "mongodb://root:123456@localhost:27017/",
        "MONGODB_DB_NAME": "test",
        "MONGODB_COLLECTION_NAME": "unstorage",
        "MONGODB_MOUNT_POINT": "mongo_storage"
      },
      "args": ["-y", "@slow-groovin/unstorage-mcp", "--disable-modify"]
    }
  }
}
for Cline+Windows:
{
  "mcpServers": {
    "unstorage": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@slow-groovin/unstorage-mcp"]
    }
  }
}

If you have problem of installation on Windows, you can refrer to this article

Running with HTTP (SSE + Streamable)

npx @slow-groovin/unstorage-mcp --http

related arguments

argdefault
--httpenable http transport instead of stdiofalse
-p, --portlistening port3000
-h, --hostlistening hostlocalhost

Example prompt for use

The process has produced a key-value result: "fs_base:recommend_site"="www.api2o.com", store it.

args

--disable-modify

Default: false

Disable tools with modify functionality like setItem, setItems ...

environment variables

for the concept of base and mountpoint, please refer to the doc of unstorage

Set environment variables in the terminal or in the .env file

redis

if REDIS_URL is set, a redis storage will be mounted

SyntaxDescriptionDefault ValueOptional
REDIS_URLredis connect url, eg: redis://default:123456@localhost:6379
REDIS_BASEbase of redisDriver✅
REDIS_MOUNT_POINTmountpoint of this storage"/"✅
mongodb

if MONGODB_URL is set, a mongodb storage will be mounted

SyntaxDescriptionDefault ValueOptional
MONGODB_URLmongodb connect url, eg: mongodb://user:pass@host:port
MONGODB_DB_NAMEmongodb database name, eg: test
MONGODB_COLLECTION_NAMEmongodb collection name, eg: mycollection
MONGODB_MOUNT_POINTmountpoint of this storage"/"✅
filesystem

if FS_BASE is set, a redis storage will be mounted

SyntaxDescriptionDefault ValueOptional
FS_BASEbase of fsDriver, path of filesystem
FS_MOUNT_POINTmountpoint of this storage"/"✅
http server

if HTTP_BASE is set, a http storage will be mounted

SyntaxDescriptionDefault ValueOptional
HTTP_BASEbase of httpDriver, endpoint of http server
HTTP_MOUNT_POINTmountpoint of this storage"/"✅
HTTP_HEADERSheaders for http requests, eg: Authorization=Bear 123;A=1;B=2✅
memory

If there is no mount on root("/"), a memory driver will be mounted automatically on "/" (same behaviour of unstorage).

extend guide

  1. clone this repo
  2. copy src/storage/redis.ts to a new file and modify it to your desired driver(unjs/unstorage is super easy to learn)
  3. test and verify that it is effective
  4. (optional) pull a merge request

If you are not a typescript developer, please submit a issue to ask for other drivers support.

prompts for cursor/cline assisted programming
@/src/storage/mongodb.ts , please implement this file:
1. you need to fetch information using the storage type's corresponding Doc URL (https://unstorage.unjs.io/drivers/<storage type>).
2. you can refer to examples in @/src/adapter/redis.ts and @/src/storage/http.ts.
3. You are only responsible for generating the code and do not need to perform testing.

If you have not installed fetch MCP server, delete the first sentence

debug approaches

mcp-inspector
 mcp-inspector -e HTTP_BASE=http://localhost:3001 -e HTTP_MOUNT_POINT=http_storage -e FS_BASE=D:/temp -e FS_MOUNT_POINT=fs_storage -e HTTP_HEADERS="Authorization=Bear 123;" tsx ./src/index.ts
tsx mcpServer Config for local dev
{
  "mcpServers": {
    "command": "cmd",
    "env": {
      "REDIS_URL": "redis://default:123456@localhost:6379",
      "REDIS_BASE": "my:mcp:values:",
      "REDIS_MOUNT_POINT": "redis_storage"
    },
    "args": ["/c", "tsx", "D:/xxx/projects/unstorage-mcp/src/index.ts"]
  }
}

restarting server is needed to make changes take effect

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.