Nifra docs
Server Details
Nifra docs, runnable examples, and API types as an MCP server for any AI assistant.
- Status
- Healthy
- Uptime
- 100.0% over 49 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- nifrajs/nifra
- GitHub Stars
- 2
TDQS
Scored across 6 tools
Descriptions explicitly delineate boundaries (e.g. gallery says 'use nifra_example for that', docs says 'call nifra_types instead'), which strongly reduces misselection. However, nifra_docs, nifra_example, and nifra_gallery all surface overlapping topic-based content and can be triggered by the same query terms, so a few boundaries remain soft.
Every tool follows the identical nifra_<resource> snake_case pattern (nifra_docs, nifra_example, nifra_frontend, nifra_gallery, nifra_learn, nifra_types). The convention is uniform and predictable throughout.
Six well-scoped tools is an ideal size for a framework documentation/assist server. Each tool occupies a distinct niche (search, snippets, diagnostics, browsing, guided path, type signatures) and earns its place.
The surface covers docs, examples, types, learning, and client-side diagnostics comprehensively. Minor gaps: no dedicated backend/server-error troubleshooting counterpart to nifra_frontend, and no version/changelog tool, though these are workable around.
Available Tools
6 toolsnifra_docsARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max sections to return (default 3, max 5). | |
| query | No | Keywords to match against doc sections (omit for the index). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: the no-query call is 'cheap' and returns a section index, results are limited to matching sections only, and the ~150 KB cost of the alternative is quantified. It stops short of noting rate limits or result truncation, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with the core action and scope, then the two invocation modes, then the cost rationale and the alternative tool. Every sentence carries routing or behavioral information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description characterizes the return shape (matching sections only vs. a section index) and names the sibling tools that cover the remaining needs. For a two-parameter read-only search tool, an agent has everything required to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (limit default 3/max 5, query maxLength 256) are already documented — baseline 3. The description still adds value: a concrete query example ('isr revalidate') and the semantic consequence of omitting query for a cheap index, which clarifies intent rather than restating types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (nifra's framework documentation) with explicit scope: returns ONLY matching sections, with a no-query index mode. It explicitly distinguishes itself from sibling nifra_types (exact TypeScript) and from reading llms-full.txt, so an agent can route without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use for both invocation modes (no query = cheap index; query = top matching sections) and names the alternatives not to use: nifra_types for exact TS, and llms-full.txt as the expensive path. Nothing about selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nifra_exampleARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max examples to return (default 3, max 5). | |
| query | No | What you want an example of (omit for the index). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and closed-world behavior, so the bar is lower. The description adds genuine value beyond that: snippets are typechecked against the installed Nifra version so they compile as-is, and results are returned as plain text code.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the value proposition (verified, copy-pasteable, compiles as-is), followed by the return format and then invocation instructions. No filler, though the long category list is close to padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly states the return format (code as text for direct use). Annotations cover the safety profile and the schema is fully documented, leaving little missing for a simple two-parameter lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (query, limit) are already documented including the default/max on limit. The description largely restates the schema's omit-for-index behavior and adds only example query phrases, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get a verified, copy-pasteable code example for a named task, and enumerates the covered categories (auth route, file upload, ISR page, loader/action, typed client, SSE, deployment). It never distinguishes itself from the close siblings nifra_docs, nifra_learn, or nifra_types, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear invocation guidance (no query = grouped index, query = matching snippets) with concrete query examples like "protected route" and "upload". However it offers no when-to-use versus alternatives guidance, which matters given the overlapping nifra_docs and nifra_learn siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nifra_frontendARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max entries to return (default 3, max 5). | |
| adapter | No | Filter to one adapter's entries (plus the adapter-independent seam entries). | |
| symptom | No | What you observe (omit for the index). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds non-obvious behaviour beyond that: it returns "the likely cause, a concrete fix, and how to verify it," and defines the no-args index mode.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four front-loaded sentences that each carry information: purpose, return shape, topical coverage, and invocation. The topical enumeration is slightly list-like, but it helps the agent judge relevance, so it earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by summarising the return payload (cause, fix, verification). Combined with annotations covering the safety profile and an explicit no-args index mode, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter (baseline 3). The description adds value by giving concrete example symptom values ("hydration mismatch", "value stopped updating") that illustrate free-text intent beyond the schema's generic wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: "Diagnose a client-side Nifra problem by symptom across every adapter." This is clearly distinct from sibling tools (nifra_docs, nifra_example, nifra_gallery, nifra_learn, nifra_types), which are reference/learning surfaces rather than a symptom-driven diagnostic. An agent can route to it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent how to invoke: "Call with no args for the index; pass symptom and/or adapter to filter," which resolves the ambiguity of a 0-required-param tool. It does not, however, state when NOT to use it or name an alternative sibling for reference-style questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nifra_galleryARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Pre-filter examples by keyword. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds non-obvious context beyond the annotations: it is an MCP Apps widget (interactive UI) and filtering happens both server-side via query and client-side, which affects how an agent should treat the result. It stops short of describing empty-result or auth behavior, but that is minor given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the primary purpose, then the exclusion/alternative, then the parameter hint. No sentence is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a single optional parameter, the description supplies everything needed: what the tool returns (an interactive gallery widget), its scope (ALL verified examples), how filtering works, and when to prefer a sibling. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, so baseline is 3. The description adds meaning beyond the schema's 'Pre-filter examples by keyword': it clarifies that query is a pre-filter and that the widget additionally filters client-side, telling the agent the filter need not be exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — opening an interactive, filterable gallery of nifra's verified code examples — and names the sibling (nifra_example) it is not. An agent can distinguish it from the other nifra_* tools without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the exclusion ('NOT for fetching one snippet as text') and routes to the correct alternative ('use nifra_example for that'). It also frames the intended use case: browsing and discovering what exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nifra_learnARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| step | No | 1-based step number to expand (omit for the index). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is covered. Beyond that, the description discloses non-obvious behavior: no-arg calls return a step index, while step: N returns goal + method + verification, and each step composes other nifra_* tools. It doesn't mention any bounds on step count or error behavior for an out-of-range step.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The ordered-sequence claim and the sibling differentiation are front-loaded in the first clause, and each subsequent sentence adds routing or call-shape information. It is dense, with the parenthetical step arrow-chain being somewhat heavy, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe returns — and it does, covering both the no-arg index and the per-step payload (goal, how to do it, how to verify). For a single-optional-param, read-only tool, an agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single `step` parameter, so the baseline is 3. The description goes beyond the schema by defining the two distinct modes (omitted = index, provided = expanded step) and specifying exactly what content each yields, which is real semantic value the schema's 'expand' wording does not carry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('walk the guided path to build a nifra app') and immediately pins down its shape: an ORDERED sequence of named steps. It explicitly distinguishes itself from siblings by naming nifra_docs and nifra_example and characterizing them as 'random-access search', so the agent can pick the right tool without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use ('scaffolding a new app or learning nifra's flow') and a clear when-not via the contrast with nifra_docs/nifra_example. The call patterns (no args vs step: N) are also spelled out, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nifra_typesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | 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. | |
| name | No | Exact symbol name - returns its literal declaration (e.g. RateLimitStore). | |
| limit | No | Max results for a query/search (default 5, max 8). | |
| query | No | Keyword search over names + signatures (when you don't know the exact name). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: signatures are generated from the package's built .d.ts, a name lookup is always the complete declaration, a query returns a one-line summary plus signature with the body collapsed, and `full: true` overrides that. This discloses result-shaping behavior the readOnly/idempotent hints cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then the parameter-mode guidance in one dense paragraph with no filler. Slightly long, but nearly every clause carries distinct information (index mode, collapsing, full override), so the size is largely earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains the three return shapes (index of names, full declaration, summarized-plus-signature) and how to expand them. An agent has everything needed to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds interaction logic beyond the schema: name vs query vs omit semantics, and that `full` applies only in query mode and overrides the default collapsing. It meaningfully disambiguates how the parameters combine.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (the exact TypeScript declaration of any exported @nifrajs/* symbol) and enumerates the symbol kinds covered. The phrase 'returns the complete declaration rather than prose' explicitly distinguishes it from prose-oriented siblings like nifra_docs, letting an agent choose without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear mode selection: pass `name` for an exact symbol, `query` to search by keyword, omit both for the per-package index. This covers when-to-use each mode well, though it doesn't name sibling alternatives (e.g. when to reach for nifra_docs instead), so no explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- Changed
nifra_docs1 field changed- added
Input schema / properties / query / maxLengthAdded value: +256
- Changed
nifra_example1 field changed- added
Input schema / properties / query / maxLengthAdded value: +256
- Added
nifra_frontend - Changed
nifra_types1 field changed- added
Input schema / properties / query / maxLengthAdded value: +256
2 tool updates
- Removed
nifra_examples_app - Added
nifra_gallery
5 tool updates
- First observed
nifra_docs - First observed
nifra_example - First observed
nifra_examples_app - First observed
nifra_learn - First observed
nifra_types
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
An MCP server that gives your AI access to the source code and docs of all public github repos
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Related MCP Servers
- FlicenseCqualityCmaintenanceAn MCP server that exposes Discord bot actions as tools for LLM clients.291-
- AlicenseNot gradedqualityDmaintenanceExposes Docusaurus documentation and OpenAPI specs as an MCP server, enabling AI agents to search docs and inspect API endpoints.142 npmMIT
- FlicenseAqualityBmaintenanceAn MCP server that provides AI clients with access to developer documentation via llms.txt files. Exposes tools, resources, and prompts.31-
- -licenseNot gradedqualityNot gradedmaintenanceAST-aware code exploration MCP server for AI agents, optimized for token efficiency.-
Glama MCP Gateway
Add one secure layer between your agents and this server.