Back to MCP directory
publicPublicdnsLocal runtime

langchain-mcp-tools-ts

该项目是一个将MCP服务转换为LangChain工具的TypeScript工具库,简化了在LangChain中使用MCP服务器工具的过程。

article

README

🚀 MCP 工具箱

MCP 工具箱(MCP,即 Model Configuration Protocol)致力于简化与模型配置协议相关的工作流程。用户可借助配置文件或命令行参数,轻松启动和管理 MCP 服务器,并通过统一接口与之交互。

🚀 快速开始

MCP 工具箱能让你轻松地启动和管理 MCP 服务器。启动前,你需要先完成安装,然后可根据需求配置本地或远程 MCP 服务。

✨ 主要特性

  • 多方式安装:支持通过 npm 或 yarn 进行安装。
  • 灵活配置:可通过配置文件或命令行参数启动本地 MCP 服务,也能连接远程 MCP 服务。
  • 丰富功能:支持认证、错误输出重定向等功能,还具备实验性的远程服务支持。

📦 安装指南

你可以通过 npm 或 yarn 安装 MCP 工具箱:

npm install mcp-toolbox
# 或者
yarn add mcp-toolbox

安装完成后,可以在任意 JavaScript 文件中引入并使用它:

const mcpToolbox = require('mcp-toolbox');
// 或者
import { default as mcpToolbox } from 'mcp-toolbox';

💻 使用示例

基础用法

配置本地 MCP 服务器

const config = {
    "local-server": {
        command: 'node my-mcp-server.js',
        args: ['--port', '3000']
    }
};

// 启动服务器
mcpToolbox.start(config);

连接远程 MCP 服务

const config = {
    "remote-server": {
        url: 'http://example.com/mcp'
    }
};

// 连接远程服务器
mcpToolbox.connect(config);

高级用法

启动本地服务器并捕获日志

const mcpToolbox = require('mcp-toolbox');
const fs = require('fs');

// 创建日志文件描述符
const logFd = fs.openSync('mcp-server.log', 'w');

const config = {
    "local-mcp": {
        command: './server.js',
        args: ['--mode', 'production'],
        cwd: '/path/to/working/dir',
        stderr: logFd
    }
};

// 启动服务器
mcpToolBox.start(config);

连接到需要 OAuth 认证的远程服务

const mcpToolbox = require('mcp-toolbox');
const { MyOAuthProvider } = require('./auth');

const config = {
    "remote-mcp": {
        url: 'https://example.com/mcp',
        sseOptions: {
            authProvider: new MyOAuthProvider()
        }
    }
};

// 连接远程服务器
mcpToolbox.connect(config);

📚 详细文档

基本配置

| 属性 | 详情 | |------|------| | command | 启动本地 MCP 服务的命令 | | args | 传递给命令的参数数组 | | url | 远程 MCP 服务的 URL |

高级配置

| 属性 | 详情 | |------|------| | cwd | 执行命令时的工作目录 | | stderr | 捕获错误输出的文件描述符 | | authProvider | 对于需要身份验证的服务,提供自定义的身份验证提供程序 |

实验性功能

远程 MCP 服务支持

对于通过 SSE(Server-Sent Events)或 WebSocket 提供的远程 MCP 服务,配置如下:

const config = {
    "sse-server": {
        url: `http://${sse_server_host}:${sse_server_port}`
    },
    "websocket-server": {
        url: `ws://${websocket_server_host}:${websocket_server_port}`
    }
};

认证支持

如果你的 MCP 服务需要身份验证,可以通过自定义的身份验证提供程序来实现:

class MyOAuthProvider {
    authenticate() {
        // 实现你的认证逻辑
    }
}

const config = {
    "remote-server": {
        url: 'http://protected.example.com/mcp',
        sseOptions: {
            authProvider: new MyOAuthProvider()
        }
    }
};

错误输出重定向

通过指定 stderr 属性,你可以将错误输出重定向到自定义的文件或流:

const fs = require('fs');
const config = {
    "local-server": {
        command: 'node my-server.js',
        stderr: fs.openSync('error.log', 'w')
    }
};

限制

⚠️ 重要提示

  • 目前仅支持通过 Node.js 启动的本地 MCP 服务。
  • 对于远程服务,目前只支持 SSE 和 WebSocket 协议。

变更日志

| 版本号 | 发布时间 | 变更内容 | | ---- | ---- | ---- | | v1.0.0 | 2023-10-01 | 初始版本发布,包含基本功能和文档 | | v1.1.0 | 2023-11-01 | 新增对 WebSocket 的支持;优化了错误处理机制 |

更多文档

更多详细信息请参考 MCP 工具箱文档

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client