# Install by agent

> Step-by-step setup of the Upstash Skills and MCP server for every supported coding agent.

Each section below covers everything for one agent: the [Upstash Skills](/agent-resources/skills) (docs and the `upstash` [CLI](/agent-resources/cli) reference your agent loads on demand) and the [MCP server](/agent-resources/mcp) (live tools for your account).

The MCP server needs your account email and an API key from [Upstash Console → Account → API Keys](https://console.upstash.com/account/api). Readonly keys work; the server then disables every tool that would change state. The skills need no credentials.

## Claude Code

The [`upstash/skills`](https://github.com/upstash/skills) repo is a Claude Code plugin marketplace. From inside Claude Code:

```
/plugin marketplace add upstash/skills
/plugin install upstash@upstash
```

The plugin only carries the skills. Add the MCP server separately:

```sh
claude mcp add --transport stdio upstash -- npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY
```

See the [Claude Code plugin docs](https://code.claude.com/docs/en/plugins) and [MCP docs](https://docs.anthropic.com/en/docs/claude-code/mcp) for more info.

## Claude Desktop

Both Claude Desktop and claude.ai accept [custom skills](https://support.claude.com/en/articles/12512180-using-skills-in-claude) as a ZIP upload. Grab the combined skill folder and zip it:

```bash
git clone --depth 1 https://github.com/upstash/skills
cd skills/skills && zip -r upstash.zip upstash
```

Then go to **Customize → Skills**, click **+ Create skill → Upload a skill**, and upload `upstash.zip`. The skill can be toggled on and off from the same list.

For the MCP server, open Claude Desktop's developer settings and edit `claude_desktop_config.json`. See the [Claude Desktop MCP docs](https://modelcontextprotocol.io/quickstart/user) for more info.

```json
{
  "mcpServers": {
    "upstash": {
      "command": "npx",
      "args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
    }
  }
}
```

## Cursor

Install the skills with the Agent Skills CLI:

```bash
npx skills add upstash/skills --agent cursor
```

For the MCP server, use the one-click install:

[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=upstash&config=eyJjb21tYW5kIjoibnB4IC15IEB1cHN0YXNoL21jcC1zZXJ2ZXJAbGF0ZXN0IC0tZW1haWwgWU9VUl9FTUFJTCAtLWFwaS1rZXkgWU9VUl9BUElfS0VZIn0%3D)

Or go to `Settings` → `Cursor Settings` → `MCP` → `Add new global MCP server`, or edit `~/.cursor/mcp.json` directly. Create `.cursor/mcp.json` in your repo to scope it to a project instead.

```json
{
  "mcpServers": {
    "upstash": {
      "command": "npx",
      "args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
    }
  }
}
```

## OpenAI Codex

The repo is also a Codex plugin. Install it with the Codex CLI:

```bash
codex plugin marketplace add upstash/skills
codex plugin add upstash@upstash
```

Add the MCP server with the CLI as well:

```sh
codex mcp add upstash -- npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY
```

Or add it to `~/.codex/config.toml` (or a project-level `.codex/config.toml`) by hand:

```toml
[mcp_servers.upstash]
command = "npx"
args = ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
startup_timeout_sec = 20
```

<Note>
  If you see startup timeout errors, increase `startup_timeout_sec` to `40`.
</Note>

See the [Codex plugin docs](https://developers.openai.com/codex/plugins/build) and [MCP docs](https://developers.openai.com/codex/mcp) for more info.

## OpenCode

OpenCode loads [Agent Skills](https://opencode.ai/docs/skills) from `.agents/skills/` in a project and `~/.config/opencode/skills/` globally, which is where the Agent Skills CLI writes them:

```bash
# 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 through its native `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](https://opencode.ai/docs/mcp-servers) for more info.

```json
{
  "$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

Zed loads [Agent Skills](https://zed.dev/docs/ai/skills) from `.agents/skills/` in a project and `~/.agents/skills/` globally:

```bash
# 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 show up in Zed's Agent Panel, and the agent can load them on its own or via `/upstash`. Zed's extension marketplace has no channel for skills, so the CLI is the only way to install them.

For the MCP server, the repo ships a Zed extension in [`zed-extension/`](https://github.com/upstash/skills/tree/main/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](/box/overall/quickstart) tools).

To skip the extension, add the server to your Zed settings by hand (`zed: open settings file`). See the [Zed MCP docs](https://zed.dev/docs/ai/mcp) for more info.

```json
{
  "context_servers": {
    "upstash": {
      "command": "npx",
      "args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
    }
  }
}
```

<Note>
  Context servers are project-scoped in Zed. Open a folder before testing, otherwise the server never starts.
</Note>

## GitHub Copilot

Install the skills for Copilot in VS Code with the Agent Skills CLI:

```bash
npx skills add upstash/skills --agent github-copilot
```

For the MCP server, use the one-click install:

[<img alt="Install in VS Code (npx)" src="https://img.shields.io/badge/Install%20in%20VS%20Code-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white" />](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%7B%22name%22%3A%22upstash-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40upstash%2Fmcp-server%40latest%22%5D%7D)

Or add this to `.vscode/mcp.json`, or paste it into the `mcp.servers` user setting. See the [VS Code MCP docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for more info.

```json
{
  "servers": {
    "upstash": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
    }
  }
}
```

## Windsurf

Install the skills with the Agent Skills CLI:

```bash
npx skills add upstash/skills --agent windsurf
```

For the MCP server, add this to `~/.codeium/windsurf/mcp_config.json`. See the [Windsurf MCP docs](https://docs.windsurf.com/windsurf/cascade/mcp) for more info.

```json
{
  "mcpServers": {
    "upstash": {
      "command": "npx",
      "args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
    }
  }
}
```

## Gemini CLI

Install the skills with the Agent Skills CLI:

```bash
npx skills add upstash/skills --agent gemini-cli
```

For the MCP server, open `~/.gemini/settings.json` and add Upstash to `mcpServers`. See the [Gemini CLI configuration docs](https://google-gemini.github.io/gemini-cli/docs/tools/mcp-server.html) for details.

```json
{
  "mcpServers": {
    "upstash": {
      "command": "npx",
      "args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
    }
  }
}
```

## Google Antigravity

Install the skills with the Agent Skills CLI:

```bash
npx skills add upstash/skills --agent antigravity
```

For the MCP server, add this to your Antigravity MCP config. See the [Antigravity MCP docs](https://antigravity.google/docs/mcp) for more info.

```json
{
  "mcpServers": {
    "upstash": {
      "command": "npx",
      "args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
    }
  }
}
```

## DeepSeek Harness

The repo is a DeepSeek Harness bundle. Requires `pnpm` on your `PATH`.

```bash
# Install into a profile (`web` is the one `dsh web` boots)
dsh plugin --profile web add github:upstash/skills

# Start the harness
dsh web
```

Installing the bundle mounts the skills as a skill provider right away; no further setup is needed for them.

The same bundle also mounts the MCP server (`npx -y @upstash/mcp-server@latest` over stdio), but it only starts once your credentials are stored. Run this from inside a session:

```
/upstash-login YOUR_EMAIL YOUR_API_KEY
```

Credentials are saved to `~/.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](https://docs.x.ai/build/overview) with the Agent Skills CLI. They land in `.grok/skills/` (project) or `~/.grok/skills/` (global):

```bash
npx skills add upstash/skills --agent grok
```

<Note>
  Grok Build also reads Claude Code marketplaces and plugins automatically, so if you already installed the [Claude Code plugin](#claude-code), the skills are available without any extra setup.
</Note>

Add the MCP server with the Grok CLI. Pass `--scope project` to write it to `.grok/config.toml` in the current directory instead of your user config.

```bash
grok mcp add upstash -- npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY
```

Or add it to `~/.grok/config.toml` by hand. See the [Grok Build MCP docs](https://docs.x.ai/build/features/mcp-servers) for more info.

```toml
[mcp_servers.upstash]
command = "npx"
args = ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
```

Run `grok mcp doctor upstash` to check the connection.

## Kilo Code

```bash
npx skills add upstash/skills --agent kilo
```

Add this to `~/.config/kilo/kilo.jsonc` (global) or `kilo.jsonc` in the project root:

```json
{
  "mcp": {
    "upstash": {
      "type": "local",
      "command": ["npx", "-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"],
      "enabled": true
    }
  }
}
```

## Copilot CLI

```bash
npx skills add upstash/skills --agent github-copilot
```

Add this to `~/.copilot/mcp-config.json`:

```json
{
  "mcpServers": {
    "upstash": {
      "type": "local",
      "command": "npx",
      "args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
    }
  }
}
```

## Warp

```bash
npx skills add upstash/skills --agent warp
```

Go to **Settings → Agents → MCP servers → + Add** and paste:

```json
{
  "upstash": {
    "command": "npx",
    "args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"],
    "env": {},
    "working_directory": null,
    "start_on_launch": true
  }
}
```

## Qwen Code

```bash
npx skills add upstash/skills --agent qwen-code
```

```bash
qwen mcp add upstash -- npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY
```

Or add the standard `mcpServers` entry above to `~/.qwen/settings.json` or `.qwen/settings.json`.

## Hermes

```bash
npx skills add upstash/skills --agent hermes-agent
```

Add this to `~/.hermes/config.yaml`:

```yaml
mcp_servers:
  upstash:
    command: "npx"
    args: ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
```

## Factory

```bash
npx skills add upstash/skills --agent droid
```

```bash
droid mcp add upstash "npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY"
```

## fx

fx installs skills straight from a GitHub repo. From inside a session:

```
/skills install upstash/skills --skill upstash
```

Add the MCP server the same way:

```
/mcp add upstash npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY
```

Or add it to `~/.fx/mcp.json` by hand. See the [fx MCP docs](https://fx.sh/docs/capabilities/mcp#add-a-local-stdio-server) for more info.

```json
{
  "mcp": {
    "upstash": {
      "type": "stdio",
      "command": ["npx", "-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
    }
  }
}
```

## Crush

```bash
npx skills add upstash/skills --agent crush
```

Add this to your Crush config file:

```json
{
  "$schema": "https://charm.land/crush.json",
  "mcp": {
    "upstash": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
    }
  }
}
```

## Any other agent

The [Agent Skills CLI](https://github.com/vercel-labs/skills) supports 70+ agents and detects the ones on your machine:

```bash
npx skills add upstash/skills
```

Add `--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:

```json
{
  "mcpServers": {
    "upstash": {
      "command": "npx",
      "args": ["-y", "@upstash/mcp-server@latest", "--email", "YOUR_EMAIL", "--api-key", "YOUR_API_KEY"]
    }
  }
}
```

Some of the clients that use it, with their Agent Skills CLI `id`:

| Client | Skills `id` | MCP server |
|--------|-------------|------------|
| Kiro | `kiro-cli` | `.kiro/settings/mcp.json`, or **Kiro → MCP Servers → + Add** |
| Cline | `cline` | **MCP Servers → Remote Servers → Edit Configuration** |
| Roo Code | `roo` | MCP settings file (`mcp_settings.json`) |
| Trae | `trae` | **MCP → Add manually** |
| Augment Code | `augment` | **Settings → MCP → +**, command `npx -y @upstash/mcp-server@latest --email YOUR_EMAIL --api-key YOUR_API_KEY` |
| Devin Desktop | `devin` | MCP config file |
| Zencoder | `zencoder` | **Agent tools → Add custom MCP**, paste the `upstash` entry |
| Rovo Dev CLI | `rovodev` | `acli rovodev mcp` opens the config file |
