Unified MCP Client Library for TypeScript

Unified MCP Client Library for TypeScript

site icon
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 等)

安装教程

  1. 使用 npm 安装:
npm install easy-mcp-use
  1. 或从源代码安装:
git clone https://github.com/dforel/easy-mcp-use.git
cd easy-mcp-use
npm install
npm run build
  1. 安装 LangChain 提供者(例如 OpenAI):
npm install @langchain/openai
  1. .env 文件中添加 API 密钥:
OPENAI_API_KEY=
ANTHROPIC_API_KEY=

调试方式

  1. 启动代理示例代码:
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);
  1. 检查控制台输出以验证代理是否正常运行。

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。