
Unified MCP Client Library for TypeScript

2025.04.22
10
TypeScriptLLM 集成工具访问自定义代理开发效率
Easy-MCP-Use 是一个开源的 TypeScript 库,旨在连接任何大型语言模型(LLM)到任何 MCP 服务器,并构建具有工具访问能力的自定义代理,而无需使用闭源或应用程序客户端。它提供了丰富的功能,包括易用性、LLM 灵活性、HTTP 支持、动态服务器选择、多服务器支持等,适用于各种开发场景。
View on GitHub
Overview
基本能力
产品定位
Easy-MCP-Use 是一个开源的 TypeScript 库,旨在连接任何大型语言模型(LLM)到任何 MCP 服务器,并构建具有工具访问能力的自定义代理,而无需使用闭源或应用程序客户端。
核心功能
- 易用性:仅需 6 行 TypeScript 代码即可创建第一个 MCP 代理。
- LLM 灵活性:支持任何支持工具调用的 LangChain LLM(如 OpenAI、Anthropic、Groq、LLama 等)。
- HTTP 支持:直接连接到运行在特定 HTTP 端口上的 MCP 服务器。
- 动态服务器选择:代理可以从可用池中动态选择最适合的 MCP 服务器。
- 多服务器支持:在单个代理中同时使用多个 MCP 服务器。
- 工具限制:限制潜在危险工具(如文件系统或网络访问)。
- 类型安全:所有 API 和配置都有完整的 TypeScript 类型定义。
适用场景
- 连接 LLM 到 MCP 服务器以构建自定义代理。
- 实现复杂的工具访问工作流(如网页浏览、文件操作等)。
- 多服务器环境下的任务分配和动态选择。
工具列表
- MCPClient:用于管理和连接 MCP 服务器的客户端。
- MCPAgent:基于 LLM 的代理,用于执行任务和工具调用。
- LangChain 集成:支持多种 LLM 提供者(如 OpenAI、Anthropic 等)。
常见问题解答
- 如何安装 LangChain 提供者? 需要安装相应的 LangChain 提供者包(如
@langchain/openai
)。 - 如何配置 API 密钥? 在
.env
文件中添加 API 密钥(如OPENAI_API_KEY
)。 - 如何选择服务器? 可以通过配置文件或代码指定服务器。
使用教程
使用依赖
- Node.js 18+
- TypeScript 5.0+
- MCP 实现(如 Playwright MCP)
- LangChain 和适当的模型库(如 OpenAI、Anthropic 等)
安装教程
- 使用 npm 安装:
npm install easy-mcp-use
- 或从源代码安装:
git clone https://github.com/dforel/easy-mcp-use.git
cd easy-mcp-use
npm install
npm run build
- 安装 LangChain 提供者(例如 OpenAI):
npm install @langchain/openai
- 在
.env
文件中添加 API 密钥:
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
调试方式
- 启动代理示例代码:
import { MCPClient } from 'easy-mcp-use';
import { MCPAgent, MCPAgentOptions } from 'easy-mcp-use';
import { ChatOpenAI } from '@langchain/openai';
import dotenv from 'dotenv';
dotenv.config();
const openAIApiKey = process.env.openRouteApiKey;
if (!openAIApiKey) {
throw new Error("openAIApiKey environment variable is not set");
}
console.log(`openAIApiKey: ${openAIApiKey}`);
async function main() {
let config = {"mcpServers": {"http": {"url": "http://localhost:3001/sse"}}}
const client = MCPClient.fromConfig( config );
try {
const chat = new ChatOpenAI(
{
modelName: 'google/gemini-2.0-flash-exp:free',
streaming: true,
openAIApiKey: openAIApiKey,
configuration: {
baseURL: 'https://openrouter.ai/api/v1',
}
}
);
let options = {
client: client,
maxSteps: 30,
llm: chat,
}
let agent = new MCPAgent(options)
let result = agent.run(
`100 rmb can exchange how much doller?`
);
console.log( JSON.stringify(result) );
} finally {
// console.info('finally');
}
}
main().catch(console.error);
- 检查控制台输出以验证代理是否正常运行。