Cookie preferences

We use cookies to improve your experience. See our Privacy Policy.

Manufact

The open-source SDK for MCP Apps and Servers

The mcp-use SDK is the fullstack MCP framework to develop MCP Apps for ChatGPT / Claude & MCP Servers for AI Agents. Loved by developers.

Still writing code by hand?

npx create-mcp-use-app
pip install mcp-use

Our open source tools are used by developers at top companies

6sense Logo
Elastic Logo
IBM Logo
Innovacer Logo
Intuit Logo
NVIDIA Logo
Oracle Logo
Red Hat Logo
Tavily Logo
Verizon Logo
6sense Logo
Elastic Logo
IBM Logo
Innovacer Logo
Intuit Logo
NVIDIA Logo
Oracle Logo
Red Hat Logo
Tavily Logo
Verizon Logo

One MCP server, two surfaces

mcp-use is designed around the MCP standard from both sides of the wire. Ship MCP Apps to AI chats. Ship MCP servers to AI agents. Write once.

MCP Apps for ChatGPT & Claude

MCP Apps for ChatGPT & Claude

Drop React widgets in resources/. They auto-register as tools that render directly in chat clients.

  • ChatGPT·800M+ weekly users
  • Claude·B2B and professionals
MCP Servers for AI agents

MCP Servers for AI agents

Expose your API, database, or internal tools to any AI or coding agent with a single mcp-use server.

  • Coding agents·Cursor, Claude Code
  • Internal agents·built with frameworks
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { createMCPServer } from 'mcp-use/server'
// The MCP Inspector is automatically mounted at /inspector
const server = createMCPServer('my-mcp-server', {
version: '1.0.0',
description: 'An MCP server with MCP Apps support for ChatGPT or Claude',
baseUrl: process.env.MCP_URL,
})
// UI Widgets are React components in the "resources/" folder.
// They are automatically registered as both MCP tools and resources.
// ...
// Add your tools, resources, and prompts here
MCP Server
mcp-useInspector
Select a MCP Tool to inspect
MCP Apps

React widgets, rendered in ChatGPT & Claude.

Drop React components in resources/. They auto-register as MCP tools with a widget surface that renders directly in chat clients with typed props, theming, and the useWidget hook out of the box.

  • Zero boilerplate · export a component, get a tool.
  • Typed props · schema-validated input via the component signature.
  • Theming + useWidget · respects the host chat client.
MCP Servers

Expose tools to any AI agent.

Fully MCP-spec compliant. Works with Claude, ChatGPT, Cursor, and any MCP client. Edge-runtime ready.

  • One-command scaffold · npx create-mcp-use-app.
  • Transports · STDIO, HTTP, SSE, WebSocket out of the box.
  • Inspector built-in · test tools in your browser. No LLM required.
  • 100/100 conformance · passes the official MCP test suite.
server.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { MCPServer, text, widget } from "mcp-use/server";
import { z } from "zod";
const server = new MCPServer({ name: "acme-mcp", version: "1.0.0" });
server.tool(
{
name: "weather",
description: "Show the weather for a city",
schema: z.object({ city: z.string() }),
widget: "./resources/weather/widget.tsx",
},
async ({ city }) => {
const forecast = await getForecast(city);
return widget({ city, forecast });
},
);
await server.listen(3000);
Two languages, one API

Available in TypeScript and Python

The mcp-use server API is identical in both languages. Pick the language your team prefers.

TypeScript
server.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { MCPServer, text, widget } from "mcp-use/server";
import { z } from "zod";
const server = new MCPServer({ name: "acme-mcp", version: "1.0.0" });
server.tool(
{
name: "weather",
description: "Show the weather for a city",
schema: z.object({ city: z.string() }),
widget: "./resources/weather/widget.tsx",
},
async ({ city }) => {
const forecast = await getForecast(city);
return widget({ city, forecast });
},
);
await server.listen(3000);
Python
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from mcp_use.server import MCPServer, text, widget
from pydantic import BaseModel
server = MCPServer(name="acme-mcp", version="1.0.0")
class WeatherInput(BaseModel):
city: str
@server.tool(widget="./resources/weather/widget.tsx")
async def weather(input: WeatherInput):
"""Show the weather for a city."""
forecast = await get_forecast(input.city)
return widget(city=input.city, forecast=forecast)
server.listen(3000)
Why mcp-use

Why developers pick mcp-use for MCP Servers.

A fullstack framework for MCP Servers. Widgets, dev server, Inspector, and cloud deploy bundled in one package.

