Nifra docs

Nifra docs, runnable examples, and API types as an MCP server for any AI assistant.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
90%
Calidad de los nombres
80%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,357Tokens (definiciones de herramientas)
~927 BTamaño de respuesta típico
Impacto moderado en la atención (1.06% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "nifra-docs": {
      "url": "https://mcp.nifra.dev"
    }
  }
}

Puntos de conexión remotos

https://mcp.nifra.devstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (6)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢nifra_docs(query, limit)

Search nifra's framework documentation and get back ONLY the matching sections - auth, uploads, ISR, WebSockets, loaders, deployment, anything. Call with no query for the cheap section index; pass query (e.g. "isr revalidate") for the top matching sections. Use this instead of reading llms-full.txt (~150 KB) whole. For the EXACT TypeScript of a type/interface/function, call nifra_types instead (don't read .d.ts files).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 256,
      "description": "Keywords to match against doc sections (omit for the index)."
    },
    "limit": {
      "type": "number",
      "description": "Max sections to return (default 3, max 5)."
    }
  },
  "additionalProperties": false
}
🟢nifra_example(query, limit)

Get a verified, copy-pasteable Nifra code example for a task - auth route, file upload, ISR page, loader/action, typed client, SSE, deployment, and more. Every snippet is typechecked against the installed Nifra version, so it compiles as-is. Returns code as text for direct use. Call with no query for the grouped index; pass query (e.g. "protected route", "upload", "isr revalidate") for matching snippets.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 256,
      "description": "What you want an example of (omit for the index)."
    },
    "limit": {
      "type": "number",
      "description": "Max examples to return (default 3, max 5)."
    }
  },
  "additionalProperties": false
}
🟢nifra_types(name, query, limit, full)

Get the exact TypeScript declaration of any exported @nifrajs/* symbol - interface, type, class, function, or const. Each signature is generated from the package's built .d.ts and returns the complete declaration rather than prose. Pass `name` for an exact symbol (e.g. "RateLimitStore", "RouteSchema", "Context", "rateLimit"); pass `query` to search by keyword; omit both for the per-package index of names. A `name` lookup is always the complete declaration; a `query` returns a one-line summary plus the signature, collapsing an oversized body - pass `full: true` to override.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Exact symbol name - returns its literal declaration (e.g. RateLimitStore)."
    },
    "query": {
      "type": "string",
      "maxLength": 256,
      "description": "Keyword search over names + signatures (when you don't know the exact name)."
    },
    "limit": {
      "type": "number",
      "description": "Max results for a query/search (default 5, max 8)."
    },
    "full": {
      "type": "boolean",
      "description": "Query mode only: return whole declarations instead of collapsed ones. Off by default - a search is for picking a symbol, and one match can be tens of thousands of characters."
    }
  },
  "additionalProperties": false
}
🟢nifra_learn(step)

Walk the guided path to build a nifra app end to end - an ORDERED sequence (create → page route → loader → typed API → typed client → auth → background jobs → deploy), not the random-access search of nifra_docs/nifra_example. Call with no args for the step index; pass `step: N` for that step's goal, how to do it (which tool emits the correct artifact), and how to verify it. Use it when scaffolding a new app or learning nifra's flow - each step composes the other nifra_* tools.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "step": {
      "type": "number",
      "description": "1-based step number to expand (omit for the index)."
    }
  },
  "additionalProperties": false
}
🟢nifra_frontend(symptom, adapter, limit)

Diagnose a client-side Nifra problem by symptom across every adapter (React, Preact, Solid, Vue, Svelte, and vanilla). Returns the likely cause, a concrete fix, and how to verify it. Covers the Nifra server/client seam, hydration mismatches, duplicated framework runtimes, loader-data typing, and adapter-specific reactivity guidance. Call with no args for the index; pass `symptom` (e.g. "hydration mismatch", "value stopped updating") and/or `adapter` to filter.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "symptom": {
      "type": "string",
      "maxLength": 256,
      "description": "What you observe (omit for the index)."
    },
    "adapter": {
      "type": "string",
      "enum": [
        "react",
        "preact",
        "solid",
        "vue",
        "svelte",
        "vanilla"
      ],
      "description": "Filter to one adapter's entries (plus the adapter-independent seam entries)."
    },
    "limit": {
      "type": "number",
      "description": "Max entries to return (default 3, max 5)."
    }
  },
  "additionalProperties": false
}
🟢nifra_gallery(query)

Open an interactive, filterable gallery of ALL of nifra's verified code examples (MCP Apps widget) - for browsing and discovering what exists. NOT for fetching one snippet as text: use nifra_example for that. Pass query to pre-filter; the widget also filters client-side.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Pre-filter examples by keyword."
    }
  },
  "additionalProperties": false
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada6 herramientas
verificadoversión no registrada5 herramientas
verificadoversión no registrada5 herramientas