Skip to main content
Glama

Cove

Live: covetechnologies.vercel.app · Source: github.com/chiku524/cove

Cove is an AI support-bot service you can drop into a product. Create a bot, teach it your docs, then call it from a REST API, a TypeScript SDK, or MCP.

It ships with a working dashboard, a seeded Northstar Help demo, and a retrieval engine so chat works without an LLM key. Set AI_GATEWAY_API_KEY or OPENAI_API_KEY if you want model-generated replies over the same articles.

Accounts, durable storage, and billing are included so you can list Cove on developer directories and sell Pro through Stripe Checkout.

Run locally

npm install
cp .env.example .env.local
# fill DATABASE_URL, BETTER_AUTH_SECRET, and Stripe keys
npx dotenv -e .env.local -- drizzle-kit push
npm run db:seed
npm run dev

Open http://127.0.0.1:43127. Production is on Vercel at https://covetechnologies.vercel.app. Pushes to main on GitHub deploy automatically.

  • / — live demo against the seeded Northstar bot

  • /sign-up — create an account (email + password)

  • /dashboard — your bots, knowledge, and integration snippets

  • /dashboard/billing — Free vs Pro, Stripe Checkout and Customer Portal

  • /docs — API, SDK, MCP, and embed notes

Related MCP server: MCP Knowledge Base Server

Auth, storage, and billing

These are the pieces a marketplace checkout path needs:

Piece

What Cove uses

Auth

Better Auth, email and password, session cookies

Durable storage

Neon Postgres via Drizzle (bots, articles, conversations, usage)

Billing

Stripe Checkout subscriptions + Customer Portal + webhooks

Free: 1 bot, 8 articles, 200 chats / month.
Pro: $19 / month, 25 bots, 500 articles, 20,000 chats / month.

Bot CRUD is scoped to the signed-in user. Chat, search, and MCP stay API-key authenticated so widgets and agents do not need a Cove login.

The public Northstar demo is seeded into Postgres (bot_northstar, key cove_live_demo_northstar) and is not part of anyone’s plan limits.

Customers pay in the dashboard under Billing → Upgrade to Pro. That opens Stripe Checkout for the $19/month Cove Pro subscription. After they subscribe, Manage subscription opens the Customer Portal.

Production Checkout on covetechnologies.vercel.app uses the live Stripe account. A successful Pro upgrade is a real $19 charge. Local and preview deploys still use test keys (4242 4242 4242 4242).

If you will charge US or EU customers, enable Stripe Tax and add a registration before turning on automatic tax. Stripe collects no tax until a registration is active. See Collect taxes for recurring payments.

Integrate

Every bot has an API key (cove_live_...). Chat and MCP require it.

REST

curl -s http://127.0.0.1:43127/api/v1/chat \
  -H "Authorization: Bearer cove_live_..." \
  -H "Content-Type: application/json" \
  -d '{"message":"How do I reset my password?"}'

Useful routes:

Method

Path

Auth

Purpose

POST

/api/v1/chat

bot key

Answer a question

POST

/api/v1/search

bot key

Search articles

GET

/api/v1/conversations/:id

bot key

Replay a thread

GET

/api/v1/widget

bot key

Bot name, welcome, suggested questions

GET

/api/v1/articles

bot key

Article titles and tags

GET/POST

/api/v1/bots

session

List / create your bots

POST

/api/mcp

bot key

MCP JSON-RPC

POST

/api/stripe/checkout

session

Start Pro Checkout

POST

/api/stripe/webhook

Stripe signature

Apply subscription status

TypeScript SDK

Copy sdk/index.ts into your app:

import { Cove } from "./sdk";

const cove = new Cove({
  apiKey: process.env.COVE_API_KEY!,
  baseUrl: "http://127.0.0.1:43127",
});

const { reply, citations, suggestions } = await cove.chat({
  message: "How do I invite a teammate?",
});

MCP

Stdio server for Cursor and other clients:

COVE_URL=http://127.0.0.1:43127 \
COVE_API_KEY=cove_live_... \
npm run mcp
{
  "mcpServers": {
    "cove": {
      "command": "node",
      "args": ["mcp/server.mjs"],
      "env": {
        "COVE_URL": "http://127.0.0.1:43127",
        "COVE_API_KEY": "cove_live_..."
      }
    }
  }
}

HTTP JSON-RPC lives at /api/mcp. Tools: cove_ask, cove_search, cove_list_articles.

Embed

<script
  src="http://127.0.0.1:43127/embed.js"
  data-api-key="cove_live_..."
  data-base-url="http://127.0.0.1:43127"
  data-position="right"
></script>

The widget uses the bot’s own welcome message and name (not the Northstar demo), shows citations and suggested follow-ups, and goes full-screen on small viewports. Optional: data-title, data-accent.

Optional LLM

Without a model key, Cove retrieves articles and composes a cited answer. With AI_GATEWAY_API_KEY or OPENAI_API_KEY, it still retrieves first, then asks the model to answer only from those articles.

Related MCP Connectors

Related MCP Servers