mcp-use是什么
它是一个开源的全栈MCP框架,让你用6行代码就能接入任意MCP服务器。
核心功能是让你用Python或TypeScript构建MCP客户端、AI Agent和MCP服务器,不需要深入理解MCP协议细节,自动处理会话管理、工具调用、流式响应,内置Web调试器可视化测试MCP服务器,支持同时连接多个MCP服务器组合能力,集成Langfuse可观测性追踪,还提供脚手架工具一键生成项目模板,PyPI和npm都有包随时安装
开源成就
Star数 已经收获8.3K Star,MCP生态最活跃的开发框架
主开发语言 TypeScript 63.3%和Python 31.3%双语言支持
版本迭代 发布了37个版本,功能快速迭代
依赖者 359个项目在用mcp-use构建
贡献者 34个贡献者活跃参与,社区驱动发展
核心功能

6行代码接入MCP,配置服务器地址、初始化Client、调用工具三步完成,不用写协议解析代码,抄示例就能跑
Python和TypeScript双实现,ML数据流用Python、Web应用用TypeScript,API完全一致,学一次两边通用
AI Agent内置支持,集成Langchain的ChatOpenAI、Anthropic等模型,自动把MCP工具转成Agent可用形式,支持多步推理和流式输出
Web Inspector神器,启动MCP服务器自动带调试界面,实时测试工具、查看连接状态、处理OAuth流,比命令行调试效率高10倍
多服务器编排,一个Agent同时连接文件系统、浏览器、数据库等多个MCP Server,能力叠加组合
内置可观测性,Langfuse集成开箱即用,每次工具调用、Agent推理全链路追踪,性能问题一目了然
UI组件库,TypeScript版本提供React UI Widgets,构建ChatGPT风格的交互界面,支持热重载开发
实际应用场景

开发文档处理Agent,以前连接MCP文件系统服务器要写一堆协议代码,现在用mcp-use 6行代码搞定,Agent自动获得文件读写能力
做Web自动化任务,同时连接Playwright MCP服务器和数据库MCP服务器,Agent能边浏览网页边存数据,能力组合无缝
调试自己写的MCP Server,以前用命令行测试工具调用很麻烦,现在启动server.listen()自动带Inspector界面,实时测试修改
构建企业AI助手,用Python版本集成公司的向量数据库、知识库、审批系统,所有能力都包装成MCP工具,Agent自动调用
Next.js项目里嵌入AI功能,TypeScript版本集成Vercel AI SDK,流式响应、UI组件、MCP工具调用一套方案
# 安装mcp-use Python版本
pip install mcp-use langchain-openai
# 安装mcp-use TypeScript版本
npm install mcp-use @langchain/openai
# 创建MCP Server项目(TypeScript)
npx create-mcp-use-app my-server
cd my-server
npm install
安装指南
Python快速上手,构建AI Agent
# 安装核心库
pip install mcp-use langchain-openai
# 创建一个AI Agent连接MCP服务器
import asyncio
from langchain_openai import ChatOpenAI
from mcp_use import MCPAgent, MCPClient
async def main():
# 配置MCP服务器(文件系统)
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())
TypeScript快速上手,同样功能的实现
// 安装依赖
npm install mcp-use @langchain/openai
// 创建AI Agent
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();
直接调用MCP工具(无需LLM),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())
创建自己的MCP Server,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",
});
// 定义一个天气查询工具
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 };
},
});
// 启动服务器,自动启用Inspector
server.listen(3000);
// 🎉 Inspector自动运行在 http://localhost:3000/inspector
使用Web Inspector调试
# 方法1: MCP Server自动带Inspector
# 启动server后访问 http://localhost:3000/inspector
# 方法2: 独立运行Inspector调试任意MCP服务器
npx @mcp-use/inspector --url http://localhost:3000/sse
# 功能:
# - 🔍 交互式测试工具调用
# - 📊 实时监控连接状态
# - 🔐 自动处理OAuth认证
# - 💾 localStorage持久化会话
多服务器配置示例,同时连接多个能力
config = {
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/data"]
},
"browser": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-playwright"]
},
"database": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"]
}
}
}
client = MCPClient.from_dict(config)
agent = MCPAgent(llm=llm, client=client)
# Agent现在能同时使用文件、浏览器、数据库能力!
result = await agent.run("爬取网页数据并存入数据库")
使用示例
构建Web浏览Agent
from mcp_use import MCPAgent, MCPClient
from langchain_openai import ChatOpenAI
config = {
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-playwright"]
}
}
}
client = MCPClient.from_dict(config)
llm = ChatOpenAI(model="gpt-4o")
agent = MCPAgent(llm=llm, client=client)
result = await agent.run("访问example.com并截图")
流式响应Agent
import { MCPAgent } from "mcp-use";
const agent = new MCPAgent({ llm, client });
for await (const chunk of agent.stream("Analyze this data")) {
process.stdout.write(chunk);
}
构建ChatGPT风格UI(TypeScript)
import { createMCPServer } from "mcp-use/server";
const server = createMCPServer("chat-app");
server.resource("chat-ui", {
ui: {
component: "ChatWidget",
props: { theme: "dark" }
}
});
server.listen(3000);
// 自动生成React UI组件
技术特色
客户端-服务器-Agent三合一架构,不只是MCP客户端,还能构建服务器和AI Agent,全栈覆盖MCP生态
Python和TypeScript完全对等,不是简单移植,两种语言都是一等公民,API设计一致学习曲线平滑
Inspector自动化集成,创建Server时server.listen()会自动启动Web调试界面,开发调试无缝衔接
工具访问控制,可以限制Agent只能使用特定工具,避免权限滥用,生产环境更安全
OAuth流程内置处理,MCP服务器需要OAuth认证时Inspector自动弹窗,不用手动写认证逻辑
常见问题解答
和直接用MCP SDK有什么区别?
MCP SDK是底层协议实现,mcp-use提供高层封装,6行代码vs几百行协议代码,还带Agent、Inspector等工具
支持哪些LLM?
集成Langchain,支持OpenAI、Anthropic、Cohere等所有Langchain兼容的模型,也可以用Vercel AI SDK
能连接Claude Desktop里配置的MCP服务器吗?
能!读取Claude的配置文件就行,或者把配置复制到mcp-use的config里,完全兼容
Python和TypeScript功能有差异吗?
核心功能一致,TypeScript版本多了UI Widgets和Server创建能力(Python Server即将推出),Agent和Client两边都能用
Inspector能调试第三方MCP服务器吗?
能!npx @mcp-use/inspector --url <server-url>连接任意MCP服务器,不限于mcp-use创建的
生产环境怎么部署?
Agent和Client可以打包成Docker镜像,MCP Server部署方式和普通HTTP服务一样,支持K8s和云服务
开源地址:
