将大型调研或生成任务分配给多个AI模型,完成计划评审、并行执行、成果验证与整合,并记录各负责角色的进度和重试情况。
- 并行调研多个竞争对手
- 分担大型内容生成任务
- 让顾问评审计划或草稿
使用mcp-use设计和实现MCP服务器,让AI调用外部操作与数据。指南涵盖认证、交互界面、错误处理及部署,并引导查阅各功能的配套资料。
**MANDATORY for ALL MCP server work** - mcp-use framework best practices and patterns. **READ THIS FIRST** before any MCP server work, including: - Creating new MCP servers - Modifying existing MCP servers (adding/updating tools, resources, prompts, widgets) - Debugging MCP server issues or errors - Reviewing MCP server code for quality, security, or performance - Answering questions about MCP development or mcp-use patterns - Making ANY changes to server.tool(), server.resource(), server.prompt(), or widgets This skill contains critical architecture decisions, security patterns, and common pitfalls. Always consult the relevant reference files BEFORE implementing MCP features.
mcp-apps-builder是使用mcp-use设计和实现MCP服务器的指南。MCP让AI能够使用外部操作与数据。指南说明如何区分执行操作的Tool、提供只读数据的Resource、保存可复用文本的Prompt,以及使用React构建交互界面的Widget。内容还涵盖输入验证、响应格式、错误处理、身份认证、界面状态管理、主题适配和部署方法。
适合新建服务器或为现有mcp-use项目添加功能。需要制作数据列表、比较和选择界面,或检查代码安全性与性能时,也可参考。
mcp-use创建一个MCP服务器。”正文用于引导查阅资料,实现功能时还需使用对应的配套资料。新项目以npx create-mcp-use-app为创建方式。Widget示例使用React,输入验证示例使用Zod,凭据通过环境变量管理。
本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。
AI 仅根据 SKILL.md 的内容,从 4 个方面进行了评估。星标数和热度不计入评估。
总分按每项 A=25 分、B=15 分、C=5 分相加。 由 AI(OpenAI Codex)于 2026年10月20日 评估。仅供参考,安装前请同时查看原文。
安装前可以查看交给 AI 代理的指令内容。
This file provides a NAVIGATION GUIDE ONLY. Before implementing any MCP server features, you MUST:
Do NOT rely solely on the quick reference examples in this file - they are minimal examples only. The reference files contain critical best practices, security considerations, and advanced patterns.
Comprehensive guide for building production-ready MCP servers with tools, resources, prompts, and widgets using mcp-use.
Before doing anything else, determine whether you are inside an existing mcp-use project.
Detection: Check the workspace for a package.json that lists "mcp-use" as a dependency, OR any .ts file that imports from "mcp-use/server".
├─ mcp-use project FOUND → Do NOT scaffold. You are already in a project.
│ └─ Skip to "Quick Navigation" below to add features.
│
├─ NO mcp-use project (empty dir, unrelated project, or greenfield)
│ └─ Scaffold first with npx create-mcp-use-app, then add features.
│ See "Scaffolding a New Project" below.
│
└─ Inside an UNRELATED project (e.g. Next.js app) and user wants an MCP server
└─ Ask the user where to create it, then scaffold in that directory.
Do NOT scaffold inside an existing unrelated project root.
NEVER manually create MCPServer boilerplate, package.json, or project structure by hand. The CLI sets up TypeScript config, dev scripts, inspector integration, hot reload, and widget compilation that are difficult to replicate manually.
npx create-mcp-use-app my-server
cd my-server
npm run dev
For full scaffolding details and CLI flags, see quickstart.md.
Choose your path based on what you're building:
When: ALWAYS read these first when starting MCP work in a new conversation. Reference later for architecture/concept clarification.
Load these before diving into tools/resources/widgets sections.
When: Protecting your server with OAuth (WorkOS, Supabase, or custom)
ctx.auth, or choosing a provideroauth config, user context shape, provider comparison, common mistakesWhen: Implementing MCP features (actions, data, templates). Read the specific file for the primitive you're building.
text(), object(), markdown(), image(), error(), mix()When: Creating React-based visual interfaces for browsing, comparing, or selecting data
useWidget() hook, isPending checks, props handlinguseState, setState, state persistence, when to use tool vs widget stateuseCallTool(), form handling, action buttons, optimistic updatesuseWidgetTheme(), light/dark mode, autoSize, layout patterns, CSS best practicesWhen: You want to see full implementations of common use cases
What do you need?
├─ New project from scratch
│ └─> quickstart.md (scaffolding + setup)
│
├─ OAuth / user authentication
│ └─> authentication/overview.md → provider-specific guide
│
├─ Simple backend action (no UI)
│ └─> Use Tool: server/tools.md
│
├─ Read-only data for clients
│ └─> Use Resource: server/resources.md
│
├─ Reusable prompt template
│ └─> Use Prompt: server/prompts.md
│
├─ Visual/interactive UI
│ └─> Use Widget: widgets/basics.md
│
└─ Deploy to production
└─> deployment.md (cloud deploy, self-hosting, Docker)
Avoid these anti-patterns found in production MCP servers:
text(), object(), widget(), error() helpers.describe() on every field
error() helper
error("message") for graceful error responsesprops without checking isPending
if (isPending) return <Loading/>useStateMcpUseProvider wrapper or autoSize
<McpUseProvider autoSize>useWidgetTheme() for light/dark mode supportprocess.env.API_KEY, document in .env.exampleerror() on failureOpinionated architectural guidelines:
Split broad actions into focused tools:
manage-users (too vague)create-user, delete-user, list-usersTool calls are expensive. Avoid lazy-loading:
list-products + get-product-details (2 calls)list-products returns full data including detailsUI state lives in the widget, not in separate tools:
select-item tool, set-filter tooluseState or setStateexposeAsTool Defaults to falseWidgets are registered as resources only by default. Use a custom tool (recommended) or set exposeAsTool: true to expose a widget to the model:
// ✅ ALL 4 STEPS REQUIRED for proper type inference:
// Step 1: Define schema separately
const propsSchema = z.object({
title: z.string(),
items: z.array(z.string()),
});
// Step 2: Reference schema variable in metadata
export const widgetMetadata: WidgetMetadata = {
description: "...",
props: propsSchema, // ← NOT inline z.object()
exposeAsTool: false,
};
// Step 3: Infer Props type from schema variable
type Props = z.infer<typeof propsSchema>;
// Step 4: Use typed Props with useWidget
export default function MyWidget() {
const { props, isPending } = useWidget<Props>(); // ← Add <Props>
// ...
}
⚠️ Common mistake: Only doing steps 1-2 but skipping 3-4 (loses type safety)
When in doubt, add a widget. Visual UI improves:
import { MCPServer, text } from "mcp-use/server";
import { z } from "zod";
const server = new MCPServer({
name: "my-server",
title: "My Server",
version: "1.0.0",
});
server.tool(
{
name: "greet",
description: "Greet a user",
schema: z.object({ name: z.string().describe("User's name") }),
},
async ({ name }) => text("Hello " + name + "!"),
);
server.listen();
| Helper | Use When | Example |
|---|---|---|
text() | Simple string response | text("Success!") |
object() | Structured data | object({ status: "ok" }) |
markdown() | Formatted text | markdown("# Title\nContent") |
widget() | Visual UI | widget({ props: {...}, output: text(...) }) |
mix() | Multiple contents | mix(text("Hi"), image(url)) |
error() | Error responses | error("Failed to fetch data") |
resource() | Embed resource refs | resource("docs://guide", "text/markdown") |
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
将大型调研或生成任务分配给多个AI模型,完成计划评审、并行执行、成果验证与整合,并记录各负责角色的进度和重试情况。
指导开发可在ChatGPT内操作的应用,涵盖功能规划、React组件及状态共享的实现。该技能已弃用,并指引用户转向后续技能。
通过本地Git历史调查代码的引入背景与修改意图,追溯最初提交及反复同时修改的文件,整理改动前需要检查的事项。
检查Python和JavaScript依赖文件中的版本约束缺失、重复条目、固定版本冲突及过时兼容包,用易懂的语言说明影响并提出便于核对的修改建议。
从目标读者的角度试读发布前的文稿,检查是否愿意打开、在哪里失去兴趣,以及读后记住什么。它报告模拟读者的反应,不改写文章。
这是使用mcp-use设计MCP服务器操作、数据资源、可复用提示词及交互界面的旧指南。该技能已弃用,并指引用户迁移至mcp-app-builder。