CtrlK
BlogDocsLog inGet started
Tessl Logo

mcp

MCP Apps integration for json-render. Use when building MCP servers that render interactive UIs in Claude, ChatGPT, Cursor, or VS Code, or when integrating json-render with the Model Context Protocol.

64

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/mcp/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

68%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A tight, code-first reference: executable server and client snippets, concrete build and configuration details, and no padding explaining concepts Claude already knows. The main weakness is workflow clarity — the build→serve→configure sequence is implicit rather than ordered, and there are no verification checkpoints for the server/iframe round trip.

Suggestions

Order the Quick Start as an explicit numbered sequence (1. build the React app with the Vite single-file config → 2. verify dist/index.html exists → 3. start the MCP server → 4. configure the client), so the server example no longer depends on an artifact introduced later.

Add a validation step, e.g. connecting the server and confirming the render-ui tool and ui:// resource appear in the client, with a fix-and-retry loop for common failure modes (missing dist/index.html, stdio vs HTTP transport).

Collapse the Cursor and Claude Desktop config blocks into one example noting only the path difference, or move per-client configuration to a references file.

DimensionReasoningScore

Conciseness

The body is lean throughout: no explanation of what MCP or React is, a four-line Architecture list, and a compact API summary — every section adds information Claude would not already have. The only over-verbosity is the near-identical Cursor and Claude Desktop JSON blocks, which duplicate each other except for the script path, so 'minor instances that could be trimmed' (4) fits better than the every-token-earns-its-place anchor (5).

4 / 5

Actionability

Guidance is mostly executable: complete TypeScript server and client examples, a concrete vite.config.ts, client config JSON, and exact npm install commands. Minor gaps keep it below the copy-paste-ready-for-common-cases anchor: the quick-start server reads dist/index.html before the doc shows building it, and the client example takes registry as a prop without showing where it comes from.

4 / 5

Workflow Clarity

The implied workflow (bundle the React app with Vite → build dist/index.html → create the MCP server → configure the client) is never sequenced; the Quick Start presents the server first while depending on a build artifact documented later. There are also no validation or verification checkpoints (e.g., confirming the server connects or the UI renders in the client), matching 'sequence present but checkpoints missing or implicit'.

3 / 5

Progressive Disclosure

No bundle files exist, and the ~120-line body is well organized into clearly labeled sections (Quick Start, Architecture, Server API, Client API, build setup, client configs, dependencies) with nothing that clearly belongs in a separate file. It sits just above the simple-skill exception (<50 lines) and the client-configuration section is the one candidate that could be split out, so 'good structure; most content appropriately placed; minor organization gaps' (4) is the best fit.

4 / 5

Total

15

/

20

Passed

Description

81%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description with explicit, concrete when-triggers covering named clients and both the MCP abbreviation and its expansion. Its main weakness is the thin what-clause: "MCP Apps integration for json-render" states the domain but not the concrete actions the skill performs, which limits specificity and completeness.

Suggestions

State the concrete actions in the what-clause, e.g. "Serves json-render UIs as interactive MCP Apps: registers a render-ui tool and a ui:// HTML resource on an MCP server, with a React client hook for the iframe" — this would lift specificity toward the several-concrete-actions anchor.

Make the what/when pairing fully explicit by leading with what the integration produces (interactive UIs inside MCP clients) before the Use-when clause.

Optionally add the npm package name (@json-render/mcp) as a trigger term users might mention verbatim.

DimensionReasoningScore

Specificity

The description names the domain clearly ("MCP Apps integration for json-render") and the when-clause surfaces one concrete action ("building MCP servers that render interactive UIs"), but the what-clause itself is a single generic action ("integration") with no listing of concrete capabilities. It matches 'names domain and 1-2 concrete actions, but not comprehensive' better than the score-4 anchor, which requires several specific actions.

3 / 5

Completeness

Both parts are present: a what ("MCP Apps integration for json-render") and an explicit when ("Use when building MCP servers that render interactive UIs in Claude, ChatGPT, Cursor, or VS Code, or when integrating json-render with the Model Context Protocol"). The when is explicit with concrete triggers, but the what is terse — it never states what the integration actually does (e.g., serving UIs as MCP resources/tools), so it falls short of the clearly-explicit-both anchor at 5.

4 / 5

Trigger Term Quality

Natural trigger phrases are comprehensive for the niche: "building MCP servers", "interactive UIs", the client names "Claude, ChatGPT, Cursor, or VS Code", and the synonym pair "MCP" and "Model Context Protocol" both appear, plus the product-specific "json-render" and "MCP Apps". No relevant file extensions exist for this domain, and no natural term a user would say is obviously missing, so the comprehensive-coverage anchor fits.

5 / 5

Distinctiveness Conflict Risk

This is a clear niche: "json-render" and "MCP Apps" are product-specific terms, and the triggers (rendering interactive UIs in MCP-capable clients) are distinct from generic MCP-server work. Conflict risk with other skills is minimal.

5 / 5

Total

17

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
vercel-labs/json-render
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.