项目简介
'NinjaOneMCP' 是一个为NinjaONE远程监控与管理 (RMM) 平台设计的现代化MCP服务器实现。它允许大型语言模型 (LLM) 通过标准的Model Context Protocol (MCP) 访问和管理NinjaONE环境中的设备、组织、警报等,从而实现自动化和智能化的IT运营。该服务器提供了丰富的API覆盖和多种通信传输选项,能够将复杂的IT管理操作转化为LLM可理解和调用的工具。
主要功能点
- 设备管理: 通过工具实现对IT设备的列出、获取详细信息、重启、设置维护模式以及运行脚本等操作。
- 补丁管理: 支持对操作系统和软件进行补丁扫描和部署,确保系统更新及时。
- 服务控制: 提供对Windows服务的管理能力,包括启动、停止、重启和配置服务启动类型。
- 组织管理: 获取组织列表、组织详情、位置信息和策略,方便LLM了解企业结构。
- 联系人与用户管理: 包含全面的联系人创建、读取、更新、删除 (CRUD) 操作,以及对端用户和技术人员的列表与详情查询。
- 警报管理: 检索系统警报、获取特定警报详情,并支持对警报进行重置/确认操作。
- 全面查询: 提供超过21个查询端点,涵盖:
- 系统信息: 杀毒状态、威胁、计算机系统、设备健康、操作系统、登录用户等。
- 硬件详情: 处理器、磁盘、卷、网络接口、RAID控制器和驱动器等。
- 软件和补丁: 已安装软件、OS补丁、软件补丁、补丁安装历史等。
- 自定义字段与策略: 标准和作用域自定义字段,以及策略覆盖信息。
- 备份统计: 查询备份使用情况。
- 多种传输协议: 支持STDIO (标准输入输出)、HTTP (超文本传输协议) 和 SSE (Server-Sent Events) 传输,以适应不同类型的MCP客户端和应用场景。
安装步骤
-
准备环境: 确保您的系统已安装 Node.js 18+。如果您在Windows环境下进行开发,建议安装 PowerShell 7+。
-
获取OAuth凭据: 您需要从NinjaONE平台获取OAuth客户端凭据,包括 客户端ID (Client ID) 和 客户端密钥 (Client Secret)。这些凭据是MCP服务器连接NinjaONE API所必需的。
-
安装选项一:MCPB捆绑包 (推荐用于Claude Desktop等MCP兼容客户端):
- 从本项目的GitHub仓库下载最新的 'ninjaone-rmm.mcpb' 捆绑文件。这个文件是一个包含所有编译代码和依赖的生产就绪包。
- 通过您的MCP客户端安装此捆绑包(例如,Claude Desktop支持通过拖放或导入功能安装MCPB文件)。
- 安装后,点击已安装扩展的“配置”按钮。在弹出的配置界面中,输入您的NinjaONE API 基本URL (例如 'https://app.ninjarmm.com' 或 'https://eu.ninjarmm.com')、您的OAuth 客户端ID 和 客户端密钥。请注意,此服务器使用OAuth2客户端凭据流进行认证,因此不需要刷新令牌。
-
安装选项二:从源码安装 (适用于开发和高级用户):
- 克隆仓库: 在您的本地机器上执行以下命令克隆项目: 'git clone https://github.com/Lungshot/NinjaOneMCP.git'
- 进入项目目录: 'cd NinjaOneMCP'
- 安装依赖: 'npm install'
- 构建项目: 在运行服务器前,需要编译TypeScript代码: 'npm run build'
服务器配置 (供MCP客户端连接用)
MCP客户端(例如Claude Desktop)连接此MCP服务器时,需要提供MCP服务器的启动命令和相关环境变量。通常,客户端的配置文件中会包含一个 'mcpServers' 部分,用于定义各个MCP服务器的连接信息。
MCP客户端配置示例 (JSON格式,请勿直接复制,根据实际情况调整参数值):
{ "mcpServers": { "ninjaone": { "command": "node", "args": [ "C:\\Path\\to\\NinjaOneMCP\\dist\\index.js" ], "cwd": "C:\\Path\\to\\NinjaOneMCP", "env": { "NINJA_CLIENT_ID": "<您的OAuth客户端ID>", "NINJA_CLIENT_SECRET": "<您的OAuth客户端密钥>", "NINJA_BASE_URL": "https://api.ninjarmm.com", // 根据您的NinjaONE区域调整,例如 https://eu.ninjarmm.com (欧洲), https://us2.ninjarmm.com (美国2区) "MCP_MODE": "stdio", // 指定使用STDIO传输协议,这是MCP客户端连接的标准方式。 "LOG_LEVEL": "info" // 可选:设置日志级别为调试信息 (debug) 或警告 (warn) 等。 } } } }
重要参数说明:
- 'command': MCP服务器的可执行文件。对于基于Node.js的项目,通常设置为 'node'。
- 'args': 传递给 'command' 的参数列表。这里指向的是您项目编译后的入口文件路径,例如 'C:\Path\to\NinjaOneMCP\dist\index.js'。请确保路径与您的实际安装位置匹配。
- 'cwd': MCP服务器的工作目录。应设置为 'NinjaOneMCP' 项目的根目录路径,例如 'C:\Path\to\NinjaOneMCP'。
- 'env': 用于配置NinjaONE API凭据和服务器运行模式的环境变量:
- 'NINJA_CLIENT_ID': 您从NinjaONE获取的OAuth客户端ID。
- 'NINJA_CLIENT_SECRET': 您从NinjaONE获取的OAuth客户端密钥。
- 'NINJA_BASE_URL': 您的NinjaONE API区域性端点。例如,如果您的NinjaONE租户在欧洲,则设置为 'https://eu.ninjarmm.com'。
- 'MCP_MODE': 指定服务器与客户端通信的传输协议。对于MCP客户端连接,务必设置为 'stdio'。
- 'LOG_LEVEL': (可选)设置日志输出的详细程度,可以是 'error'、'warn'、'info' 或 'debug'。
基本使用方法
成功配置MCP服务器并连接到MCP客户端后,LLM即可通过调用该服务器暴露的工具来与NinjaONE RMM平台进行交互。LLM将根据其对用户指令的理解,智能地选择并执行适当的工具来完成任务。
例如,LLM可以:
- 通过调用 'get_devices' 工具获取所有或经过筛选的设备列表。
- 使用 'reboot_device' 工具安全地重启一个指定的设备。
- 调用 'query_antivirus_status' 工具查询特定设备或所有设备的杀毒软件状态。
- 通过 'get_organizations' 工具查看所有管理的客户组织信息。
- 利用 'apply_device_os_patches' 工具为设备部署操作系统补丁。
这些工具调用会返回JSON格式的数据,LLM能够解析这些数据并将其转化为用户友好的信息或执行后续操作。
信息
分类
开发者工具