build-mcp-app SKILL.md skillB
build-mcp-app from anthropics/claude-plugins-official is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add anthropics/claude-plugins-official/build-mcp-app@v0.1.0Pins v0.1.0 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- B, 16 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- anthropics/claude-plugins-official
- Path
plugins/mcp-server-dev/skills/build-mcp-app/SKILL.md- Versions recorded
- 3
- Latest version
- v0.1.0, committed Apr 28, 2026
- First version recorded
- Mar 20, 2026
- Size
- 19,391 bytes
- Repository stars
- 43,118
- License
- Apache-2.0
This skill should be used when the user wants to build an "MCP app", add "interactive UI" or "widgets" to an MCP server, "render components in chat", build "MCP UI resources", make a tool that shows a "form", "picker", "dashboard" or "confirmation dialog" inline in the conversation, or mentions "apps SDK" in the context of MCP. Use AFTER the build-mcp-server skill has settled the deployment model, or when the user already knows they want UI widgets.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Build an MCP App (Interactive UI Widgets) An MCP app is a standard MCP server that **also serves UI resources** — interactive components rendered inline in the chat surface. Build once, runs in Claude *and* ChatGPT and any other host that implements the apps surface. The UI layer is **additive**. Under the hood it's still tools, resources, and the same wire protocol. If you haven't built a plain MCP server before, the `build-mcp-server` skill covers the base layer. This skill adds widgets on top. > **Testing in Claude:** Add the server as a custom connector in claude.ai (via a Cloudflare tunnel for local dev) — this exercises the real iframe sandbox and `hostContext`. See https://claude.com/docs/connectors/building/testing. ## Claude host specifics | `_meta.ui.*` key | Where | Effect | |---|---|---| | `resourceUri` | tool | Which `ui://` resource the host renders for this tool's results. | | `visibility: ["app"]` | tool | Hide a widget-only helper tool (e.g. geometry/image fetcher called via `callServerTool`) from Claude's tool list. | | `prefersBorder: false` | resource | Drop the host's outer card border (mobile). | …
Read the whole file at its exact version.
How to install
mdr add anthropics/claude-plugins-official/build-mcp-app@sha256:d2fd94f009650646The line at the top of this page pins the label v0.1.0, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_gppv4i4wnslau4uh)
3 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 3 versions of this file, between Mar 20, 2026 and Apr 28, 2026, about one every 19 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| v0.1.0 latest | 2026-04-28 | f4b5494 | 19,391 B | B | view · diff |
| v0.1.0 | 2026-04-17 | b00abee | 17,329 B | B | view · diff |
| v0.1.0 | 2026-03-20 | 90accf6 | 16,447 B | B | view |
Audit of the latest version
- fail: No script tag (matched: <script)
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (19391 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
Starting a new one? Use a template for SKILL.md on mdpantry, which passes every one of these checks and says what to change in it.
Source
anthropics/claude-plugins-official · 43,118 stars · license Apache-2.0 · pushed 2026-10-19 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_gppv4i4wnslau4uh GET https://markdownregistry.com/api/v1/resolve?ref=anthropics/claude-plugins-official/build-mcp-app GET https://markdownregistry.com/api/v1/blob/d2fd94f0096506469ec855c581e48293d35480e58e6405b2bfcdba0486a0c218
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.
More from anthropics/claude-plugins-official
Every file in anthropics/claude-plugins-official