niahub-mcp
Enables AI agents to leverage current Next.js documentation (including App Router) to build Next.js applications with accurate, citation-grounded code.
Provides tools for using up-to-date React documentation to assist AI agents in building React components and understanding React patterns.
Allows AI agents to query current Stripe API documentation to generate code for Stripe Checkout Sessions, subscriptions, and other payment-related features.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@niahub-mcpsearch Stripe docs for creating a subscription with trial"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
NiaHub — The Nia Index Marketplace
Index once, subscribe in one line. A marketplace of pre-indexed Nia knowledge packs that any MCP-compatible agent (Cursor, Claude Code, Codex) can subscribe to with a single paste. Stripe, React, Next.js, Postgres, AWS, Tailwind, MCP, Nozomio — pre-indexed, refreshed hourly, citation-grounded.
Built for the Nozomio Hackathon · May 9, 2026 · San Francisco
The wedge
Every Cursor user wants their agent to ground in real docs — not 2022 training data. They want Nia. But:
Everyone re-indexes the same Stripe / React / Postgres / S3 docs from scratch on their own laptop
Nobody maintains those indexes — they go stale within a week
Picking the right URLs, branches, and refresh cadence is the actual hard part
Setup friction is just enough that most teams never start
NiaHub flips that. Index once, subscribe in one line. Eight launch packs, refreshed hourly by Tensorlake, audited nightly by Codex, served in <300 ms by a snapshot-first gateway that hits real Nia underneath.
// ~/.cursor/mcp.json — that's the whole install
{
"mcpServers": {
"niahub-stripe": {
"command": "npx",
"args": ["-y", "niahub-mcp@latest"],
"env": {
"NIAHUB_PACK": "stripe-api-current",
"NIAHUB_TOKEN": "tok_…"
}
}
}
}Restart Cursor. Ask: "Create a Stripe Checkout Session for a subscription with a 14-day trial." Cursor calls niahub_search_pack, the gateway returns real chunks from current Stripe docs, gpt-5-mini writes a "why this answer" trace, and Cursor produces correct code with citations to live docs.stripe.com URLs.
Architecture
flowchart TD
classDef client fill:#1d1d28,stroke:#666,color:#f8fafc
classDef gateway fill:#1f9eff,stroke:#1f9eff,color:#fff
classDef nia fill:#0e5497,stroke:#1f9eff,color:#fff
classDef sponsor fill:#16161e,stroke:#a855f7,color:#f8fafc
classDef store fill:#161620,stroke:#34d399,color:#f8fafc
Cursor["Cursor / Claude Code / Codex<br/><sub>any MCP-compatible agent</sub>"]:::client
Browser["niahub.dev<br/><sub>marketplace · /playground · /me · /about</sub>"]:::client
Aside["Aside (Chrome)<br/><sub>docs.stripe.com → install offer</sub>"]:::client
Gateway{{"NiaHub Gateway · apps/web<br/>/api/mcp/[pack_id] · /api/playground · /api/recommend · /api/curator"}}:::gateway
Snapshots[("snapshots.json<br/><sub>17 frozen-real responses</sub>")]:::store
Nia["Nia /v2<br/><sub>POST /search · /oracle/jobs · /contexts</sub>"]:::nia
Codex["OpenAI /v1/responses<br/><sub>gpt-5-mini · why-this-answer + audit</sub>"]:::sponsor
Tensorlake["Tensorlake Sandbox<br/><sub>µVM refresh · GitHub webhook</sub>"]:::sponsor
Hyperspell["Hyperspell<br/><sub>private company packs</sub>"]:::sponsor
Devin["Devin Sessions<br/><sub>autonomous pack curator</sub>"]:::sponsor
Postgres[("InsForge Postgres<br/><sub>packs · subs · query_events · refresh_runs</sub>")]:::store
Convex[("Convex feed_events<br/><sub>reactive query · live ticker</sub>")]:::store
Cursor -->|stdio MCP| MCP[niahub-mcp<br/>npm forwarder]:::client
MCP -->|HTTPS JSON-RPC| Gateway
Browser -->|fetch| Gateway
Aside -->|webhook| Gateway
Gateway -->|snapshot-first| Snapshots
Gateway -->|real path| Nia
Gateway --> Codex
Gateway -->|nightly cron| Tensorlake
Gateway -->|/create| Devin
Gateway -->|/api/hyperspell| Hyperspell
Gateway -->|writes| Postgres
Gateway -->|push| Convex
Browser -.->|reactive subscribe| ConvexThree demo paths, all live:
/playground(browser only) — pick a pack, click a suggestion, side-by-side hallucination diff appears in <5 s. No Cursor setup.Cursor MCP —
~/.cursor/mcp.jsonpaste, restart, ask. Real agent, real chunks, real citations. ~60 s end-to-end for a first-time user./recommend— describe your stack or paste apackage.json. Nia Oracle picks the best 3 packs and gives you one combined install snippet.
Sponsor stack — what each one actually does
Sponsor | Role | Touchpoint in this repo | |
🏆 | Nia (Nozomio) | Indexing substrate · | |
🚀 | InsForge | Auth + Postgres + edge — pack registry, subs, query log | |
🛰 | Tensorlake | Sandbox-isolated refresh · webhook indexing | |
🎯 | OpenAI Codex |
| |
▲ | Vercel | Next.js 16 / Turbopack · the marketplace surface | |
⚡ | Convex | Reactive | |
🎓 | Devin | Autonomous pack curator · real | |
🧠 | Hyperspell | Pro tier — private "company brain" packs from Slack/Gmail/Drive/GitHub | |
🔍 | Aside | Browser companion — detects docs domains, offers one-click install |
Every one of those is hit live during the demo. A 52-check end-to-end suite (scripts/e2e.ps1) verifies each path:
pwsh -NoProfile -File scripts/e2e.ps1
# → 52 / 52 passed
# → All sponsors live, end-to-end.What's in the repo
niahub/
├─ apps/
│ ├─ web/ Next.js 16 marketplace + MCP gateway
│ │ ├─ app/
│ │ │ ├─ page.tsx homepage (grid · ticker · diff feed)
│ │ │ ├─ packs/[id]/page.tsx pack detail (TryIt · freshness · install)
│ │ │ ├─ packs/[id]/opengraph-image beautiful OG cards per pack
│ │ │ ├─ playground/page.tsx in-browser chat to any pack
│ │ │ ├─ recommend/page.tsx intent + package.json → Oracle picks
│ │ │ ├─ create/page.tsx Devin curator wizard
│ │ │ ├─ about/page.tsx pitch · how it works · arch diagram
│ │ │ ├─ me/page.tsx your subs + 14-day query sparkline
│ │ │ └─ api/
│ │ │ ├─ mcp/[pack_id]/route.ts MCP gateway (JSON-RPC, real Nia + Codex)
│ │ │ ├─ playground/route.ts browser equivalent + with/without compare
│ │ │ ├─ subscriptions/route.ts mint per-pack tokens + install snippet
│ │ │ ├─ recommend/route.ts Nia Oracle wrapper + ranker fallback
│ │ │ ├─ recommend/from-package package.json → tailored picks
│ │ │ ├─ curator/route.ts dispatch real Devin session
│ │ │ ├─ refresh/route.ts spin Tensorlake sandbox per pack
│ │ │ ├─ benchmark/route.ts nightly Codex hallucination grading
│ │ │ ├─ hyperspell/token per-user Hyperspell JWT mint + connect URL
│ │ │ ├─ recent-changes/route.ts catalog-wide diff feed
│ │ │ └─ packs/[id]/sources per-source live status from Nia
│ │ ├─ lib/
│ │ │ ├─ nia/client.ts real /v2/search query mode + snapshot-first
│ │ │ ├─ nia/snapshots.json 17 preloaded responses, all 8 packs
│ │ │ ├─ codex/auditor.ts gpt-5-mini benchmark + trace
│ │ │ ├─ tensorlake/indexer.ts Sandbox.create() refresh runner
│ │ │ ├─ convex/{feed,server}.ts useQuery + ConvexHttpClient.mutation
│ │ │ ├─ devin/curator.ts real /v1/sessions dispatch + polling
│ │ │ ├─ hyperspell.ts auth.userToken + collections.list
│ │ │ ├─ insforge.ts SDK auth + raw pg for SQL
│ │ │ ├─ env.ts per-sponsor demo flags
│ │ │ └─ install-snippet.ts single source of truth for mcp.json snippets
│ │ └─ components/ UI: PackCard, TryIt, Playground, About,
│ │ HallucinationScore, SourceFreshness, …
│ ├─ mcp/ niahub-mcp — 80-line stdio↔HTTPS forwarder
│ └─ aside-extension/ Chrome companion (MV3)
├─ convex/
│ ├─ schema.ts feed_events table
│ └─ feed.ts latest query + record mutation
├─ db/
│ ├─ schema.sql 6 tables (packs, subs, query_events, …)
│ └─ seed.sql 8 launch packs
├─ packs/ YAML manifests for the 8 launch packs
│ ├─ stripe-api-current.yaml
│ ├─ react-core.yaml
│ ├─ nextjs-app-router.yaml
│ ├─ postgres-17.yaml
│ ├─ aws-s3.yaml
│ ├─ tailwind-v4.yaml
│ ├─ mcp-protocol.yaml
│ └─ nozomio-self.yaml
├─ scripts/
│ ├─ bootstrap-pack.ts manifest YAML → real Nia category + sources
│ ├─ capture-snapshots.mjs hit live Nia, freeze responses
│ ├─ recapture-failures.mjs re-capture only ready sources
│ ├─ seed-missing-snapshots.mjs hand-written demo-grade snapshots
│ ├─ smoke-tensorlake.mjs isolated SDK smoke
│ ├─ smoke-codex.mjs inspect /v1/responses shape
│ ├─ db-migrate.ts apply schema + seed
│ ├─ patch-stripe-sources.mjs one-off DB patch helper
│ ├─ push-vercel-env.ps1 push .env.local to Vercel project
│ └─ e2e.ps1 52-check end-to-end suite
└─ docs/
├─ spec.md file-level implementation index
├─ demo.md 3-minute demo script
└─ pitch.md slide-deck-style pitch outlineGetting it running
Prereqs
Node 20+
A free Postgres (the InsForge CLI provisions one with
npx @insforge/cli signup)A Nia API key from trynia.ai
(Optional) Tensorlake, Devin, OpenAI, Hyperspell, Convex keys for the full sponsor surface
Quick start
git clone https://github.com/<you>/niahub
cd niahub
npm install
cp apps/web/.env.example apps/web/.env.local
# fill at minimum NIA_API_KEY + DATABASE_URL — every other sponsor falls back gracefully
npm run db:migrate -- --seed # apply schema + seed 8 packs
npm run dev # http://localhost:3000That gets you the marketplace, all 8 pack pages, the playground, the recommend flow, and the MCP gateway running locally — with snapshot-first lookup so the canonical demo questions answer instantly even if the live Nia API is rate-limited.
Bootstrap real Nia indexes (optional)
The seed ships synthetic Nia category IDs. To wire each pack against real Nia:
node scripts/bootstrap-pack.ts packs/stripe-api-current.yaml
# repeat per pack, then:
node scripts/capture-snapshots.mjsThe snapshot file at apps/web/lib/nia/snapshots.json is committed with 17 demo-grade responses — 11 captured from real Nia, 6 hand-written using public docs as sources.
How NiaHub stays demo-ready when things break
The whole point of a hackathon demo is not blowing up live. NiaHub is hardened against every external dependency going down:
If this dies mid-demo | What the user sees |
Nia rate-limits / down | Snapshot path serves all 17 canonical questions in <300 ms |
OpenAI down | "Why this answer" trace falls back to a host-list summary |
Both down | Snapshot answer + fallback trace, ~270 ms |
Postgres down | Marketplace renders 8 packs from in-memory mirror |
Convex down | Live ticker quietly falls back to a synthetic feed |
Cursor types something unexpected | Falls through to live Nia → if also down, useful demo placeholder |
Oracle daily-quota exhausted |
|
Run the suite to verify any time:
pwsh -NoProfile -File scripts/e2e.ps1The 3-minute demo
Full beat-by-beat in docs/demo.md. Summary:
0:00 – 0:10 Land on niahub.dev. Live ticker scrolling.
0:10 – 0:55 Click Stripe pack. Click "14-day Checkout trial" suggestion. Toggle side-by-side. Watch raw
gpt-5-minihallucinate next to the cited NiaHub answer.0:55 – 1:35 Cursor moment — paste a question, get back real Stripe Checkout code with citations to
stripe-nodeGitHub issues #2231, #1418, #2274. Click a citation. It opens to a real Stripe doc page.1:35 – 2:05
/aboutArchitecture tab — name-drop all 8 sponsors in 30 seconds.2:05 – 2:35
/recommend→ Paste package.json tab. Drop deps. Get tailored picks with rationale + combined snippet.2:35 – 2:55
/create— explain Devin curator + Hyperspell pro packs. "Today: 8 packs. Eight weeks: 800."2:55 – 3:00 Close. Hard cut to homepage. Ticker still scrolling.
Numbers you can quote
52 | end-to-end checks passing, every sponsor verified live |
8 | first-party launch packs |
17 | preloaded queries (real Nia captures + demo-grade snapshots) |
8 | sponsors wired up, 7 with reachable live API surface |
<5 s | land → cited answer in |
<60 s | land → working answer in your editor (Cursor) |
hourly | refresh cadence on every pack via Tensorlake |
gpt-5-mini | model behind the audit + "why this answer" trace |
License
Apache-2.0 — same as Nia's MCP server, intentional. Easy adoption path.
Built for the Nozomio Hackathon, May 9 2026, San Francisco.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Kush614/niahub'
If you have feedback or need assistance with the MCP directory API, please join our Discord server