
conardli/mcp-client-nodejs
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
conardli/mcp-client-nodejs は、https://github.com/conardli/mcp-client-nodejs. からインポートされたMCPサーバー候補です。
概要
conardli/mcp-client-nodejs は、https://github.com/conardli/mcp-client-nodejs. からインポートされたMCPサーバー候補です。
概要(AI 翻訳)
项目介绍
MCP Client 是一個基于 Model Context Protocol 的 Node.js 客户端实现(使用 Function Calling),它允许您的应用连接到各种 MCP 服务器,并通过大语言模型(LLM)与これらのサーバー交互。MCP(模型上下文协议)是一个开放协议,用于标准化应用程序向 LLM 提供上下文的方式。
核心特性
- 支持接続任何符合 MCP 标准的服务器
- 支持兼容 OpenAI API 格式的 LLM 能力
- 自动发现和使用服务器提供的工具
- 完善的日志記録システム,包括 API 請求和工具调用
- 交互式命令行界面
- 支持工具调用和结果处理
系统要求
- Node.js 17 または更高版本
- LLM API 密钥(暂不支持 Ollama)
- 磁盘空间用于存储日志文件(位于
logs/目录)
安装
1.克隆仓库
2.安装依赖
所需依赖项:
- @modelcontextprotocol/SDK
- openai
- ドテンヴ
- typescript(开发依赖)
- @types/node(开发依赖)
3.配置环境变量
复制示例环境变量文件并设置您的 LLM API 密钥:
その後編集 .env 文件,填入您的 LLM API 密钥、模型提供商 API 地址、以及模型名称:
4.编译项目
使用方法
要启动 MCP 客户端,您可以使用以下几种方式:
1.直接指定服务器脚本路径
其中 是指向 MCP 服务器脚本的路径,可以是 JavaScript (.js) 或 Python (.py) 文件。
2.使用配置文件
其中 是配置文件中定义的服务器名称, 是包含服务器定义的 JSON 文件的路径。
3.使用 npm 包(npx)
您可以直接通过 npx 运行这个包,无需本地克隆和构建:
注意:需要在当前运行目录的 .env 配置模型相关信息
示例
直接接続 JavaScript MCP 服务器:
直接接続 Python MCP 服务器:
使用配置文件连接服务器:
使用 npx 运行:
工作原理
- 服务器连接:客户端连接到指定的 MCP 服务器
- 工具发现:自动获取服务器提供的可用工具列表
- 查询处理:
- 将用户查询发送给 LLM
- LLM 決定是否需要使用工具
- 如果需要,客户端通过服务器执行工具调用
- 将工具結果返回给 LLM
- LLM 提供最終回复
- 交互式循环:用户可以不断输入查询,直到输入"quit"退出
日志系统
このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。
README
以下は原文 README の抜粋です。原文を見る。
项目介绍
MCP Client 是一个基于 Model Context Protocol 的 Node.js 客户端实现(使用 Function Calling),它允许您的应用连接到各种 MCP 服务器,并通过大语言模型(LLM)与这些服务器交互。MCP(模型上下文协议)是一个开放协议,用于标准化应用程序向 LLM 提供上下文的方式。
核心特性
- 支持连接任何符合 MCP 标准的服务器
- 支持兼容 OpenAI API 格式的 LLM 能力
- 自动发现和使用服务器提供的工具
- 完善的日志记录系统,包括 API 请求和工具调用
- 交互式命令行界面
- 支持工具调用和结果处理
系统要求
- Node.js 17 或更高版本
- LLM API 密钥(暂不支持 Ollama)
- 磁盘空间用于存储日志文件(位于
logs/目录)
安装
1. 克隆仓库
git clone https://github.com/ConardLi/mcp-client-nodejs.git
cd mcp-client-nodejs
2. 安装依赖
npm install
所需依赖项:
- @modelcontextprotocol/sdk
- openai
- dotenv
- typescript(开发依赖)
- @types/node(开发依赖)
3. 配置环境变量
复制示例环境变量文件并设置您的 LLM API 密钥:
cp .env.example .env
然后编辑 .env 文件,填入您的 LLM API 密钥、模型提供商 API 地址、以及模型名称:
OPENAI_API_KEY=your_api_key_here
MODEL_NAME=xxx
BASE_URL=xxx
4. 编译项目
npm run build
使用方法
要启动 MCP 客户端,您可以使用以下几种方式:
1. 直接指定服务器脚本路径
node build/index.js
其中 `` 是指向 MCP 服务器脚本的路径,可以是 JavaScript (.js) 或 Python (.py) 文件。
2. 使用配置文件
node build/index.js
其中 是配置文件中定义的服务器名称, 是包含服务器定义的 JSON 文件的路径。
{
"mcpServers": {
"time": {
"command": "node",
"args": [
"/Users/xxx/mcp/dist/index.js"
],
"description": "自定义 Node.js MCP服务器"
},
"mongodb": {
"command": "npx",
"args": [
"mcp-mongo-server",
"mongodb://localhost:27017/studentManagement?authSource=admin"
]
}
},
"defaultServer": "mongodb",
"system": "自定义系统提示词"
}
3. 使用 npm 包(npx)
您可以直接通过 npx 运行这个包,无需本地克隆和构建:
# 直接连接脚本
$ npx mcp-client-nodejs /path/to/mcp-server.js
# 通过配置文件连接
$ npx mcp-client-nodejs mongodb ./mcp-servers.json
注意:需要在当前运行目录的 .env 配置模型相关信息
示例
直接连接 JavaScript MCP 服务器:
node build/index.js /path/to/weather-server/build/index.js
直接连接 Python MCP 服务器:
node build/index.js /path/to/mcp-server.py
使用配置文件连接服务器:
node build/index.js mongodb ./mcp-servers.json
使用 npx 运行:
# 直接连接脚本
$ npx mcp-client-nodejs /path/to/mcp-server.js
# 通过配置文件连接
$ npx mcp-client-nodejs mongodb./mcp-servers.json
工作原理
- 服务器连接:客户端连接到指定的 MCP 服务器
- 工具发现:自动获取服务器提供的可用工具列表
- 查询处理:
- 将用户查询发送给 LLM
- LLM 决定是否需要使用工具
- 如果需要,客户端通过服务器执行工具调用
- 将工具结果返回给 LLM
- LLM 提供最终回复
- 交互式循环:用户可以不断输入查询,直到输入"quit"退出
日志系统
MCP Client 包含一个全面的日志系统,详细记录所有关键操作和通信。日志文件保存在 logs/ 目录中,以 JSON 格式存储,方便查询和分析。
日志类型
- LLM 的请求和响应 - 记录与 LLM API 的所有通信
- 工具调用和结果 - 记录所有工具调用参数和返回结果
- 错误信息 - 记录系统运行期间的任何错误
日志命名和格式
日志文件连统命名为 [index] [log_type] YYYY-MM-DD HH:MM:SS.json,包含序号、日志类型和时间戳,方便按时间顺序查看整个会话。
架构设计
MCP Client 基于模块化的客户端-服务器架构:
- 传输层:使用 Stdio 传输机制与服务器通信
- 协议层:使用 MCP 协议处理请求/响应和工具调用
- 模型层:通过 OpenAI SDK 提供 LLM 能力
核心组件
インストール
npx mcp-mongo-server mongodb://localhost:27017/studentManagement?authSource=admin設定
{
"mcpServers": {
"time": {
"command": "node",
"args": [
"/Users/xxx/mcp/dist/index.js"
],
"description": "自定义 Node.js MCP服务器"
},
"mongodb": {
"command": "npx",
"args": [
"mcp-mongo-server",
"mongodb://localhost:27017/studentManagement?authSource=admin"
]
}
},
"defaultServer": "mongodb",
"system": "自定义系统提示词"
}