在开发 AI 应用的过程中,如何高效地整合大型语言模型(LLM)与外部服务或工具,是开发者常遇到的挑战之一。mcp-use
正是为了简化这一过程而生的开源 Typescript 工具库,让你能够快速、安全地将任意支持 LangChain.js 的 LLM 与 MCP 服务器相连,构建灵活强大的智能 Agent。
🌟 为什么选择 mcp-use
?
mcp-use
提供了统一且简洁的接口,帮助你迅速构建能够自由调用各类工具的智能代理,省去繁琐的整合环节,让你专注于业务逻辑。
✨ 核心特性:
- 🚦 极致简单:数行代码即可搭建一个可用的智能代理。
- 🔧 LLM 灵活性:与任意支持工具调用的 LangChain.js LLM 兼容。
- 🌐 HTTP/SSE 支持:轻松连接 MCP 服务器。
- 🔄 动态服务器选择:Agent 可实时动态地选择合适的服务器。
- 🧩 多服务器支持:轻松实现多种 MCP 服务器同时使用。
- 🔒 工具权限控制:限制敏感或危险工具的调用。
- 🛠️ 完全定制化:可以基于 LangChain.js 创建自定义 Agent 或实现新的适配器。
⚡ 快速开始
📦 安装依赖
bash
npm install mcp-use langchain @langchain/openai dotenv
创建 .env
文件:
ini
OPENAI_API_KEY=your_api_key
🛠️ 示例代码
typescript
import { ChatOpenAI } from '@langchain/openai';
import { MCPAgent, MCPClient } from 'mcp-use';
import 'dotenv/config';
async function main() {
const config = {
mcpServers: {
playwright: { command: 'npx', args: ['@playwright/mcp@latest'] }
}
};
const client = MCPClient.fromDict(config);
const llm = new ChatOpenAI({ modelName: 'gpt-4o' });
const agent = new MCPAgent({ llm, client, maxSteps: 20 });
const result = await agent.run('Find the best restaurant in Tokyo using Google Search');
console.log('🔍 结果:', result);
}
main().catch(console.error);
🗂️ 使用配置文件
可通过 JSON 文件统一管理 MCP 服务器配置:
json
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
加载配置文件:
typescript
import { MCPClient } from 'mcp-use';
const client = MCPClient.fromConfigFile('./mcp-config.json');
🌍 多服务器高级用法
typescript
const config = {
mcpServers: {
airbnb: { command: 'npx', args: ['@openbnb/mcp-server-airbnb'] },
playwright: { command: 'npx', args: ['@playwright/mcp@latest'] }
}
};
const client = MCPClient.fromDict(config);
const agent = new MCPAgent({ llm, client, useServerManager: true });
await agent.run('Search Airbnb in Barcelona, then Google restaurants nearby');
🔐 精细的权限控制
typescript
const agent = new MCPAgent({
llm,
client,
disallowedTools: ['file_system', 'network']
});
📖 参与贡献
mcp-use
项目完全开源,欢迎开发者们提出 issue 或发起 PR!
如果你觉得 mcp-use
不错,欢迎给项目一个 GitHub star。你的点赞是我们持续优化和进步的动力!