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 { MCPServer, text } from "mcp-use/server"; import { z } from "zod"; const server = new MCPServer({ name: "my-server", version: "1.0.0", description: "My custom MCP server", }); // Define a tool server.tool( { name: "get_weather", description: "Get weather for a city", schema: z.object({ city: z.string().describe("City name"), }), }, async ({ city }) => { return text(`Temperature: 72Β°F, Condition: sunny, City: ${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