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

相关推荐
遇见你...6 小时前
A01-Spring概述
java·后端·spring
代码匠心6 小时前
从零开始学Flink:TopN 榜单
大数据·后端·flink·flink sql·大数据处理
lizhongxuan8 小时前
Claude Code 防上下文爆炸:源码级深度解析
前端·后端
Warson_L9 小时前
Python 流程控制与逻辑
后端·python
糖炒栗子03269 小时前
架构笔记:应用配置无状态化 (Statelessness)
后端
Warson_L9 小时前
Python 四大组合数据类型 (Collection Types)
后端·python
柳杉9 小时前
震惊!字符串还能这么玩!
前端·javascript
查古穆9 小时前
大白话讲ReAct:大模型的“边想边干”
后端
于先生吖9 小时前
SpringBoot+MQTT 无人健身房智能管控系统源码实战
java·spring boot·后端
毕设源码-小云学姐10 小时前
计算机毕业设计springboot网上招聘系统 基于SpringBoot的在线人才对接平台设计与实现 SpringBoot框架下的数字化求职招聘服务系统开发
spring boot·后端·课程设计