niahub-mcp
NiaHub — Маркетплейс индексов Nia
Индексируй один раз, подписывайся одной строкой. Маркетплейс предварительно проиндексированных пакетов знаний Nia, на которые любой агент, совместимый с MCP (Cursor, Claude Code, Codex), может подписаться с помощью одной вставки. Stripe, React, Next.js, Postgres, AWS, Tailwind, MCP, Nozomio — предварительно проиндексированы, обновляются ежечасно, с опорой на источники.
Создано для хакатона Nozomio · 9 мая 2026 г. · Сан-Франциско
Проблема
Каждый пользователь Cursor хочет, чтобы его агент опирался на реальную документацию, а не на данные обучения 2022 года. Они хотят Nia. Но:
Каждый заново индексирует одни и те же документы Stripe / React / Postgres / S3 на своем ноутбуке
Никто не поддерживает эти индексы — они устаревают в течение недели
Выбор правильных URL, веток и частоты обновления — это самая сложная часть
Трудности при настройке достаточно велики, чтобы большинство команд даже не начинали
NiaHub меняет это. Индексируй один раз, подписывайся одной строкой. Восемь стартовых пакетов, обновляемых ежечасно с помощью Tensorlake, проверяемых каждую ночь с помощью Codex, обслуживаемых менее чем за 300 мс через шлюз, ориентированный на снимки, который обращается к реальному Nia.
// ~/.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_…"
}
}
}
}Перезапустите Cursor. Спросите: "Создай сессию Stripe Checkout для подписки с 14-дневным пробным периодом." Cursor вызывает niahub_search_pack, шлюз возвращает реальные фрагменты из текущей документации Stripe, gpt-5-mini пишет трассировку "почему этот ответ", и Cursor выдает правильный код со ссылками на актуальные URL docs.stripe.com.
Related MCP server: local-rag-core
Архитектура
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| ConvexТри демонстрационных пути, все работают в реальном времени:
/playground(только браузер) — выберите пакет, нажмите на подсказку, сравнение галлюцинаций появится менее чем за 5 секунд. Без настройки Cursor.Cursor MCP — вставьте
~/.cursor/mcp.json, перезапустите, спросите. Реальный агент, реальные фрагменты, реальные цитаты. Около 60 секунд от начала до конца для нового пользователя./recommend— опишите свой стек или вставьтеpackage.json. Nia Oracle выберет 3 лучших пакета и даст вам один комбинированный фрагмент для установки.
Стек спонсоров — что делает каждый из них
Спонсор | Роль | Точка взаимодействия в этом репозитории | |
🏆 | Nia (Nozomio) | Индексирующая подложка · | |
🚀 | InsForge | Auth + Postgres + edge — реестр пакетов, подписки, журнал запросов | |
🛰 | Tensorlake | Изолированное обновление в песочнице · индексация вебхуков | |
🎯 | OpenAI Codex | Аудит галлюцинаций | |
▲ | Vercel | Next.js 16 / Turbopack · интерфейс маркетплейса | |
⚡ | Convex | Реактивный запрос | |
🎓 | Devin | Автономный куратор пакетов · реальная отправка | |
🧠 | Hyperspell | Pro-уровень — приватные пакеты "корпоративного мозга" из Slack/Gmail/Drive/GitHub | |
🔍 | Aside | Браузерный компаньон — обнаруживает домены документации, предлагает установку в один клик |
Каждый из них используется в реальном времени во время демонстрации. Набор из 52 проверок (scripts/e2e.ps1) подтверждает каждый путь:
pwsh -NoProfile -File scripts/e2e.ps1
# → 52 / 52 passed
# → All sponsors live, end-to-end.Что в репозитории
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 outlineЗапуск
Предварительные требования
Node 20+
Бесплатная база Postgres (CLI InsForge предоставляет её через
npx @insforge/cli signup)API-ключ Nia с trynia.ai
(Опционально) Ключи Tensorlake, Devin, OpenAI, Hyperspell, Convex для полного стека спонсоров
Быстрый старт
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:3000Это даст вам маркетплейс, все 8 страниц пакетов, песочницу, поток рекомендаций и шлюз MCP, работающий локально — с поиском по снимкам, поэтому канонические демонстрационные вопросы отвечают мгновенно, даже если API Nia ограничен по частоте запросов.
Загрузка реальных индексов Nia (опционально)
Сид поставляется с синтетическими ID категорий Nia. Чтобы подключить каждый пакет к реальному Nia:
node scripts/bootstrap-pack.ts packs/stripe-api-current.yaml
# repeat per pack, then:
node scripts/capture-snapshots.mjsФайл снимка в apps/web/lib/nia/snapshots.json содержит 17 ответов демонстрационного уровня — 11 получены из реального Nia, 6 написаны вручную с использованием публичной документации в качестве источников.
Как NiaHub остается готовым к демонстрации, когда все ломается
Весь смысл демонстрации на хакатоне — не упасть в реальном времени. NiaHub защищен от сбоев любой внешней зависимости:
Если это умрет во время демо | Что видит пользователь |
Nia ограничил частоту / упал | Путь снимков обслуживает все 17 канонических вопросов менее чем за 300 мс |
OpenAI упал | Трассировка "почему этот ответ" переключается на сводку хост-листа |
Оба упали | Ответ из снимка + резервная трассировка, ~270 мс |
Postgres упал | Маркетплейс отображает 8 пакетов из зеркала в памяти |
Convex упал | Живой тикер тихо переключается на синтетическую ленту |
Cursor вводит что-то неожиданное | Переход к реальному Nia → если он тоже упал, полезный демонстрационный плейсхолдер |
Дневная квота Oracle исчерпана | Тайм-аут |
Запускайте набор тестов для проверки в любое время:
pwsh -NoProfile -File scripts/e2e.ps13-минутная демонстрация
Полный план по шагам в docs/demo.md. Кратко:
0:00 – 0:10 Заходим на niahub.dev. Живой тикер прокручивается.
0:10 – 0:55 Нажимаем на пакет Stripe. Нажимаем на подсказку "14-дневный пробный период Checkout". Переключаем сравнение. Смотрим, как
gpt-5-miniгаллюцинирует рядом с цитируемым ответом NiaHub.0:55 – 1:35 Момент с Cursor — вставляем вопрос, получаем реальный код Stripe Checkout со ссылками на issues GitHub
stripe-node#2231, #1418, #2274. Нажимаем на цитату. Она открывается на реальной странице документации Stripe.1:35 – 2:05 Вкладка архитектуры
/about— упоминаем всех 8 спонсоров за 30 секунд.2:05 – 2:35
/recommend→ Вкладка вставки package.json. Сбрасываем зависимости. Получаем индивидуальные рекомендации с обоснованием + комбинированный фрагмент.2:35 – 2:55
/create— объясняем куратора Devin + про-пакеты Hyperspell. "Сегодня: 8 пакетов. Через восемь недель: 800."2:55 – 3:00 Закрытие. Резкий переход на главную страницу. Тикер все еще прокручивается.
Цифры, которые можно цитировать
52 | пройденных сквозных проверок, каждый спонсор проверен вживую |
8 | собственных стартовых пакетов |
17 | предварительно загруженных запросов (реальные захваты Nia + снимки демо-уровня) |
8 | подключенных спонсоров, 7 с доступным живым API |
<5 с | вход → цитируемый ответ в |
<60 с | вход → рабочий ответ в вашем редакторе (Cursor) |
ежечасно | частота обновления каждого пакета через Tensorlake |
gpt-5-mini | модель, стоящая за аудитом + трассировкой "почему этот ответ" |
Лицензия
Apache-2.0 — такая же, как у MCP-сервера Nia, намеренно. Легкий путь внедрения.
Создано для хакатона Nozomio, 9 мая 2026 г., Сан-Франциско.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceProvides AI agents with persistent knowledge storage, enabling them to store, search, and retrieve text, documents, and files using semantic and keyword search via MCP tools.31Apache 2.0
- Alicense-qualityAmaintenanceA headless local knowledge library and RAG substrate that enables LLM clients to search, retrieve chunks, and list documentation packs through read-only MCP tools.MIT
- Alicense-qualityBmaintenanceProvides up-to-date documentation for AI agents by locally querying a community-driven registry of pre-built docs packages.Apache 2.0
- Alicense-qualityFmaintenanceRemote MCP server enabling agents to search, buy, and publish reusable knowledge via nine agent-native tools without API keys or custodied wallets.MIT
Related MCP Connectors
Curated knowledge API for AI agents - skill packs, semantic search, validated patterns.
Shared, peer-validated knowledge archive for AI agents — search, contribute, and validate via MCP
Shared knowledge base for AI agents. Semantic search across agents, no setup required — just a URL.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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