Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,534Letters: 13Defects: 1,322counted 2 min ago
teppi

Server definition

Hash
sha256:496eac188d0370caf277f771cb47494d8301c1cf8afbf57e24e4652ba10e170b
What it is
What a remote MCP server returned when asked what it offers: 6 tools

The blob, as servednamed by its sha256

{ "instructions": "nifra's own documentation, runnable examples, and API types - for building with the nifra framework. Call nifra_docs / nifra_example / nifra_types / nifra_learn to learn it without a local checkout.", "tools": [ { "description": "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).", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "description": "Max sections to return (default 3, max 5).", "type": "number" }, "query": { "description": "Keywords to match against doc sections (omit for the index).", "maxLength": 256, "type": "string" } }, "type": "object" }, "name": "nifra_docs", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "description": "Max examples to return (default 3, max 5).", "type": "number" }, "query": { "description": "What you want an example of (omit for the index).", "maxLength": 256, "type": "string" } }, "type": "object" }, "name": "nifra_example", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "adapter": { "description": "Filter to one adapter's entries (plus the adapter-independent seam entries).", "enum": [ "react", "preact", "solid", "vue", "svelte", "vanilla" ], "type": "string" }, "limit": { "description": "Max entries to return (default 3, max 5).", "type": "number" }, "symptom": { "description": "What you observe (omit for the index).", "maxLength": 256, "type": "string" } }, "type": "object" }, "name": "nifra_frontend", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "query": { "description": "Pre-filter examples by keyword.", "type": "string" } }, "type": "object" }, "name": "nifra_gallery", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "step": { "description": "1-based step number to expand (omit for the index).", "type": "number" } }, "type": "object" }, "name": "nifra_learn", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "full": { "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.", "type": "boolean" }, "limit": { "description": "Max results for a query/search (default 5, max 8).", "type": "number" }, "name": { "description": "Exact symbol name - returns its literal declaration (e.g. RateLimitStore).", "type": "string" }, "query": { "description": "Keyword search over names + signatures (when you don't know the exact name).", "maxLength": 256, "type": "string" } }, "type": "object" }, "name": "nifra_types", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:496eac188d0370caf277f771cb47494d8301c1cf8afbf57e24e4652ba10e170b | sha256sum