mcp忍者
A. 模型上下文协议(MCP) 服务器 NinjaOne (前身为NinjaRMM),通过NinjaOne REST API v2为人工智能助手提供远程监控和管理的完全访问权限。
特性
19工具 分为五类:
设备管理
| 工具 | 说明 |
|---|---|
list_devices | 列出所有具有联机状态、操作系统、组织和最后联系人的受管设备 |
get_device | 获取详细的设备信息,包括硬件、代理版本和网络详细信息 |
get_device_activities | 获取设备的最近活动日志(警报、脚本、状态更改) |
get_device_os_patch_status | 查看设备的挂起、已安装和失败的操作系统补丁 |
get_device_software | 列出设备上安装的所有软件 |
get_device_processor_info | 获取设备的CPU/处理器详细信息 |
get_device_disks | 获取磁盘/存储信息,包括容量和可用空间 |
组织
| 工具 | 说明 |
|---|---|
list_organizations | 列出所有具有ID、名称和节点数的组织(客户/顾客) |
get_organization | 获取详细的组织信息,包括联系人、标签和策略分配 |
list_organization_devices | 列出属于特定组织的所有设备 |
get_organization_locations | 获取组织的配置位置 |
get_organization_policies | 获取组织的策略分配 |
警报和条件
| 工具 | 说明 |
|---|---|
list_alerts | 列出所有设备上的活动警报,可按严重程度进行筛选 |
list_device_alerts | 列出特定设备的所有活动警报 |
reset_alert | 通过UID重置(确认并清除)活动警报 |
list_alert_conditions | 列出所有配置的警报触发条件 |
维护窗口
| 工具 | 说明 |
|---|---|
list_maintenance_windows | 列出所有定期维护窗口 |
create_maintenance_window | 为设备创建维护窗口以抑制警报 |
cancel_device_maintenance | 取消活动维护窗口以重新启用警报 |
工作与自动化
| 工具 | 说明 |
|---|---|
list_running_jobs | 列出所有设备上当前正在运行的作业 |
get_device_jobs | 获取特定设备的所有作业(正在运行、已完成、失败) |
run_script_on_device | 在设备上执行已保存的脚本 |
安装
git clone git@github.com:fredriksknese/mcp-ninjaone.git
cd mcp-ninjaone
npm install
npm run build配置
服务器是通过环境变量配置的:
| 变量 | 必填 | 描述 |
|---|---|---|
NINJAONE_CLIENT_ID | 是 | NinjaOne API凭据中的OAuth2客户端ID |
NINJAONE_CLIENT_SECRET | 是 | OAuth2客户端机密来自NinjaOne API凭据 |
NINJAONE_INSTANCE | 是 | NinjaOne实例主机名(见下表) |
实例主机名
| 地区 | 主机名 |
|---|---|
| 美国 | app.ninjarmm.com |
| 欧盟 | eu.ninjarmm.com |
| 大洋洲 | oc.ninjarmm.com |
| 加拿大 | ca.ninjarmm.com |
正在创建API凭据
- 登录您的NinjaOne实例
- 导航至 管理>应用程序>API
- 点击 添加 创建新的API应用程序
- 选择 客户端凭据 作为授权流程
- 授予所需的范围:
monitoring,management,control,offline_access - 复制 客户端ID 和 客户端密钥
使用Claude Desktop
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"ninjaone": {
"command": "node",
"args": ["/absolute/path/to/mcp-ninjaone/dist/index.js"],
"env": {
"NINJAONE_CLIENT_ID": "your-client-id",
"NINJAONE_CLIENT_SECRET": "your-client-secret",
"NINJAONE_INSTANCE": "app.ninjarmm.com"
}
}
}
}使用Claude代码
添加到您的Claude Code MCP设置中:
claude mcp add ninjaone -- node /absolute/path/to/mcp-ninjaone/dist/index.js在运行之前设置所需的环境变量,或在MCP设置中配置它们。
示例提示
连接后,您可以向您的AI助手询问以下问题:
- *“显示当前脱机的所有设备”*
- *“我们在所有组织中都有哪些活动警报?”*
- *“在接下来的2小时内将设备1234置于维护模式”*
- *“列出Acme Corp组织的所有设备”*
- *“设备5678上安装了什么软件?”*
- *“显示设备1234的最近活动”*
- *“在设备9012上运行清理脚本”*
- *“当前在所有设备上运行的作业是什么?”*
- *“重置设备1234的所有次要警报”*
- *“设备5678上有哪些待处理的补丁?”*
发展
npm run dev # Run with tsx (auto-reloads)
npm run build # Compile TypeScript to dist/
npm start # Run compiled output建筑
src/
├── index.ts # Entry point — creates MCP server + STDIO transport
├── ninjaone-client.ts # HTTP client with OAuth2 client credentials flow
└── tools/
├── devices.ts # Device management and inventory (7 tools)
├── organizations.ts # Organization/client management (5 tools)
├── alerts.ts # Alert monitoring and acknowledgement (4 tools)
├── maintenance.ts # Maintenance window management (3 tools)
└── jobs.ts # Job execution and monitoring (3 tools)客户端自动处理OAuth2令牌生命周期——令牌在首次使用时提取,并在到期时(通常在1小时后)刷新。
需求
- Node.js 18+
- 已启用API访问的NinjaOne帐户
许可证
见许可证文件
