Skip to content

Chub vs Context7

TL;DR

They solve different problems. Run both.

Context7Chub
Best atPublic library docs, always freshTeam knowledge, private docs
Public library docsAuto-crawled, always current1,553+ curated entries
Private/internal docsNoYes (build + serve)
Team annotationsNoYes (git-tracked, 3 tiers)
Version pinningNoYes (with reasons, freshness checks)
Project contextNoYes (.chub/context/)
Agent config syncNoYes (10 targets)
Self-hostedNo (SaaS only)Yes
OfflineNoYes

What Context7 does well

Context7 is a SaaS documentation platform backed by Upstash. It crawls public library repos and package registries continuously, so docs are always current. Its MCP server exposes two tools — resolve-library-id and query-docs — and uses LLM-powered ranking to return the most relevant snippets.

It wins at: "What does the Stripe API do?" — any public library, any version, always up to date.

It cannot: serve private docs, store team knowledge, run offline, or be self-hosted.

What Chub does

Chub is the team context layer for AI agents. Its core thesis is that the most valuable context for a coding agent is not what the Stripe docs say — it's what your team knows about Stripe:

  • The webhook endpoint requires raw body parsing — don't use express.json() before it.
  • You're locked to Next.js 15.0.0 until the app-router migration is complete.
  • The internal auth service expects JWTs signed with RS256, not HS256.

None of that is on the public internet. Context7 cannot provide it. Chub can.

The right mental model

Context7  →  "What does the Stripe API do?"     (public, crawled, always fresh)
Chub      →  "How does our team use Stripe?"     (private, annotated, version-pinned)

They are complementary. Register both MCP servers and the agent uses whichever fits the query.

Running both

json
{
  "mcpServers": {
    "chub": { "command": "chub", "args": ["mcp"] },
    "context7": { "command": "npx", "args": ["-y", "@upstash/context7-mcp"] }
  }
}
json
{
  "mcpServers": {
    "chub": { "command": "chub", "args": ["mcp"] },
    "context7": { "command": "npx", "args": ["-y", "@upstash/context7-mcp"] }
  }
}

The agent calls chub_get for your internal API docs, pinned versions, and team annotations. It calls resolve-library-id / query-docs for up-to-date public library reference.

What Chub deliberately does not do

Chub does not crawl upstream library repos. It cannot compete with Context7 on public library freshness, and it does not try to. The curated registry (1,553+ entries) covers the most common libraries at known-good versions — sufficient for most needs, and supplemented by Context7 when currency matters.

If you need always-fresh public docs: use Context7. If you need your team's knowledge in the agent's context: use Chub. If you want both: run both MCP servers side by side.