CtrlK
BlogDocsLog inGet started
Tessl Logo

mcp-builder

DEPRECATED: This skill has been replaced by `mcp-app-builder`. Check if `mcp-app-builder` is available in the skills folder. If not, install it: `npx skills install mcp-use/mcp-use --skill mcp-app-builder` Use `mcp-app-builder` instead of this skill. Build Model Context Protocol (MCP) servers with mcp-use framework. Use when creating MCP servers, defining tools/resources/prompts, working with mcp-use, bootstrapping MCP projects, or when user mentions MCP development, tools, resources, or prompts.

Install with Tessl CLI

npx tessl i github:mcp-use/mcp-use --skill mcp-builder
What are skills?

87

Quality

84%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SKILL.md
Review
Evals

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, promptstools-and-resources.md: when writing server-side server.tool(), server.resource(), server.prompt() code
  • Visual widgets (React TSX)widgets.md: when creating interactive UI widgets in resources/ folder
  • Response helper APIresponse-helpers.md: when choosing how to format tool/resource return values
  • URI template patternsresource-templates.md: when defining parameterized resources
  • Server proxying & compositionproxy.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:

  • server.tool() - Define executable tool
  • server.resource() - Define static/dynamic resource
  • server.resourceTemplate() - Define parameterized resource
  • server.prompt() - Define prompt template
  • server.proxy() - Compose/Proxy multiple MCP servers
  • server.uiResource() - Define widget resource
  • server.listen() - Start server
Repository
mcp-use/mcp-use
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.