mcp-apps-builder

作成者: mcp-use

本番用MCPサーバーを構築するための必須リファレンスガイド。ツール、リソース、プロンプト、ウィジェットを網羅。基礎概念(Tool、Resource、Prompt、Widgetプリミティブ)、サーバーアーキテクチャ、認証パターン(OAuth、Supabase、カスタム)、デプロイ戦略を解説。ツール、リソース、プロンプト、レスポンスフォーマット、状態管理とテーマ設定を備えたウィジェットベースUIの実装に関する詳細ガイドを含む。よくあるアンチパターン(バリデーション不足、不適切なエラー...)を文書化。

npx skills add https://github.com/mcp-use/mcp-use --skill mcp-apps-builder

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.

mcp-useのその他のスキル

chatgpt-app-builder
mcp-use
mcp-useとOpenAI Apps SDKを使って、インタラクティブなウィジェットを備えたChatGPTアプリを構築します。ChatGPTアプリの作成時や、ウィジェット付きのMCPサーバーの構築、定義などに使用します。
official
mcp-builder
mcp-use
mcp-useフレームワークと自動ウィジェット登録を使用して、本番環境対応のMCPサーバーを構築します。npx create-mcp-use-appでブートストラップし、3つのテンプレート(スターター(フル機能)、mcp-apps(ChatGPT最適化)、ブランク(最小限))から選択可能。Zodスキーマを使用してツール、リソース、プロンプトを定義し、自動バリデーションと明確なパラメータ説明を提供。resources/フォルダからReactウィジェットを自動的にMCPツールおよびリソースとして登録し、MCPアプリ向けのデュアルプロトコル対応...
official
chatgpt-app-builder
mcp-use
非推奨:代わりにmcp-app-builderを使用してください。インタラクティブなウィジェットとゼロ設定のReact開発でChatGPTアプリを構築します。このスキルは非推奨です。継続的なサポートとアップデートのためにmcp-app-builderに移行してください。共有インタラクティブウィジェットを通じて人間のユーザーとLLM間の協調UIを実現します。サーバーハンドラー、Reactウィジェットスキャフォールディング、状態管理、ツール呼び出しとフォローアップメッセージ用の組み込みフックを提供します。表示モード(インライン、フルスクリーン、ピクチャーインピクチャー)、テーマ設定などをカバーします。
official
mcp-builder
mcp-use
非推奨: mcp-useを使用して、ツール、リソース、プロンプト、インタラクティブウィジェットを備えたMCPサーバーを構築します。このスキルは非推奨です。代わりにmcp-app-builderを使用してください。単一のMCPサーバー内でツール、リソース、プロンプト、インタラクティブなReactウィジェットを定義することをサポートします。テキスト、マークダウン、HTML、画像、オブジェクト、カスタムウィジェットとして出力をフォーマットするためのレスポンスヘルパーを含みます。複数のMCPサーバーを統合インターフェースに集約するためのサーバー構成とプロキシを提供します。
official
openapi-to-mcp
mcp-use
OpenAPI / Swagger仕様からmcp-use TypeScript SDKを使用してMCPサーバーを構築・デプロイします。ユーザーが「このOpenAPIを変換したい」と言ったときにこのスキルを使用してください。
official