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.
- π€ 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
|
Create intelligent agents that can use tools, browse the web, manage files, and more. |
Connect directly to MCP servers and call tools programmatically without an agent. |
|
Build your own MCP servers with tools, resources, and prompts. |
Test, debug, and explore your MCP servers interactively. |
|
Create interactive UIs with mcp-ui, react and live reload. |
Deploy and manage your MCP agents and servers in the cloud. |
Create an AI agent that can use MCP tools to accomplish complex tasks.
pip install mcp-use langchain-openaiimport 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
npm install mcp-use @langchain/openaiimport { 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
Connect to MCP servers directly without an AI agent for programmatic tool access.
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
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
Build your own MCP server with custom tools, resources, and prompts.
npx create-mcp-use-app my-server
cd my-server
npm installimport { 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
Coming Soon! For now, please use the TypeScript implementation to create MCP servers.
Debug and test your MCP servers with the interactive web-based inspector.
When you create a server with mcp-use, the inspector is automatically available:
server.listen(3000);
// Inspector automatically at: http://localhost:3000/inspectorInspect any MCP server via CLI:
npx @mcp-use/inspector --url http://localhost:3000/sseFeatures:
- π Test tools interactively with live execution
- π Monitor connection status and server health
- π Handle OAuth flows automatically
- πΎ Persistent sessions with localStorage
β Full Inspector Documentation
- 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
- π Python Documentation - Complete Python guide
- π TypeScript Documentation - Complete TypeScript guide
- π Inspector Documentation - Inspector guide
- π Online Docs - Full online documentation
| 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 | β | β |
This monorepo contains multiple packages for both Python and TypeScript:
| Package | Description | Version |
|---|---|---|
| mcp-use | Complete MCP client and agent library |
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
Build everything from AI agents to servers - not just clients. Create the full MCP ecosystem in your preferred language.
Choose Python for ML/data workflows or TypeScript for web applications. Same great features, different languages.
Includes observability, streaming, multi-server support, sandboxing, and tool access controls out of the box.
Hot reload, TypeScript/Python type safety, built-in inspector, and comprehensive documentation.
MIT licensed and community-driven. Contribute, fork, or extend as needed.
- π¬ 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
MIT Β© MCP-Use Contributors
We love contributions! Check out our contributing guidelines:
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}
}Thanks to all our amazing contributors!
- Pietro (@pietrozullo)
- Luigi (@pederzh)
- Enrico (@tonxxd)
San Francisco | ZΓΌrich