项目简介
该仓库提供一个基于 Node.js 实现的 Model Context Protocol (MCP) 服务器,并支持将其打包成独立的、无需安装 Node.js 环境即可运行的可执行文件(例如 'mcp_server.exe')。它实现了 MCP 协议的核心功能,用于为大型语言模型 (LLM) 客户端提供上下文信息和外部能力。
主要功能点
- 上下文服务核心: 按照 MCP 协议提供标准化的上下文服务,使 LLM 能够更好地理解和执行任务。
- 资源管理: 托管和管理各种数据资源,允许 LLM 通过标准方式访问信息。
- 工具调用: 注册和执行外部工具或服务,赋予 LLM 调用外部功能的能力。
- Prompt 定制: 支持定义和渲染 Prompt 模板,灵活控制 LLM 的交互方式。
- 多种连接方式: 支持现代 Streamable HTTP ( '/mcp' 端点) 和传统 SSE/消息 ( '/sse', '/messages' 端点) 等多种客户端连接协议。
- 高度可定制: 通过配置文件 ('--mcp-js' 参数) 自定义服务器名称、端口,以及注册自己的资源、工具和提示。
- 打包成可执行文件: 可以将整个服务器应用打包成一个跨平台的可执行文件,简化部署和分发。
安装步骤
- 确保你已经安装了 Node.js 环境 (建议使用 LTS 版本)。
- 克隆或下载本仓库到本地。
- 打开命令行终端,进入仓库目录。
- 运行以下命令安装项目依赖:
npm install - (可选)如果你想生成独立的可执行文件,可以运行对应的打包命令(例如 Windows 系统运行 'npm run package-win',macOS 系统运行 'npm run package-mac')。打包好的文件会在 'executables' 目录下。
服务器配置 (供 MCP 客户端使用)
MCP 服务器启动后,会监听一个端口并提供服务。MCP 客户端需要知道如何连接到这个服务器。通常,这涉及到在客户端的配置文件中指定服务器的名称、连接 URL 或启动服务器的命令和参数。
以下是一个典型的 MCP 客户端配置示例(JSON 格式),用于连接到本 MCP 服务器:
{ "mcpServers": { // 为你的服务器起一个唯一的名称,供客户端内部识别 "my-mcp-server-name": { // 选项 1: 直接指定服务器的连接 URL (适用于服务器已经运行的情况) // 如果使用 SSE 连接 (推荐用于兼容旧客户端或某些场景),URL 通常是 /sse // "url": "http://127.0.0.1:3000/sse", // 如果服务器配置支持,也可以使用现代 /mcp 端点 (Streamable HTTP) "url": "http://127.0.0.1:3000/mcp", // 选项 2: 指定启动服务器的命令和参数 (适用于客户端需要自动启动服务器的情况) // "command": "./path/to/your/executables/mcp_server", // "args": [ // // 服务器监听的端口号,客户端会尝试连接此端口 // "--port", "3000", // // 服务器名称,应与上面的键名保持一致或根据需要指定 // "--server-name", "my-mcp-server-name", // // 可选: 指定自定义 MCP 配置文件的路径,用于加载自定义资源、工具和提示 // "--mcp-js", "./path/to/your/custom-mcp-config.js" // ] } // 可以添加更多服务器配置 } }
重要提示:
- 你需要根据实际运行服务器的机器 IP 地址和端口号替换 '127.0.0.1' 和 '3000'。
- 如果你选择通过 'command' 和 'args' 启动服务器,请确保 'command' 指定的可执行文件路径或 Node.js 脚本路径是正确的,并且 '--mcp-js' 参数指向你的自定义配置文件(如果使用)。
- '/sse' 端点通常用于基于 Server-Sent Events 的传统连接,而 '/mcp' 端点用于基于 Streamable HTTP 的现代连接。选择哪一个取决于你的 MCP 客户端支持。服务器默认同时启用这两个端点。
基本使用方法
- 启动服务器:
- 使用 Node.js 环境:
npm start # 或在开发模式下 (通常有热重载等功能): npm run dev - 使用打包的可执行文件:
./executables/mcp_server # 或 (Windows): # .\executables\mcp_server.exe
- 使用 Node.js 环境:
- 使用自定义配置启动 (推荐):
你可以创建或修改 'examples/custom-mcp-config.js' 文件来定义你自己的资源、工具和提示。然后使用 '--mcp-js' 参数启动服务器:
npm start -- --mcp-js ./examples/custom-mcp-config.js # 或使用可执行文件: # ./executables/mcp_server --mcp-js ./examples/custom-mcp-config.js - 服务器启动后,你会在终端看到服务器正在监听的端口信息(默认为 3000)。
- 配置你的 MCP 客户端(参考上面的“服务器配置”部分),使其能够连接到这个运行中的 MCP 服务器。
- 通过你的 MCP 客户端,即可利用该服务器提供的资源、工具和提示能力与 LLM 进行交互。
信息
分类
开发者工具