Tool + widget in one file

Declare a React widget directly on the tool. The useWidget hook handles props, theme, and pending state, no separate ui:// resource to register.

Inspector built in

mcp-use dev runs the server with hot reload and opens an interactive Inspector at /inspector. Test tools, preview widgets, and watch JSON-RPC live.

One-command scaffold

npx create-mcp-use-app generates a typed MCP server, a resources/ folder of React widgets, auth, and a working example.

All transports out of the box

STDIO, HTTP, SSE, WebSocket. Same code, every transport.

Same server API, two languages

TypeScript and Python share the same server API. Pick the language your team prefers.

One-click cloud deploy

Connect a GitHub repo. Branch deploys, logs, metrics, and observability come with Manufact Cloud.

How it fits

How mcp-use complements the official packages.

The MCP SDK and ext-apps are the community reference implementations. mcp-use sits on top with a CLI, dev server, Inspector, and managed deploys.

Featuremcp-use@modelcontextprotocol/sdk@modelcontextprotocol/ext-apps
TypeScript and Python server SDK
Tool + widget in one declaration
One-command scaffold (CLI)
Hot-reload dev server
Browser-based Inspector
Multi-transport (STDIO, HTTP, SSE, WS)
One-click cloud deploy
Latest spec primitives (elicitation, tasks)
Full support Partial None

Developers love

Thousands of dev-teams are building with mcp-use

Been thinking about trying your @mcpuse today when I started building a ChatGPT app, but wasn't sure if it's the right use case. Now I assume it is 🙂

Paolo Perazzo
Paolo Perazzo@SiVola

Great addition to the generic MCP Client collection.

Kingsley Uyi Idehen
Kingsley Uyi Idehen@kidehen

Infra isn't just plumbing. It's distribution. Examples: AgentMail: inboxes for agents, mcp-use: MCP infra, DeepAware: RL for data center ops. Whoever owns the rails agents use to talk to the outside world ends up with Twilio-style power.

Vedika Jain
Vedika Jain@vedikaja_in

mcp-use is by far the best Python framework for building an agent MCP. It's so easy to set up an agent connected to MCP servers through the command line, that way I can quickly iterate on my MCP servers and test. Most people are using MCP servers in chat clients like Cursor / Claude Code, but MCP server use by agents will explode in the near future. I think it's important to test your server in an agent environment, and mcp-use provides that.

Matt Wang
Matt Wang@mcpjams

MCP-Use is the open source way to connect any LLM to any MCP server and build custom agents that have tool access, without using closed source or application clients.

Adam Silverman
Adam Silverman@adamsilverman

that's why we love open-source! @NASA is building an agent with MCP using our library @mcpuse 🚀

pederzh
pederzh@pederzh

Been thinking about trying your @mcpuse today when I started building a ChatGPT app, but wasn't sure if it's the right use case. Now I assume it is 🙂

Paolo Perazzo
Paolo Perazzo@SiVola

Great addition to the generic MCP Client collection.

Kingsley Uyi Idehen
Kingsley Uyi Idehen@kidehen

Infra isn't just plumbing. It's distribution. Examples: AgentMail: inboxes for agents, mcp-use: MCP infra, DeepAware: RL for data center ops. Whoever owns the rails agents use to talk to the outside world ends up with Twilio-style power.

Vedika Jain
Vedika Jain@vedikaja_in

mcp-use is by far the best Python framework for building an agent MCP. It's so easy to set up an agent connected to MCP servers through the command line, that way I can quickly iterate on my MCP servers and test. Most people are using MCP servers in chat clients like Cursor / Claude Code, but MCP server use by agents will explode in the near future. I think it's important to test your server in an agent environment, and mcp-use provides that.

Matt Wang
Matt Wang@mcpjams

MCP-Use is the open source way to connect any LLM to any MCP server and build custom agents that have tool access, without using closed source or application clients.

Adam Silverman
Adam Silverman@adamsilverman

that's why we love open-source! @NASA is building an agent with MCP using our library @mcpuse 🚀

pederzh
pederzh@pederzh

Join MCP community

Get help, share your projects, and get inspired.

The community for developers building with MCP and mcp-use.

Begin your MCP journey
in the
fastest way

From a Git repository

Already have an MCP server on GitHub? Deploy it with one click.

Vibecode your MCP App

Describe what you want. Watch your MCP server and widgets scaffold in front of you.

From a template

Pick one of our templates and start from a known-good scaffold.