Skip to content

Unofficial TypeScript toolkit for H-E-B.

  • Typed client: Requests, models, and response helpers.
  • Sessions: Cookie and token handling utilities.
  • MCP server: Tooling for AI assistants and agents.
  • Auth flow: OAuth + PKCE helpers with examples.
  • Commerce focus: Catalog, cart, orders, and slots.
  • Extensible: Drop in new endpoints and middleware.

pnpm

yarn

bun

deno

Unofficial TypeScript monorepo for integrating with H‑E‑B grocery experiences. It combines a full client SDK, an MCP server for AI assistants, OAuth helpers, and a cookie‑bridge browser extension.

Packages

heb-sdk-unofficial

TypeScript SDK that wraps H‑E‑B web + mobile endpoints with typed models, formatters, and session helpers.

heb-auth-unofficial

PKCE + OAuth utilities used to link H‑E‑B mobile bearer tokens.

heb-mcp-unofficial

MCP server exposing H‑E‑B tools over MCP (remote streamable HTTP + OAuth/Clerk, or local STDIO).

cookie-bridge

Chrome/Firefox extension that syncs authenticated H‑E‑B cookies to the MCP server.

Capabilities

Direct access to the H‑E‑B catalog, cart, and account features:

  • Product search, typeahead, and detail retrieval.
  • Cart operations (add/update/remove) and summaries.
  • Order history + detailed order status.
  • Shopping lists and “Buy It Again” items.
  • Store search + session context management.
  • Slot discovery for delivery and curbside reservation.
  • Weekly ads with category filters.
  • Homepage feeds, banners, and promotions.

How it fits together

  • The cookie‑bridge extension captures authenticated H‑E‑B cookies from a logged‑in browser.
  • heb-mcp-unofficial stores sessions and exposes MCP tools backed by heb-sdk-unofficial.
  • heb-auth-unofficial provides OAuth/PKCE helpers for linking mobile bearer tokens when needed.

Example

import { createTokenSession, HEBClient } from "heb-sdk-unofficial"
const session = createTokenSession({
accessToken: process.env.HEB_ACCESS_TOKEN ?? ""
})
const heb = new HEBClient(session)
const results = await heb.search("milk", { limit: 10 })
console.log(results.products.map(p => p.name))

Ready to build? Start with the Quickstart.