Skip to content

Add upstash setup to connect AI agents to Upstash - #23

Open
CahidArda wants to merge 2 commits into
mainfrom
setup-command
Open

CahidArda wants to merge 2 commits into
mainfrom
setup-command

Conversation

@CahidArda

Copy link
Copy Markdown
Collaborator

Upstash's answer to npx ctx7 setup: one command that wires the Upstash MCP server and skills into the user's agents.

npx @upstash/cli setup

What it installs

Agent Method
Claude Code claude plugin marketplace add upstash/skills + claude plugin install upstash@upstash (user or project scope)
Codex codex plugin marketplace add upstash/skills + codex plugin add upstash@upstash
Gemini CLI gemini extensions install https://github.com/upstash/skills --consent
Cursor Local plugin in ~/.cursor/plugins/local/upstash (no plugin CLI, and not in the Cursor marketplace yet)
VS Code, Copilot CLI, OpenCode Remote MCP (https://mcp.upstash.com/mcp) merged into the agent's config + the combined upstash skill

Plugin agents fall back to MCP + skill when the plugin can't be installed (CLI not on PATH, install error), --project is used for a user-only plugin, or --auth api-key is set (the plugins are OAuth-only). Reruns refresh the marketplace and update the plugin.

Flags

--claude --codex --cursor --gemini --vscode --copilot --opencode, --mode auto|plugin|mcp, --auth oauth|api-key (api-key uses the existing resolveAuth: flags, env, or upstash login; header is Authorization: Bearer email:key), -p/--project, -y/--yes, --ref, --dry-run, --json. With no agent flags it prompts (TTY) or uses detected agents (non-TTY / -y).

Differences from ctx7 setup

  • ctx7 never installs plugins; this does, since upstash/skills already ships Claude/Codex/Cursor/Gemini manifests that bundle the MCP.
  • No rules files — the combined skill already tells the agent when to prefer MCP tools.
  • No new dependencies (the CLI only has commander + dotenv). Skills come from one codeload.github.com tarball download, parsed with a ~60-line tar reader; no GitHub API rate limits.
  • Warns when a manual upstash MCP entry and the plugin would both load the server.

Tested

  • 15 unit tests (tests/unit/setup.test.ts): synthetic tarball, fake agent-CLI runner, temp HOME.
  • End-to-end in a sandbox with the real claude 2.1.263 and codex 0.153.4 CLIs: plugin installs are idempotent and show up in claude plugin list / ~/.codex/config.toml; TOML and JSON merges keep other servers; project scope writes .claude/settings.json with the plugin enabled.
  • Not tested: Gemini CLI install (not in the sandbox) and Cursor actually loading the local plugin — worth a manual check on a Mac before merging.

Follow-ups

  • Switch Cursor to the marketplace install once the listing is accepted.
  • Document upstash setup in the upstash-cli skill and the docs "Install by agent" page.
  • upstash setup --remove, and an API-key option for plugins (e.g. a headersHelper like context7's Claude plugin).

Installs the upstash/skills plugin (MCP server + skills) through each agent's
own CLI where plugins are supported (Claude Code, Codex, Gemini CLI), as a
local plugin for Cursor, and otherwise writes the remote MCP server into the
agent's config and installs the combined `upstash` skill (VS Code, Copilot
CLI, OpenCode). Falls back to MCP + skill when a plugin can't be installed.

Supports --project, --mode auto|plugin|mcp, --auth oauth|api-key, --dry-run,
--json, and agent detection. No new dependencies: skills come from the
upstash/skills tarball, parsed with a small tar reader.
@linear-code

linear-code Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

DX-3074

DX-3075

Replaces the numbered readline prompt with an arrow-key flow when run in a
terminal: pick scope, multi-select agents (detected ones pre-checked,
already-connected ones marked), pick OAuth or API key (prompting for
credentials when none are saved), confirm a plan, then a spinner per agent
with its steps. Flags still answer questions up front; -y, --json and
non-TTY runs keep the existing plain output unchanged.

@clack/prompts is pinned to ~1.0.1, the last line that runs on Node 18.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LWUubWwYWp1dZTK1S9Ek95
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants