GitHub Stars
8,240
User Rating
Not Rated
Favorites
0
Views
58
Forks
973
Issues
45
Full-Stack MCP Framework
mcp-use provides everything you need to build with Model Context Protocol
MCP servers, MCP clients and AI agents in 6 lines of code, in both Python and TypeScript.
Stack
- π€ MCP Agents - AI agents that can use tools and reason across steps
- π MCP Clients - Connect any LLM to any MCP server
- π οΈ MCP Servers - Build your own MCP servers
- π MCP Inspector - Web-based debugger for MCP servers
- π¨ MCP-UI Resources - Build ChatGPT apps with interactive widgets
π What Do You Want to Build?
π€ Build an AI AgentCreate intelligent agents that can use tools, browse the web, manage files, and more. |
π Use MCP ClientConnect directly to MCP servers and call tools programmatically without an agent. |
π οΈ Create an MCP ServerBuild your own MCP servers with tools, resources, and prompts. |
π Debug with InspectorTest, debug, and explore your MCP servers interactively. |
π¨ Build ChatGPT AppsCreate interactive UIs with mcp-ui, react and live reload. |
βοΈ Deploy to MCP CloudDeploy and manage your MCP agents and servers in the cloud. |
π¦ Quick Start
Build an AI Agent
Create an AI agent that can use MCP tools to accomplish complex tasks.
Python
pip install mcp-use langchain-openai
import asyncio
from langchain_openai import ChatOpenAI
from mcp_use import MCPAgent, MCPClient
async def main():
# Configure MCP server
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
Typescript
npm install mcp-use @langchain/openai
import { ChatOpenAI } from "@langchain/openai";
import { MCPAgent, MCPClient } from "mcp-use";
async function main() {
// Configure MCP server
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
Use MCP Client
Connect to MCP servers directly without an AI agent for programmatic tool access.
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
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
Create an MCP Server
Build your own MCP server with custom tools, resources, and prompts.
Typescript
npx create-mcp-use-app my-server
cd my-server
npm install
import { createMCPServer } from "mcp-use/server";
import { z } from "zod";
const server = createMCPServer("my-server", {
version: "1.0.0",
description: "My custom MCP server",
});
// Define a tool
server.tool("get_weather", {
description: "Get weather for a city",
parameters: z.object({
city: z.string().describe("City name"),
}),
execute: async ({ city }) => {
return { temperature: 72, condition: "sunny", city };
},
});
// Start server with auto-inspector
server.listen(3000);
// π Inspector at http://localhost:3000/inspector
β Full TypeScript Server Documentation
Python
Coming Soon! For now, please use the TypeScript implementation to create MCP servers.
Use the Inspector
Debug and test your MCP servers with the interactive web-based inspector.
Automatic (with mcp-use server)
When you create a server with mcp-use, the inspector is automatically available:
server.listen(3000);
// Inspector automatically at: http://localhost:3000/inspector
Standalone
Inspect any MCP server via CLI:
npx @mcp-use/inspector --url http://localhost:3000/sse
Features:
- π Test tools interactively with live execution
- π Monitor connection status and server health
- π Handle OAuth flows automatically
- πΎ Persistent sessions with localStorage
β Full Inspector Documentation
π More Examples & Documentation
Example Use Cases
- Web Browsing with Playwright - Automate browser tasks
- Multi-Server Setup - Use multiple MCP servers together
- Streaming Responses - Real-time agent output
- UI Widgets - Build interactive React components
- AI SDK Integration - Vercel AI SDK for Next.js apps
Complete Documentation
- π Python Documentation - Complete Python guide
- π TypeScript Documentation - Complete TypeScript guide
- π Inspector Documentation - Inspector guide
- π Online Docs - Full online documentation
β¨ Key Features
| Feature | Description | Python | TypeScript |
|---|---|---|---|
| π€ MCP Agents | AI agents with tool access and multi-step reasoning | β | β |
| π MCP Clients | Direct connection to any MCP server | β | β |
| π οΈ MCP Servers | Build custom MCP servers | π | β |
| π Inspector | Web-based debugging tool | β | β |
| π¨ UI Widgets | Build interactive React UIs | β | β |
| π Multi-Server | Connect to multiple servers simultaneously | β | β |
| π‘ Streaming | Real-time streaming responses | β | β |
| π Observability | Built-in Langfuse integration | β | β |
| π OAuth Support | Built-in OAuth flow handling | β | β |
| π‘οΈ Tool Control | Restrict access to specific tools | β | β |
π¦ Package Overview
This monorepo contains multiple packages for both Python and TypeScript:
Python Packages
| Package | Description | Version |
|---|---|---|
| mcp-use | Complete MCP client and agent library |
TypeScript Packages
ποΈ Repository Structure
mcp-use/
βββ libraries/
β βββ python/ β Python implementation
β β βββ mcp_use/ β Core library
β β βββ examples/ β Python examples
β β βββ docs/ β Python documentation
β β
β βββ typescript/ β TypeScript implementation
β βββ packages/
β βββ mcp-use/ β Core framework
β βββ cli/ β Build tool
β βββ inspector/ β Web inspector
β βββ create-mcp-use-app/ β Scaffolding
βββ README.md β This file
π Why MCP-Use?
Complete Vertical Stack
Build everything from AI agents to servers - not just clients. Create the full MCP ecosystem in your preferred language.
Language Flexibility
Choose Python for ML/data workflows or TypeScript for web applications. Same great features, different languages.
Production Ready
Includes observability, streaming, multi-server support, sandboxing, and tool access controls out of the box.
Developer Experience
Hot reload, TypeScript/Python type safety, built-in inspector, and comprehensive documentation.
Open Source
MIT licensed and community-driven. Contribute, fork, or extend as needed.
π€ Community & Support
- π¬ Discord: Join our community
- π GitHub Issues: Report bugs or request features
- π Documentation: docs.mcp-use.com
- π Website: mcp-use.com
- π¦ Twitter: Follow @pietrozullo and @pederzh
π License
MIT Β© MCP-Use Contributors
π Contributing
We love contributions! Check out our contributing guidelines:
β Star History
π Citation
If you use MCP-Use in your research or project, please cite:
@software{mcp_use2025,
author = {Zullo, Pietro and Contributors},
title = {MCP-Use: Complete MCP Ecosystem for Python and TypeScript},
year = {2025},
publisher = {GitHub},
url = {https://github.com/mcp-use/mcp-use}
}
Contributors
Thanks to all our amazing contributors!
Core Contributors
- Pietro (@pietrozullo)
- Luigi (@pederzh)
- Enrico (@tonxxd)
San Francisco | ZΓΌrich
Enhanced ChatGPT Clone: Features Agents, MCP, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini, Artifacts, AI model switching, message search, Code Interpreter, langchain, DALL-E-3, OpenAPI Actions, Functions, Secure Multi-User Auth, Presets, open-source for self-hosting. Active.