Mcp-use mcp-builder
install
source · Clone the upstream repo
git clone https://github.com/mcp-use/mcp-use
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/mcp-use/mcp-use "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/mcp-builder" ~/.claude/skills/mcp-use-mcp-use-mcp-builder && rm -rf "$T"
manifest:
skills/mcp-builder/SKILL.mdsource content
MCP Server Builder
Build production-ready MCP servers with tools, resources, prompts, and interactive widgets using mcp-use.
Before You Code
Decompose user requests into tools, widgets, and resources. Decide what needs UI vs text.
Read design-and-architecture.md: when planning what to build, deciding tool vs widget, or designing UX flows.
Implementation
- Tools, resources, prompts → tools-and-resources.md: when writing server-side
,server.tool()
,server.resource()
codeserver.prompt() - Visual widgets (React TSX) → widgets.md: when creating interactive UI widgets in
folderresources/ - Response helper API → response-helpers.md: when choosing how to format tool/resource return values
- URI template patterns → resource-templates.md: when defining parameterized resources
- Server proxying & composition → proxy.md: when composing multiple MCP servers into a unified aggregator
Quick Reference
import { MCPServer, text, object, markdown, html, image, widget, error } from "mcp-use/server"; import { z } from "zod"; const server = new MCPServer({ name: "my-server", version: "1.0.0" }); // Tool server.tool( { name: "my-tool", description: "...", schema: z.object({ param: z.string().describe("...") }) }, async ({ param }) => text("result") ); // Resource server.resource( { uri: "config://settings", name: "Settings", mimeType: "application/json" }, async () => object({ key: "value" }) ); // Prompt server.prompt( { name: "my-prompt", description: "...", schema: z.object({ topic: z.string() }) }, async ({ topic }) => text(`Write about ${topic}`) ); server.listen();
Response helpers:
text(), object(), markdown(), html(), image(), audio(), binary(), error(), mix(), widget()
Server methods:
- Define executable toolserver.tool()
- Define static/dynamic resourceserver.resource()
- Define parameterized resourceserver.resourceTemplate()
- Define prompt templateserver.prompt()
- Compose/Proxy multiple MCP serversserver.proxy()
- Define widget resourceserver.uiResource()
- Start serverserver.listen()