使用 mcp-use 轻松打造连接 LLM 和 MCP 的 Typescript 工具

在开发 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。你的点赞是我们持续优化和进步的动力!

相关推荐
橙子家40 分钟前
Serilog 日志库简单实践(二):控制台与调试 Sinks(.net8)
后端
扯蛋43841 分钟前
LangChain的学习之路( 一 )
前端·langchain·mcp
Mr.Jessy1 小时前
Web APIs学习第一天:获取 DOM 对象
开发语言·前端·javascript·学习·html
想不明白的过度思考者1 小时前
Rust——异步递归深度指南:从问题到解决方案
开发语言·后端·rust
ConardLi2 小时前
Easy Dataset 已经突破 11.5K Star,这次又带来多项功能更新!
前端·javascript·后端
芒克芒克2 小时前
ssm框架之Spring(上)
java·后端·spring
冴羽2 小时前
10 个被严重低估的 JS 特性,直接少写 500 行代码
前端·javascript·性能优化
rising start2 小时前
四、CSS选择器(续)和三大特性
前端·css
冒泡的肥皂2 小时前
MVCC初学demo(二
数据库·后端·mysql
追逐时光者2 小时前
一款基于 .NET WinForm 开源、轻量且功能强大的节点编辑器,采用纯 GDI+ 绘制无任何依赖库仅仅100+Kb
后端·.net