upstash CLI reference your agent loads on demand) and the MCP server (live tools for your account).
Every section sets up the remote MCP server (https://mcp.upstash.com/mcp), which needs no credentials up front — it authenticates over OAuth on first use, and the Upstash plugin for Claude Code, Claude Desktop, and Codex bundles it, so installing the plugin also connects the MCP.
The local (stdio) server is the alternative, folded into each section. It needs your account email and a Developer API key (readonly keys work; the server then disables every mutating tool), and it is the only one that carries Upstash Box tools — the remote server covers Redis, QStash, Workflow, Vector, and Search. The skills need no credentials either way. See the MCP server page for remote vs. local, authentication, and feature options.
Claude Code
Theupstash/skills repo is a Claude Code plugin marketplace. From inside Claude Code:
/mcp → Authenticate.
Local (stdio) server instead
Local (stdio) server instead
Claude Desktop
Claude Desktop reads the sameupstash/skills plugin marketplace as Claude Code, and the plugin bundles the skills and the remote MCP server (over OAuth) together.
Go to Customize → Plugins, click Add → Add marketplace, choose Add from a repository, and give it upstash/skills. Install the upstash plugin from that marketplace, then approve the consent screen on the first tool call.
Cursor
Install the skills with the Agent Skills CLI:upstash entry into .cursor/mcp.json in your repo to scope it to one project instead. Or add it to ~/.cursor/mcp.json by hand — Cursor runs the OAuth flow on the first tool call:
Local (stdio) server instead
Local (stdio) server instead
OpenAI Codex
The repo is also a Codex plugin. Install it with the Codex CLI:~/.codex/config.toml (or .codex/config.toml):
Local (stdio) server instead
Local (stdio) server instead
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:
skill tool, so only the sub-skill relevant to the task is loaded.
For the MCP server, add this to ~/.config/opencode/opencode.json or a project-level opencode.json. See the OpenCode MCP docs for more info.
Local (stdio) server instead
Local (stdio) server instead
Zed
Zed loads Agent Skills from.agents/skills/ in a project and ~/.agents/skills/ globally:
/upstash. Zed’s extension marketplace has no channel for skills, so the CLI is the only way to install them.
For the MCP server, go to Settings → AI → MCP Servers, click Add Server → Add Remote Server, or put this in settings.json. With no Authorization header configured, Zed runs the standard MCP OAuth flow:
Local (stdio) server instead
Local (stdio) server instead
zed-extension/. Clone the repo, run zed: install dev extension from the command palette, and pick the zed-extension/ directory. Zed then prompts for upstash_email and upstash_api_key (and an optional upstash_box_api_key for Upstash Box tools).GitHub Copilot
Install the skills for Copilot in VS Code with the Agent Skills CLI:.vscode/mcp.json. See the VS Code MCP docs for more info.
Local (stdio) server instead
Local (stdio) server instead
Devin Desktop
Devin Desktop is the new name for Windsurf. It keeps the same skill target and settings. Install the skills with the Agent Skills CLI:~/.codeium/windsurf/mcp_config.json. See the Devin Desktop migration notes for more info.
Local (stdio) server instead
Local (stdio) server instead
Gemini CLI
Install the skills with the Agent Skills CLI:~/.gemini/settings.json and add Upstash to mcpServers by hand. See the Gemini CLI configuration docs for details.
Local (stdio) server instead
Local (stdio) server instead
Google Antigravity
Install the skills with the Agent Skills CLI:Local (stdio) server instead
Local (stdio) server instead
DeepSeek Harness
The repo is a DeepSeek Harness bundle. Requirespnpm on your PATH.
npx -y @upstash/mcp-server@latest), the one client here that does not use the remote server. It only starts once your credentials are stored. Run this from inside a session:
~/.dsh/.credentials.yaml and the server starts as soon as both are set, and restarts whenever they change.
Grok
Install the skills for Grok Build with the Agent Skills CLI. They land in.grok/skills/ (project) or ~/.grok/skills/ (global):
--scope project to write it to .grok/config.toml in the current directory instead of your user config.
~/.grok/config.toml by hand. Grok opens the OAuth flow on first use and stores the tokens in ~/.grok/mcp_credentials.json. See the Grok Build MCP docs for more info.
Local (stdio) server instead
Local (stdio) server instead
grok mcp doctor upstash to check the connection.
Kilo Code
~/.config/kilo/kilo.jsonc (global) or kilo.jsonc in the project root:
Local (stdio) server instead
Local (stdio) server instead
Copilot CLI
~/.copilot/mcp-config.json by hand:
Local (stdio) server instead
Local (stdio) server instead
Warp
Local (stdio) server instead
Local (stdio) server instead
Qwen Code
~/.qwen/settings.json or .qwen/settings.json by hand:
Local (stdio) server instead
Local (stdio) server instead
Hermes
~/.hermes/config.yaml:
Local (stdio) server instead
Local (stdio) server instead
Factory
Local (stdio) server instead
Local (stdio) server instead
fx
fx installs skills straight from a GitHub repo. From inside a session:~/.fx/mcp.json by hand. See the fx MCP docs for more info.
Local (stdio) server instead
Local (stdio) server instead
Crush
Local (stdio) server instead
Local (stdio) server instead
Any other agent
The Agent Skills CLI supports 70+ agents and detects the ones on your machine:--global (-g) to make the skills available in every project, --agent (-a) to target a specific agent, and --skill (-s) to install a single SDK skill (for example --skill upstash-qstash-js).
For the MCP server, most clients take the standard mcpServers shape below. Check your client’s documentation for where the config lives, then add:
"type": "http" for most, "type": "streamable-http" for Roo Code, "type": "remote" for OpenCode and Kilo Code. An unrecognized key is usually ignored, so when in doubt start with the plain url above.
Local (stdio) server instead
Local (stdio) server instead
id: