skills
已验证 · 实测可装 upstash
功能简介
Upstash技能集合。
可用 — 实测通过,社区增长中
Upstash技能集合。 实测能干净安装、正常启动。社区在增长,是个稳妥选择。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
Upstash Agent Skills
Connect your AI coding agent to Upstash. This repo ships skills (per-SDK instruction packs your agent loads on demand) and the plugin manifests that install them — and now the Upstash MCP server — into Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Zed, and any Agent Skills–compatible client.
The Upstash agent surface
Skills — packaged instructions and CLI references for each Upstash SDK (Redis, QStash, Workflow, Vector, Search, Box, Blob, Ratelimit). No credentials needed. → docs
MCP server — live tools to query, debug, and manage your account. Two ways to run it:
- Remote (hosted) —
https://mcp.upstash.com/mcp, streamable HTTP, authenticated with OAuth (browser consent, on first use) or a developer API key header. Nothing to install. - Local (stdio) —
@upstash/mcp-serverrun withnpx, authenticated with your account email + a developer API key.
→ docs
- Remote (hosted) —
New here? Start with the AI Tools overview, and see Install by agent for full per-client setup.
What's in this repo
skills/upstash-*/— the per-SDK skill sources (each has aSKILL.md). Edit these.skills/upstash/— the combined skill, generated from all the sources bynpm run build. Never hand-edit it (seeAGENTS.md).- Plugin manifests —
.claude-plugin/,.codex-plugin/,.cursor-plugin/,gemini-extension.json, and the portable Agent Pluginsplugin.json+mcp.json. They make the repo installable as a plugin/extension. These plugins now bundle the remote Upstash MCP server (OAuth), so installing the plugin sets up the skills and the MCP in one step — no separate MCP configuration for Claude Code, Codex, Cursor, or Gemini CLI. zed-extension/— a Zed MCP server extension (Rust → Wasm).assets/— branding used on the plugin card, read by Codex (interface.logo/interface.composerIcon) and Cursor (logo). Claude Code, Gemini CLI and the Agent Plugins schema have no icon field.
Available Skills
| Skill | Description |
|---|---|
| upstash | Combined skill covering all Upstash SDKs and CLIs. |
| upstash-blob-js | S3-compatible object storage with direct browser uploads and signed URLs. |
| upstash-box-cli | Drive a sandboxed cloud container from the terminal with the box CLI. |
| upstash-box-js | Sandboxed cloud containers with AI agents, shell, filesystem, and git. |
| upstash-box-py | The same sandboxed cloud containers, from the Python SDK. |
| upstash-box-remote-work | Do work in a sandboxed cloud Box over the remote MCP, with preview URLs, screenshots, and PRs. |
| upstash-cli | Drive the Upstash Developer API from the terminal with the upstash CLI. |
| upstash-qstash-js | Serverless messaging and scheduling via HTTP endpoints. |
| upstash-ratelimit-js | Rate limiting with the Redis Rate Limit TypeScript SDK. |
| upstash-redis-js | Serverless Redis — caching, sessions, leaderboards, full-text search. |
| upstash-redis-start | Provision a zero-config, no-signup scratch Redis database for an agent. |
| upstash-search-js | Full-text search quick starts, core concepts, and TypeScript SDK. |
| upstash-vector-js | Vector database features, SDK usage, and framework integrations. |
| upstash-workflow-js | Durable workflows — define, trigger, and manage multi-step processes. |
Install
Installing through a plugin (Claude Code, Codex, Cursor, Gemini CLI) sets up both the skills and the remote MCP server — approve the MCP's OAuth consent on first use. The skills-only installers (Agent Skills CLI, OpenCode, Zed) install skills; add the MCP server separately if you want live account access.
For the full, up-to-date per-client instructions, see Install by agent.
Claude Code (skills + MCP)
# Add the marketplace
/plugin marketplace add upstash/skills
# Install the plugin
/plugin install upstash@upstash
OpenAI Codex (skills + MCP)
# Add the marketplace
codex plugin marketplace add upstash/skills
# Install the plugin
codex plugin add upstash@upstash
Cursor (skills + MCP)
We are waiting for this plugin to be accepted to the official
Cursor Marketplace. Once listed, it can be installed
from Customize in the Cursor sidebar, and it brings both the skills and the MCP server.
Gemini CLI (skills + MCP)
Gemini CLI loads this repo as an extension — the manifest is gemini-extension.json at the repo root; every skill under skills/ and the remote MCP server are picked up automatically:
gemini extensions install https://github.com/upstash/skills
OpenCode
OpenCode loads Agent Skills from .agents/skills/ in a project
and ~/.config/opencode/skills/ globally, which is where the Agent Skills CLI writes them for
OpenCode:
# Available in every project
npx skills add upstash/skills --agent opencode --global
# Or just this project
npx skills add upstash/skills --agent opencode
OpenCode exposes the installed skills to the agent through its native skill tool, so the
agent loads only the sub-skill relevant to the task at hand. For live access to your account
(create databases, inspect QStash logs, and so on), add the MCP server as well.
Zed
Zed loads Agent Skills from .agents/skills/ in a project
and ~/.agents/skills/ globally, which is exactly where the Agent Skills CLI writes them:
# Available in every project
npx skills add upstash/skills --agent zed --global
# Or just this project
npx skills add upstash/skills --agent zed
The skills then show up in Zed's Agent Panel, and the agent can load them on its own or via/upstash. Zed's extension marketplace carries languages, themes, debuggers, snippets, and MCP
servers, but has no channel for skills, so the CLI is the only way to install them. The Zed
extension in zed-extension/ covers the MCP server instead.
Context7 CLI
npx ctx7 skills install upstash/skills
Agent Skills CLI
npx skills add upstash/skills
DeepSeek Harness
Installs the skills and the Upstash MCP server in one step. Requirespnpm on your PATH.
# Install into a profile (`web` is the one `dsh web` boots)
dsh plugin --profile web add github:upstash/skills
# Start the harness
dsh web
Then store your Upstash credentials from inside a session:
/upstash-login YOUR_EMAIL YOUR_API_KEY
Credentials are stored in ~/.dsh/.credentials.yaml and the MCP server connects as
soon as both are set. The skills work without them.
MCP Server
Installing a plugin above already wires up the remote MCP server. Set it up on its own when you
use a skills-only installer (OpenCode, Zed) or a client without a plugin.
Remote (recommended) — no install; OAuth on first use, or pass a developer API key header
(email:API_KEY) for headless/CI. Create a key at
Console → Account → API Keys.
Claude Code
# OAuth (browser consent on first /mcp use)
claude mcp add --transport http upstash https://mcp.upstash.com/mcp
# Or a developer API key, no browser
claude mcp add --transport http upstash https://mcp.upstash.com/mcp \
--header "Authorization: Bearer [email protected]:YOUR_API_KEY"
Cursor
Add to ~/.cursor/mcp.json (add headers with the Authorization line for the API-key path):
{
"mcpServers": {
"upstash": { "url": "https://mcp.upstash.com/mcp" }
}
}
OpenCode
Add to opencode.json, or ~/.config/opencode/opencode.json to make it available everywhere.
See the OpenCode MCP docs.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"upstash": {
"type": "remote",
"url": "https://mcp.upstash.com/mcp",
"enabled": true
}
}
}
Scope which product tools the agent sees by appending ?features= to the URL — comma-separated
from redis, qstash_workflow, vector, search, box, blob (omitted means all), e.g.https://mcp.upstash.com/mcp?features=redis,qstash_workflow.
Local (stdio) — run @upstash/mcp-server
yourself, authenticated with your email + API key. Read-only keys are supported (the server then
disables every state-changing tool).
Claude Code
claude mcp add upstash -- npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"upstash": {
"command": "npx",
"args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
}
}
}
OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"upstash": {
"type": "local",
"command": ["npx", "-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"],
"enabled": true
}
}
}
Zed
This repo ships a Zed MCP extension in zed-extension/. Once it is accepted
into the Zed extension registry, install
Upstash Redis MCP Server from Settings → AI → MCP Servers → Add Server → Install from
Extensions, and Zed will prompt for upstash_email and upstash_api_key. Until then, install
it as a dev extension (zed: install dev extension, then pick the zed-extension/ directory).
To skip the extension entirely, add the server to your Zed settings by hand
(zed: open settings file):
{
"context_servers": {
"upstash": {
"command": "npx",
"args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
}
}
}
Making changes
Updating an existing skill
- Edit the files in the individual skill folder (e.g.
skills/upstash-qstash-js/). - Run
npm run buildto regenerateskills/upstash/. - Commit both the source changes and the regenerated output.
Adding a new skill
- Create a new folder under
skills/(e.g.skills/upstash-redis-js/). - Add a
SKILL.mdwith the standard frontmatter (nameanddescription) and any supporting files. - Run
npm run build— the new skill will be picked up automatically. - Commit everything.
Changing the combined skill header
The frontmatter and introductory text for skills/upstash/SKILL.md comes from scripts/header.md. Edit that file, then run npm run build.
Updating the plugin version
When making a release, bump the version field in every manifest that carries one: plugin.json (the portable Agent Plugins manifest), .claude-plugin/plugin.json, .cursor-plugin/plugin.json, .codex-plugin/plugin.json, and gemini-extension.json.
The Zed extension
zed-extension/ is a Zed MCP server extension that runs @upstash/mcp-server.
It is a Rust crate compiled to WebAssembly, and it is only about the MCP server — Zed extensions
cannot carry skills.
cd zed-extension
rustup target add wasm32-wasip2 # once
cargo build --release --target wasm32-wasip2
Test a local build with zed: install dev extension and point Zed at zed-extension/.
Open Zed on a folder while testing — context servers are project-scoped, so with no project
open (or one whose worktree fails to open) the server never starts and the panel sits on
"Connecting Server..." until Zed's 60s timeout.
To publish or update it, open a PR againstzed-industries/extensions that adds this repo
as a submodule under extensions/mcp-server-upstash and an entry in extensions.toml:
[mcp-server-upstash]
submodule = "extensions/mcp-server-upstash"
path = "zed-extension"
version = "0.1.0"
The version there has to match version in zed-extension/extension.toml, so bump both
together. zed-extension/LICENSE is a symlink to the repo's MIT license — Zed requires a
license at the extension path, not just at the repo root, and rejects the PR in CI without one.
Zed plans to deprecate MCP server extensions
in favor of the official MCP registry. If that lands, publishing@upstash/mcp-serverto
registry.modelcontextprotocol.io replaces this
extension.
Scripts
| Script | Command | Description |
|---|---|---|
build |
npm run build |
Regenerates skills/upstash/ from all individual skills. |
check |
npm run check |
Runs the build, then fails if there is a git diff — used in CI to ensure the generated output is committed. |
CI
The GitHub Actions workflow (.github/workflows/check.yml) runs npm run check on every push and PR. If you forget to run npm run build before pushing, CI will fail.
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 skills」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:upstash/skills Headless(CLI)profile:
dsh plugin --profile headless add github:upstash/skills 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。
使用场景
扩展 agent 的编码能力面——给它一个新工具、工作流或集成,让它接手以前做不了的开发任务。
适合谁
想让 dsh 在真实代码库上像队友一样干活的开发者——能改、能跑、能验证,而不只是回答问题。
二次开发建议
工具/命令面就是缝:暴露更多 SDK 能力、加更聪明的上下文接线,或收紧改代码与验证之间的循环。