使用说明
项目简介
本项目 'langchain-mcp-tools-ts-usage' 是一个使用 TypeScript 开发的示例仓库,旨在演示如何将 Model Context Protocol (MCP) 服务器提供的工具集成到 LangChain 框架中。它展示了如何通过 '@h1deya/langchain-mcp-tools' 库,将多个 MCP 服务器的工具转换为 LangChain 兼容的工具,并应用于 LangChain ReAct Agent。
主要功能点
- MCP 工具集成: 演示如何使用 'convertMcpToLangchainTools' 函数将 MCP 服务器的工具转换为 LangChain 的 'StructuredTool' 数组。
- 本地 MCP 服务器启动: 提供了 'startRemoteMcpServerLocally' 工具函数,用于在本地启动基于 stdio 的 MCP 服务器,并支持 SSE 和 WebSocket 传输协议的测试。
- 多种 MCP 服务器配置: 示例配置了 'filesystem', 'fetch', 'weather' 等多种类型的 MCP 服务器,展示了如何通过命令或 URL 连接不同类型的服务器。
- SSE 认证示例: 包含一个简单的 SSE 认证服务器 ('sse-auth-test-server.ts') 和客户端 ('sse-auth-test-client.ts') 示例,演示了如何使用 OAuth 客户端提供程序进行安全连接。
- 日志和调试: 支持 MCP 服务器 stderr 重定向到文件,并提供简单的自定义日志记录器示例,方便调试和监控。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js (16+) 和 npm (7+)。
- 安装依赖: 克隆仓库后,在项目根目录下运行以下命令安装项目依赖:
npm install - 配置 API 密钥: 复制 '.env.template' 文件并重命名为 '.env',根据需要修改 '.env' 文件,填入 Anthropic 或 OpenAI 的 API 密钥 (如果需要使用 LLM)。
服务器配置
MCP 客户端需要配置用于连接的 MCP 服务器信息。以下是 'src/index.ts' 文件中 'mcpServers' 变量的配置示例,展示了如何配置不同类型的 MCP 服务器:
{ "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "." // 允许访问的目录路径,这里配置为当前目录 ] }, "fetch": { "command": "uvx", "args": [ "mcp-server-fetch" ] }, "weather": { "command": "npx", "args": [ "-y", "@h1deya/mcp-server-weather" ] } // 如果要测试 SSE 或 WebSocket 服务器,可以使用 url 字段配置,例如: // "weather": { // "url": "http://localhost:端口号/sse" // SSE 服务器 URL // }, // "weather": { // "url": "ws://localhost:端口号/message" // WebSocket 服务器 URL // } }
配置说明:
- server name: 服务器名称,例如 'filesystem', 'fetch', 'weather',用于在客户端代码中引用。
- command: (可选) 启动 MCP 服务器的命令,例如 'npx' 或 'uvx'。如果配置了 'command' 和 'args',客户端会自动启动本地 MCP 服务器。
- args: (可选) 启动 MCP 服务器命令的参数,以数组形式提供。
- url: (可选) 已运行的 MCP 服务器的 URL,例如 'http://localhost:端口号/sse' 或 'ws://localhost:端口号/message'。如果配置了 'url',客户端会连接到指定的远程服务器。
基本使用方法
-
运行主程序: 在项目根目录下运行以下命令启动主程序 'index.ts',该程序会加载配置的 MCP 服务器工具,并使用 LangChain ReAct Agent 回答问题:
npm start程序会输出提问内容和 Agent 的回答。
-
运行 SSE 认证测试: 要测试 SSE 认证示例,可以分别在两个终端窗口运行以下命令启动服务器和客户端:
npm run sse-auth-test-server # 启动 SSE 认证服务器 npm run sse-auth-test-client # 启动 SSE 认证客户端客户端会连接到 SSE 认证服务器,并测试 'echo' 工具。
信息
分类
开发者工具