New to Claude Skills? Learn how to install them →

Mmcp-use on GitHub

MCP Apps Builder

Free

Streamline development of TypeScript MCP servers and apps.

by mcp-use10.5k stars on mcp-use/mcp-use
2 views
Updated Aug 10, 2026
Get this skill

Free · Opens the source repo

What MCP Apps Builder does

The MCP Apps Builder skill provides a structured approach to building, modifying, debugging, migrating, and reviewing TypeScript MCP servers and interactive MCP applications using the mcp-use v2 package. It emphasizes treating the installed mcp-use package and its generated types as the source of truth, ensuring that developers work with the correct version and APIs. This skill is particularly useful for developers who are transitioning from mcp-use v1 to v2, as it includes specific guidance on handling migration and package boundaries.

The workflow is designed to guide developers through the initial setup and implementation process. It begins with inspecting the project's package.json, server entry points, and existing exports. Developers can scaffold new projects using npx create-mcp-use-app@latest, which eliminates the need for manual boilerplate code. The skill also directs users to relevant references for server primitives, views, authentication, migration, and verification, ensuring that they have the necessary resources at their fingertips to successfully complete their tasks.

By following the established guidelines, developers can implement tools with defined input and output schemas, manage request states effectively, and ensure that their applications are built and run correctly. The skill also encourages validation through the complete lifecycle of the application, from building and type-checking to running the server and rendering views. This comprehensive approach helps to minimize errors and enhances the overall development experience for those working with MCP applications.

When to use it

Use this skill when developing new MCP applications or migrating existing projects from mcp-use v1 to v2.

When not to use it

This skill may not be suitable for non-TypeScript projects or for developers not working within the MCP ecosystem.

What you can build with it

Setting Up a New MCP Project

Use the skill to scaffold a new MCP application quickly, ensuring all necessary configurations are in place.

Migrating from mcp-use v1 to v2

Leverage the migration references to smoothly transition your existing projects to the latest version of mcp-use.

Debugging MCP Applications

Utilize the skill's structured workflow to identify and fix issues in your MCP server or app, ensuring a seamless user experience.

How to install MCP Apps Builder

View source

1. Install with the skills CLI

npx skills add mcp-use/mcp-use/mcp-apps-builder --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by mcp-use

Build MCP Apps with mcp-use v2

Treat the installed mcp-use package, its generated types, and the project's existing exports as the source of truth. Check the installed version before changing code; do not assume APIs from mcp-use v1.

Workflow

  1. Inspect package.json, the server entry, exported tool refs, views/, and the installed mcp-use version.
  2. Scaffold a new project with npx create-mcp-use-app@latest; do not hand-build framework boilerplate.
  3. Read only the references needed for the task:
    • Server primitives for tools, resources, prompts, middleware, and result envelopes.
    • Views for interactive MCP Apps and React hooks.
    • Authentication for OAuth providers and authenticated tool handlers.
    • Migration when converting v1 code or reviewing package boundaries.
    • Verification before reporting completion.
  4. Implement against the package types. Export every statically declared tool ref that a View calls.
  5. Validate through the real lifecycle: build/typecheck, run the server, connect a client, call the tool, and render the View when one exists.

Native v2 invariants

  • Import server APIs from mcp-use; provider adapters come from mcp-use/oauth/*; React APIs come from mcp-use/react.
  • Define tools with inputSchema; add outputSchema when returning structured data or binding a View.
  • Return MCP result envelopes with content, structuredContent, and optionally _meta or isError.
  • Put each View at views/<name>/view.tsx and bind it with view: { name: "<name>" }.
  • Read the rendering call with useToolContext; use focused hooks such as useCallTool, useViewState, useHostContext, and useDisplayMode for additional behavior.
  • Export the server as the default export. Let mcp-use dev, build, and start own framework lifecycle and View compilation.
  • Keep request state in the request context or an external store. Do not rely on module globals for cross-request identity or elicitation continuity.

Minimal server and View

import { MCPServer } from "mcp-use";
import { z } from "zod";

const server = new MCPServer({ name: "catalog", version: "1.0.0" });

export const showProduct = server.tool(
  {
    name: "show-product",
    description: "Show one catalog product",
    inputSchema: z.object({ id: z.string() }),
    outputSchema: z.object({ id: z.string(), name: z.string() }),
    view: { name: "product" },
  },
  async ({ id }) => {
    const product = { id, name: "Example product" };
    return {
      content: [{ type: "text", text: JSON.stringify(product) }],
      structuredContent: product,
    };
  },
);

export default server;
// views/product/view.tsx
import { ThemeProvider, useToolContext } from "mcp-use/react";

export default function ProductView() {
  const view = useToolContext<"show-product">();
  if (view.status === "pending") return <p>Loading…</p>;
  if (view.status === "error") return <p>{view.error.message}</p>;
  return <ThemeProvider>{view.toolOutput.name}</ThemeProvider>;
}

Guardrails

  • Do not copy examples from v1 docs or historical changelogs.
  • Do not invent exports or configuration fields; confirm them in installed declarations or source.
  • Do not return a plain domain object from a tool callback.
  • Do not bind a View without an outputSchema and matching structuredContent.
  • Do not claim success from a source build alone when package exports or interactive behavior changed.
  • Do not deploy or mutate external systems unless the user explicitly requests it.

Run node <skill-dir>/scripts/check-v2.mjs <project-root> during migrations and reviews, then complete the focused checks in Verification.

Agent Skills

Put reusable agent workflows in skills/<name>/SKILL.md; the directory is served automatically, so normally omit the skills server option. Use skills: false to disable it or skills: { directory: "server-skills" } to override the project-relative directory. Keep supporting references, scripts, templates, and assets in the skill instead of inflating tool descriptions.

Frequently asked questions about MCP Apps Builder

Similar skills