Skip to main content
Glama
ctxinf

Unstorage MCP Server

by ctxinf

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

arg

default

--http

enable http transport instead of stdio

false

-p, --port

listening port

3000

-h, --host

listening host

localhost

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

Syntax

Description

Default Value

Optional

REDIS_URL

redis connect url, eg: redis://default:123456@localhost:6379

REDIS_BASE

base of redisDriver

REDIS_MOUNT_POINT

mountpoint of this storage

"/"

mongodb

if MONGODB_URL is set, a mongodb storage will be mounted

Syntax

Description

Default Value

Optional

MONGODB_URL

mongodb connect url, eg: mongodb://user:pass@host:port

MONGODB_DB_NAME

mongodb database name, eg: test

MONGODB_COLLECTION_NAME

mongodb collection name, eg: mycollection

MONGODB_MOUNT_POINT

mountpoint of this storage

"/"

filesystem

if FS_BASE is set, a redis storage will be mounted

Syntax

Description

Default Value

Optional

FS_BASE

base of fsDriver, path of filesystem

FS_MOUNT_POINT

mountpoint of this storage

"/"

http server

if HTTP_BASE is set, a http storage will be mounted

Syntax

Description

Default Value

Optional

HTTP_BASE

base of httpDriver, endpoint of http server

HTTP_MOUNT_POINT

mountpoint of this storage

"/"

HTTP_HEADERS

headers 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

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
6wRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/ctxinf/unstorage-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server