> ## Documentation Index
> Fetch the complete documentation index at: https://upstash-dx-2996-docs-remote-mcp.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Serverless data and messaging for developers: Redis, Vector, QStash, Workflow, Search, and Box, with SDKs, integrations, and a full-featured console.

export const Community = () => {
  const links = [{
    name: "Discord",
    desc: "Ask questions and meet other developers.",
    href: "https://upstash.com/discord"
  }, {
    name: "Blog",
    desc: "Read product news and engineering stories.",
    href: "https://upstash.com/blog"
  }, {
    name: "X / Twitter",
    desc: "Follow the latest Upstash updates.",
    href: "https://x.com/upstash"
  }];
  return <div className="u-grid u-grid--fixed3">
      {links.map(link => <a key={link.href} href={link.href} className="u-card u-community">
          <div className="u-card__body">
            <div className="u-card__title">{link.name}</div>
            <div className="u-card__desc">{link.desc}</div>
          </div>
        </a>)}
    </div>;
};

export const UtilityGrid = () => {
  const tools = [{
    name: "Rate Limit",
    desc: "Protect your APIs from abuse.",
    href: "/redis/sdks/ratelimit-ts/overview"
  }, {
    name: "Realtime",
    desc: "The easiest way to add realtime.",
    href: "/realtime/overall/quickstart"
  }, {
    name: "AI Tracking",
    desc: "AI agent traffic analytics for Next.js.",
    href: "https://github.com/upstash/agent-analytics"
  }];
  return <div className="u-grid u-grid--fixed2">
      {tools.map(tool => <a key={tool.href} href={tool.href} className="u-card u-tool">
          <div className="u-card__body">
            <div className="u-card__title">{tool.name}</div>
            <div className="u-card__desc">{tool.desc}</div>
          </div>
        </a>)}
    </div>;
};

export const ProductGrid = () => {
  const products = [{
    name: "Redis",
    desc: "Serverless Redis with per-request or fixed pricing.",
    href: "/redis/overall/getstarted",
    icon: "redis"
  }, {
    name: "QStash",
    desc: "Message queue and scheduler over HTTP.",
    href: "/qstash/overall/getstarted",
    icon: "qstash"
  }, {
    name: "Workflow",
    desc: "Durable serverless functions.",
    href: "/workflow/getstarted",
    icon: "workflow"
  }, {
    name: "Box",
    desc: "Secure sandboxes for AI agents and code.",
    href: "/box/overall/quickstart",
    icon: "box"
  }, {
    name: "Vector",
    desc: "Vector database for AI and LLM apps.",
    href: "/vector/overall/getstarted",
    icon: "vector"
  }, {
    name: "Search",
    desc: "Full-text and semantic search.",
    href: "/search/overall/getstarted",
    icon: "search"
  }];
  return <div className="u-grid u-grid--fixed2">
      {products.map(product => <a key={product.href} href={product.href} className="u-card u-product">
          <img className="u-card__icon" src={`img/icons/${product.icon}.svg`} alt="" />
          <div className="u-card__body">
            <div className="u-card__title">{product.name}</div>
            <div className="u-card__desc">{product.desc}</div>
          </div>
        </a>)}
    </div>;
};

export const SectionHead = ({title, sub, divider = false}) => <div className={`u-section${divider ? " u-section--divider" : ""}`}>
    <h2>{title}</h2>
    {sub ? <p className="u-sub">{sub}</p> : null}
  </div>;

export const PromptToolIcons = () => <span className="u-prompt-tools" aria-hidden="true">
    <span className="u-prompt-tool">
      <svg viewBox="0 0 24 24" fill="currentColor">
        <path d="M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z" />
      </svg>
    </span>
    <span className="u-prompt-tool">
      <svg viewBox="0 0 24 24" fill="currentColor">
        <path d="M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.797.797 0 00-.856 0l-5.97 3.473zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.433.433 0 01.476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142c-.167-.095-.239-.238-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737v6.898zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33L12 15.128zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303l-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.482 4.482 0 014.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.432.432 0 01-.476 0zm-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71c.286.167.571.167.856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523zm5.899 2.83a5.947 5.947 0 005.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947-.642 0-1.26.095-1.88.31A5.962 5.962 0 0010.205 0a5.947 5.947 0 00-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 004.162 1.713z" />
      </svg>
    </span>
    <span className="u-prompt-tool">
      <svg viewBox="0 0 24 24" fill="currentColor">
        <path d="M22.106 5.68L12.5.135a.998.998 0 00-.998 0L1.893 5.68a.84.84 0 00-.419.726v11.186c0 .3.16.577.42.727l9.607 5.547a.999.999 0 00.998 0l9.608-5.547a.84.84 0 00.42-.727V6.407a.84.84 0 00-.42-.726zm-.603 1.176L12.228 22.92c-.063.108-.228.064-.228-.061V12.34a.59.59 0 00-.295-.51l-9.11-5.26c-.107-.062-.063-.228.062-.228h18.55c.264 0 .428.286.296.514z" />
      </svg>
    </span>
  </span>;

export const Hero = ({children}) => <div className="u-hero">
    <h1>Build with Upstash</h1>
    <p>
      Serverless data, messaging, and AI infrastructure for developers. Scale to
      zero, pay per request.
    </p>
    <div className="u-actions">
      <a className="u-action u-action--primary" href="/agent-resources/mcp">
        Agent Setup
      </a>
      {children}
    </div>
  </div>;

<div className="u-wrap">
  <Hero>
    <div className="u-prompt-action">
      <PromptToolIcons />

      <Prompt actions={["copy"]}>
        Set up Upstash in my coding agent using the official Upstash instructions, and run the commands yourself instead of asking me to. If you are Claude Code, install the Upstash plugin — it bundles the Upstash skills ([https://upstash.com/docs/agent-resources/skills](https://upstash.com/docs/agent-resources/skills)) and the remote MCP server over OAuth — by running `claude plugin marketplace add upstash/skills` then `claude plugin install upstash@upstash`, and tell me to run `/reload-plugins`. If you are OpenAI Codex, install the same plugin with `codex plugin marketplace add upstash/skills` then `codex plugin add upstash@upstash`. For any other agent, install the skills with `npx -y skills add upstash/skills --global`, then add the remote MCP server [https://mcp.upstash.com/mcp](https://mcp.upstash.com/mcp) to your MCP config (it authenticates over OAuth on first use); see [https://upstash.com/docs/agent-resources/clients](https://upstash.com/docs/agent-resources/clients) for the exact location. When done, verify the skills and MCP server are installed and tell me whether a restart is needed.
      </Prompt>
    </div>
  </Hero>

  <SectionHead divider title="Pick a product and start building" sub={<>See <a href="https://upstash.com/pricing">pricing</a> for each product's plans, billing, and limits.</>} />

  <ProductGrid />

  <SectionHead title="Developer utility tools" sub="Useful tools to build with or alongside our core products." />

  <UtilityGrid />

  <SectionHead divider title="Connect with Upstash" sub="Join the community, read our blog, and follow us." />

  <Community />
</div>
