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

相关推荐
lbh5 分钟前
简单文本编辑器:基于原生JavaScript的智能文本选择工具栏
前端·javascript
元闰子6 分钟前
分离还是统一,这是个问题
后端·面试·架构
Jackson__7 分钟前
高效 AI 对话:如何写出更好的 Prompt
前端
典学长编程11 分钟前
前端开发(HTML,CSS,VUE,JS)从入门到精通!第三天(JavaScript)
前端·javascript·css·html·前端开发
寻月隐君15 分钟前
Rust Scoped Threads 实战:更安全、更简洁的并发编程
后端·rust·github
德育处主任18 分钟前
p5.js 用 beginGeometry () 和 endGeometry () 打造自定义 3D 模型
前端·前端框架·canvas
文火冰糖的硅基工坊29 分钟前
[硬件电路-124]:模拟电路 - 信号处理电路 - 测量系统的前端电路详解
前端·嵌入式硬件·fpga开发·架构·信号处理·电路
爷_1 小时前
手把手教程:用腾讯云新平台搞定专属开发环境,永久免费薅羊毛!
前端·后端·架构
山间小僧1 小时前
「查漏补缺」ZGC相关内容整理
java·jvm·后端
狂炫一碗大米饭1 小时前
如何在 Git 中检出远程分支
前端·git·github