Unstorage MCP Server

Unstorage MCP Server

Enables key-value storage operations using multiple backends (memory, filesystem, redis, MongoDB, HTTP) via MCP tools like get, set, and list.

Category
Visit Server

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:

  • [x] stdio
  • [x] Streamable HTTP
  • [x] 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)

<br><br>

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

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured