Install
$ agentstack add mcp-mcp-use-mcp-use ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
About
mcp-use is the fullstack MCP framework to build MCP Apps for ChatGPT / Claude & MCP Servers for AI Agents.
- Build with mcp-use SDK (ts | py): MCP Servers and MCP Apps
- Preview on mcp-use MCP Inspector (online | oss): Test and debug your MCP Servers and Apps
- Deploy on Manufact MCP Cloud: Connect your GitHub repo and have your MCP Server and App up and running in production with observability, metrics, logs, branch-deployments, and more
Documentation
Visit our docs or jump to a quickstart (TypeScript | Python)
Skills for Coding Agents
> Using Claude Code, Codex, Cursor or other AI coding agents? > > Install mcp-use skill for MCP Apps
Quickstart: MCP Servers and MCP Apps
TypeScript
Build your first MCP Server or MPC App:
npx create-mcp-use-app@latest
Or create a server manually:
import { MCPServer, text } from "mcp-use/server";
import { z } from "zod";
const server = new MCPServer({
name: "my-server",
version: "1.0.0",
});
server.tool({
name: "get_weather",
description: "Get weather for a city",
schema: z.object({ city: z.string() }),
}, async ({ city }) => {
return text(`Temperature: 72°F, Condition: sunny, City: ${city}`);
});
await server.listen(3000);
// Inspector at http://localhost:3000/inspector
→ Full TypeScript Server Documentation
MCP Apps
MCP Apps let you build interactive widgets that work across Claude, ChatGPT, and other MCP clients — write once, run everywhere.
Server: define a tool and point it to a widget:
import { MCPServer, widget } from "mcp-use/server";
import { z } from "zod";
const server = new MCPServer({
name: "weather-app",
version: "1.0.0",
});
server.tool({
name: "get-weather",
description: "Get weather for a city",
schema: z.object({ city: z.string() }),
widget: "weather-display", // references resources/weather-display/widget.tsx
}, async ({ city }) => {
return widget({
props: { city, temperature: 22, conditions: "Sunny" },
message: `Weather in ${city}: Sunny, 22°C`,
});
});
await server.listen(3000);
Widget: create a React component in resources/weather-display/widget.tsx:
import { useWidget, type WidgetMetadata } from "mcp-use/react";
import { z } from "zod";
const propSchema = z.object({
city: z.string(),
temperature: z.number(),
conditions: z.string(),
});
export const widgetMetadata: WidgetMetadata = {
description: "Display weather information",
props: propSchema,
};
const WeatherDisplay: React.FC = () => {
const { props, isPending, theme } = useWidget>();
const isDark = theme === "dark";
if (isPending) return Loading...;
return (
{props.city}
{props.temperature}° — {props.conditions}
);
};
export default WeatherDisplay;
Widgets in resources/ are auto-discovered — no manual registration needed.
Visit MCP Apps Documentation
Templates
Ready-to-use MCP Apps you can deploy in one click or remix as your own.
| Preview | Name | Tools | Demo URL | Repo | Deploy | | --- | --- | --- | --- | --- | --- | | | Chart Builder | create-chart | Open URL | mcp-use/mcp-chart-builder | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-chart-builder&branch=main&project-name=mcp-chart-builder&port=3000&runtime=node&base-image=node%3A20) | | | Diagram Builder | create-diagram, edit-diagram | Open URL | mcp-use/mcp-diagram-builder | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-diagram-builder&branch=main&project-name=mcp-diagram-builder&port=3000&runtime=node&base-image=node%3A20) | | | Slide Deck | create-slides, edit-slide | Open URL | mcp-use/mcp-slide-deck | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-slide-deck&branch=main&project-name=mcp-slide-deck&port=3000&runtime=node&base-image=node%3A20) | | | Maps Explorer | show-map, get-place-details, add-markers | Open URL | mcp-use/mcp-maps-explorer | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-maps-explorer&branch=main&project-name=mcp-maps-explorer&port=3000&runtime=node&base-image=node%3A20) | | | Hugging Face Spaces | search-spaces, show-space, trending-spaces | Open URL | mcp-use/mcp-huggingface-spaces | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-huggingface-spaces&branch=main&project-name=mcp-huggingface-spaces&port=3000&runtime=node&base-image=node%3A20) | | | Recipe Finder | search-recipes, get-recipe, meal-plan, recipe-suggestion | Open URL | mcp-use/mcp-recipe-finder | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-recipe-finder&branch=main&project-name=mcp-recipe-finder&port=3000&runtime=node&base-image=node%3A20) | | | Widget Gallery | show-react-widget, html-greeting, mcp-ui-poll, programmatic-counter, detect-client | Open URL | mcp-use/mcp-widget-gallery | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-widget-gallery&branch=main&project-name=mcp-widget-gallery&port=3000&runtime=node&base-image=node%3A20) | | | Multi Server Hub | hub-status, hub-config-example, audit-log | Open URL | mcp-use/mcp-multi-server-hub | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-multi-server-hub&branch=main&project-name=mcp-multi-server-hub&port=3000&runtime=node&base-image=node%3A20) | | | File Manager | open-vault, get-file, list-files | Open URL | mcp-use/mcp-file-manager | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-file-manager&branch=main&project-name=mcp-file-manager&port=3000&runtime=node&base-image=node%3A20) | | | Progress Demo | process-data, fetch-report, delete-dataset, search-external, failing-tool | Open URL | mcp-use/mcp-progress-demo | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-progress-demo&branch=main&project-name=mcp-progress-demo&port=3000&runtime=node&base-image=node%3A20) | | | i18n Adaptive | show-context, detect-caller | Open URL | mcp-use/mcp-i18n-adaptive | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-i18n-adaptive&branch=main&project-name=mcp-i18n-adaptive&port=3000&runtime=node&base-image=node%3A20) | | | Media Mixer | generate-image, generate-audio, generate-pdf, get-report, get-html-snippet, get-xml-config, get-stylesheet, get-script, get-data-array | Open URL | mcp-use/mcp-media-mixer | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-media-mixer&branch=main&project-name=mcp-media-mixer&port=3000&runtime=node&base-image=node%3A20) | | | Resource Watcher | show-config, update-config, toggle-feature, list-roots | Open URL | mcp-use/mcp-resource-watcher | [](https://mcp-use.com/deploy/start?repository-url=https%3A%2F%2Fgithub.com%2Fmcp-use%2Fmcp-resource-watcher&branch=main&project-name=mcp-resource-watcher&port=3000&runtime=node&base-image=node%3A20) |
Python
pip install mcp-use
from typing import Annotated
from mcp.types import ToolAnnotations
from pydantic import Field
from mcp_use import MCPServer
server = MCPServer(name="Weather Server", version="1.0.0")
@server.tool(
name="get_weather",
description="Get current weather information for a location",
annotations=ToolAnnotations(readOnlyHint=True, openWorldHint=True),
)
async def get_weather(
city: Annotated[str, Field(description="City name")],
) -> str:
return f"Temperature: 72°F, Condition: sunny, City: {city}"
# Start server with auto-inspector
server.run(transport="streamable-http", port=8000)
# 🎉 Inspector at http://localhost:8000/inspector
→ Full Python Server Documentation
Inspector
The mcp-use Inspector lets you test and debug your MCP servers interactively.
Auto-included when using server.listen():
server.listen(3000);
// Inspector at http://localhost:3000/inspector
Online when connecting to hosted MCP servers:
>Visit https://inspector.mcp-use.com
Standalone: inspect any MCP server:
npx @mcp-use/inspector --url http://localhost:3000/mcp
Visit Inspector Documentation
Deploy
Deploy your MCP server to production:
npx @mcp-use/cli login
npx @mcp-use/cli deploy
Or connect your GitHub repo on manufact.com — production-ready with observability, metrics, logs, and branch-deployments.
Package Overview
This monorepo contains multiple packages for both Python and TypeScript:
Python Packages
| Package | Description | Version | | ----------- | ------------------------------------- | --------------------------------------------------------------------------------------- | | mcp-use | Complete MCP server and MCP agent SDK | [](https://pypi.org/project/mcp_use/) |
TypeScript Packages
| Package | Description | Version | | ---------------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | | mcp-use | Core framework for MCP servers, MCP apps, and MCP agents | [](https://www.npmjs.com/package/mcp-use) | | @mcp-use/cli | Build tool with hot reload and auto-inspector | [](https://www.npmjs.com/package/@mcp-use/cli) | | @mcp-use/inspector | Web-based previewer and debugger for MCP servers | [](https://www.npmjs.com/package/@mcp-use/inspector) | | create-mcp-use-app | Project scaffolding tool | [](https://www.npmjs.com/package/create-mcp-use-app) |
Also: MCP Agent & Client
mcp-use also provides a full MCP Agent and Client implementation.
Build an AI Agent
Python
pip install mcp-use langchain-openai
import asyncio
from langchain_openai import ChatOpenAI
from mcp_use import MCPAgent, MCPClient
async def main():
config = {
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
}
}
}
client = MCPClient.from_dict(config)
llm = ChatOpenAI(model="gpt-4o")
agent = MCPAgent(llm=llm, client=client)
result = await agent.run("List all files in the directory")
print(result)
asyncio.run(main())
[→ Full Python Agent Documentation](./libraries/python/README.md#quick-start)
TypeScript
npm install mcp-use @langchain/openai
import { ChatOpenAI } from "@langchain/openai";
import { MCPAgent, MCPClient } from "mcp-use";
async function main() {
const config = {
mcpServers: {
filesystem: {
command: "npx",
args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
},
},
};
const client = MCPClient.fromDict(config);
const llm = new ChatOpenAI({ modelName: "gpt-4o" });
const agent = new MCPAgent({ llm, client });
const result = await agent.run("List all files in the directory");
console.log(result);
}
main();
[→ Full TypeScript Agent Documentation](./libraries/typescript/README.md#-quick-start)
Use MCP Client
Python
import asyncio
from mcp_use import MCPClient
async def main():
config = {
"mcpServers": {
"calculator": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"]
}
}
}
client = MCPClient.from_dict(config)
await client.create_all_sessions()
session = client.get_session("calculator")
result = await session.call_tool(name="add", arguments={"a": 5, "b": 3})
print(f"Result: {result.content[0].text}")
await client.close_all_sessions()
asyncio.run(main())
[→ Python Client Documentation](./libraries/python/README.md#direct-tool-calls-without-llm)
TypeScript
import { MCPClient } from "mcp-use";
async function main() {
const config = {
mcpServers: {
calculator: {
command: "npx",
args: ["-y", "@modelcontextprotocol/server-everything"],
},
},
};
const client = new MCPClient(config);
await client.createAllSessions();
const session = client.getSession("calculator");
const result = await session.callTool("add", { a: 5, b: 3 });
console.log(`Result: ${result.content[0].text}`);
await client.closeAllSessions();
}
main();
[→ TypeScript Client Documentation](./libraries/typescript/README.md#basic-usage)
Conformance to Model Context Protocol
Security
See SECURITY.md
Community & Support
- Discord: Join our community
- GitHub Issues: Report bugs or request features
- Documentation: mcp-use.com/docs
- Website: manufact.com
- X.com: Follow Manufact
- Contributing: See CONTRIBUTING.md
- License: MIT © [MCP-Use Contributors](https://github.com/mcp-use/
…
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: mcp-use
- Source: mcp-use/mcp-use
- License: MIT
- Homepage: https://manufact.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.