niahub-mcp
NiaHub — El mercado de índices de Nia
Indexa una vez, suscríbete en una línea. Un mercado de paquetes de conocimiento de Nia preindexados a los que cualquier agente compatible con MCP (Cursor, Claude Code, Codex) puede suscribirse con un solo pegado. Stripe, React, Next.js, Postgres, AWS, Tailwind, MCP, Nozomio: preindexados, actualizados cada hora, fundamentados en citas.
Creado para el Hackathon de Nozomio · 9 de mayo de 2026 · San Francisco
La cuña
Todo usuario de Cursor quiere que su agente se base en documentación real, no en datos de entrenamiento de 2022. Quieren Nia. Pero:
Todo el mundo vuelve a indexar la misma documentación de Stripe / React / Postgres / S3 desde cero en su propio portátil
Nadie mantiene esos índices: se vuelven obsoletos en una semana
Elegir las URLs, ramas y cadencia de actualización correctas es la parte realmente difícil
La fricción de configuración es justo la suficiente para que la mayoría de los equipos nunca empiecen
NiaHub cambia eso. Indexa una vez, suscríbete en una línea. Ocho paquetes de lanzamiento, actualizados cada hora por Tensorlake, auditados cada noche por Codex, servidos en <300 ms por una pasarela centrada en instantáneas que accede a la Nia real subyacente.
// ~/.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_…"
}
}
}
}Reinicia Cursor. Pregunta: "Crea una sesión de Stripe Checkout para una suscripción con una prueba de 14 días." Cursor llama a niahub_search_pack, la pasarela devuelve fragmentos reales de la documentación actual de Stripe, gpt-5-mini escribe un rastro de "por qué esta respuesta", y Cursor produce código correcto con citas a URLs en vivo de docs.stripe.com.
Related MCP server: local-rag-core
Arquitectura
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| ConvexTres rutas de demostración, todas en vivo:
/playground(solo navegador): elige un paquete, haz clic en una sugerencia, aparece una comparación de alucinaciones lado a lado en <5 s. Sin configuración de Cursor.Cursor MCP — pega en
~/.cursor/mcp.json, reinicia, pregunta. Agente real, fragmentos reales, citas reales. ~60 s de principio a fin para un usuario primerizo./recommend— describe tu stack o pega unpackage.json. Nia Oracle elige los 3 mejores paquetes y te da un fragmento de instalación combinado.
Stack de patrocinadores: qué hace realmente cada uno
Patrocinador | Rol | Punto de contacto en este repositorio | |
🏆 | Nia (Nozomio) | Sustrato de indexación · | |
🚀 | InsForge | Auth + Postgres + edge — registro de paquetes, suscripciones, registro de consultas | |
🛰 | Tensorlake | Actualización aislada en sandbox · indexación por webhook | |
🎯 | OpenAI Codex | Auditoría de alucinaciones | |
▲ | Vercel | Next.js 16 / Turbopack · la superficie del mercado | |
⚡ | Convex | Consulta reactiva | |
🎓 | Devin | Curador autónomo de paquetes · despacho real | |
🧠 | Hyperspell | Nivel Pro — paquetes privados de "cerebro de empresa" de Slack/Gmail/Drive/GitHub | |
🔍 | Aside | Compañero de navegador — detecta dominios de documentación, ofrece instalación con un clic |
Cada uno de ellos se utiliza en vivo durante la demostración. Un conjunto de 52 comprobaciones de extremo a extremo (scripts/e2e.ps1) verifica cada ruta:
pwsh -NoProfile -File scripts/e2e.ps1
# → 52 / 52 passed
# → All sponsors live, end-to-end.Qué hay en el repositorio
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 outlinePuesta en marcha
Requisitos previos
Node 20+
Un Postgres gratuito (la CLI de InsForge proporciona uno con
npx @insforge/cli signup)Una clave API de Nia de trynia.ai
(Opcional) Claves de Tensorlake, Devin, OpenAI, Hyperspell, Convex para la superficie completa de patrocinadores
Inicio rápido
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:3000Eso te da el mercado, las 8 páginas de paquetes, el patio de recreo, el flujo de recomendación y la pasarela MCP ejecutándose localmente, con búsqueda centrada en instantáneas para que las preguntas de demostración canónicas se respondan al instante incluso si la API de Nia en vivo tiene límites de velocidad.
Arrancar índices reales de Nia (opcional)
La semilla incluye IDs de categoría sintéticos de Nia. Para conectar cada paquete con Nia real:
node scripts/bootstrap-pack.ts packs/stripe-api-current.yaml
# repeat per pack, then:
node scripts/capture-snapshots.mjsEl archivo de instantáneas en apps/web/lib/nia/snapshots.json se confirma con 17 respuestas de nivel de demostración: 11 capturadas de Nia real, 6 escritas a mano usando documentación pública como fuentes.
Cómo NiaHub se mantiene listo para la demostración cuando las cosas fallan
El objetivo de una demostración de hackathon es no explotar en vivo. NiaHub está reforzado contra la caída de cualquier dependencia externa:
Si esto muere a mitad de la demo | Lo que ve el usuario |
Límites de velocidad de Nia / caído | La ruta de instantáneas sirve las 17 preguntas canónicas en <300 ms |
OpenAI caído | El rastro de "por qué esta respuesta" recurre a un resumen de la lista de hosts |
Ambos caídos | Respuesta de instantánea + rastro de respaldo, ~270 ms |
Postgres caído | El mercado renderiza 8 paquetes desde un espejo en memoria |
Convex caído | El ticker en vivo recurre silenciosamente a un feed sintético |
Cursor escribe algo inesperado | Pasa a Nia en vivo → si también está caído, marcador de posición de demostración útil |
Cuota diaria de Oracle agotada | Tiempo de espera de 30 s en |
Ejecuta el conjunto de pruebas para verificar en cualquier momento:
pwsh -NoProfile -File scripts/e2e.ps1La demostración de 3 minutos
Ritmo completo en docs/demo.md. Resumen:
0:00 – 0:10 Aterriza en niahub.dev. Ticker en vivo desplazándose.
0:10 – 0:55 Haz clic en el paquete de Stripe. Haz clic en la sugerencia "Prueba de 14 días de Checkout". Alterna la vista lado a lado. Observa cómo
gpt-5-minialucina junto a la respuesta citada de NiaHub.0:55 – 1:35 Momento Cursor: pega una pregunta, obtén código real de Stripe Checkout con citas a los problemas #2231, #1418, #2274 de GitHub de
stripe-node. Haz clic en una cita. Se abre en una página de documentación real de Stripe.1:35 – 2:05 Pestaña de arquitectura
/about: menciona a los 8 patrocinadores en 30 segundos.2:05 – 2:35
/recommend→ Pestaña de pegar package.json. Suelta dependencias. Obtén selecciones personalizadas con justificación + fragmento combinado.2:35 – 2:55
/create— explica el curador Devin + paquetes pro de Hyperspell. "Hoy: 8 paquetes. Ocho semanas: 800."2:55 – 3:00 Cierre. Corte directo a la página de inicio. El ticker sigue desplazándose.
Números que puedes citar
52 | comprobaciones de extremo a extremo pasando, cada patrocinador verificado en vivo |
8 | paquetes de lanzamiento de primera parte |
17 | consultas precargadas (capturas reales de Nia + instantáneas de nivel de demostración) |
8 | patrocinadores conectados, 7 con superficie de API en vivo alcanzable |
<5 s | aterrizaje → respuesta citada en |
<60 s | aterrizaje → respuesta funcional en tu editor (Cursor) |
cada hora | cadencia de actualización en cada paquete vía Tensorlake |
gpt-5-mini | modelo detrás de la auditoría + rastro de "por qué esta respuesta" |
Licencia
Apache-2.0 — igual que el servidor MCP de Nia, intencional. Ruta de adopción fácil.
Creado para el Hackathon de Nozomio, 9 de mayo de 2026, San Francisco.
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