Back to MCP directory
publicPublicdnsLocal runtime

device42-mcp

Device42 MCP服务器是一个用于Device42 IT资产管理系统的MCP服务器实现,支持通过AI助手查询和管理设备、IP地址、子网、机架等资产信息,提供读写操作和DOQL高级查询功能。

article

README

🚀 Device42 MCP 服务器

Device42 MCP 服务器是用于 Device42 IT 资产管理的解决方案,采用 Node.js/TypeScript 实现。它能帮助用户更高效地管理 IT 资产,提供便捷的查询和操作功能。

npm version Docker Pulls

✨ 主要特性

  • 零安装:可直接使用 npx device42-mcp 运行。
  • 快速:使用原生 fetch(Node 18+),无需沉重的 HTTP 库。
  • 类型安全:完全采用 TypeScript 编写。
  • 依赖极少:仅依赖 @modelcontextprotocol/sdkzod
  • 读写模式:设置 D42_READONLY=false 可启用写操作。
  • DOQL 支持:可使用 Device42 强大的查询语言执行复杂查询。

💻 使用示例

示例问题

配置完成后,你可以向 AI 助手提出如下问题:

基础查询

  • "列出纽约数据中心的所有设备"
  • "服务器 web - prod - 01 的 IP 地址是什么?"
  • "显示所有运行 Ubuntu 的设备"
  • "哪些设备在 A - 15 机架中?"
  • "查找所有标记为 '生产' 的设备"

网络与 IP 管理

  • "10.0.1.0/24 子网中有哪些可用 IP?"
  • "显示分配给数据库服务器的所有 IP"
  • "列出总部大楼中的所有 VLAN"
  • "192.168.1.50 在哪个子网中?"

基础设施概述

  • "提供伦敦数据中心所有机架的摘要"
  • "每个操作系统有多少台设备?"
  • "列出所有建筑物及其房间数量"
  • "我们使用了哪些硬件型号?"

DOQL 查询(高级)

服务器支持 DOQL(Device42 对象查询语言),可实现复杂的跨表查询:

  • "运行 DOQL 查询,查找过去 30 天内添加的、内存超过 64GB 的所有设备"
  • "使用 DOQL 生成按部门和服务级别分组的设备报告"
  • "查询所有虚拟机及其主机关系"
  • "查找保修在未来 90 天内到期的设备"

AI 可能生成的 DOQL 示例:

SELECT d.name, d.ram, d.first_added 
FROM view_device_v1 d 
WHERE d.ram > 65536 
AND d.first_added > NOW() - INTERVAL '30 days'

🚀 快速开始

无需安装,只需将其添加到 MCP 客户端配置中:

Cursor(npx)

添加到 ~/.cursor/mcp.json

{
  "mcpServers": {
    "device42": {
      "command": "npx",
      "args": ["-y", "device42-mcp"],
      "env": {
        "D42_URL": "https://your-device42.com",
        "D42_USERNAME": "api-user",
        "D42_PASSWORD": "api-password",
        "D42_VERIFY_SSL": "true",
        "D42_READONLY": "true"
      }
    }
  }
}

Cursor(Docker)

添加到 ~/.cursor/mcp.json

{
  "mcpServers": {
    "device42": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "D42_URL=https://your-device42.com",
        "-e", "D42_USERNAME=api-user",
        "-e", "D42_PASSWORD=api-password",
        "-e", "D42_VERIFY_SSL=true",
        "-e", "D42_READONLY=true",
        "killcity/device42-mcp:latest"
      ]
    }
  }
}

Claude Desktop(npx)

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "device42": {
      "command": "npx",
      "args": ["-y", "device42-mcp"],
      "env": {
        "D42_URL": "https://your-device42.com",
        "D42_USERNAME": "api-user",
        "D42_PASSWORD": "api-password",
        "D42_VERIFY_SSL": "true",
        "D42_READONLY": "true"
      }
    }
  }
}

Claude Desktop(Docker)

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "device42": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "D42_URL=https://your-device42.com",
        "-e", "D42_USERNAME=api-user",
        "-e", "D42_PASSWORD=api-password",
        "-e", "D42_VERIFY_SSL=true",
        "-e", "D42_READONLY=true",
        "killcity/device42-mcp:latest"
      ]
    }
  }
}

📦 安装指南

全局安装

npm install -g device42-mcp
device42-mcp

从源代码安装

git clone https://github.com/killcity/device42-mcp.git
cd device42-mcp
npm install
npm run build
node dist/index.js

Docker(独立运行)

docker pull killcity/device42-mcp:latest

docker run -i --rm \
  -e D42_URL="https://your-device42.com" \
  -e D42_USERNAME="user" \
  -e D42_PASSWORD="pass" \
  -e D42_VERIFY_SSL="true" \
  -e D42_READONLY="true" \
  killcity/device42-mcp:latest

或者本地构建:

docker build -t device42-mcp:latest .

📚 详细文档

环境变量

| 属性 | 是否必需 | 默认值 | 详情 | |------|----------|---------|-------------| | D42_URL | 是 | - | Device42 实例的 URL | | D42_USERNAME | 是 | - | API 用户名 | | D42_PASSWORD | 是 | - | API 密码 | | D42_VERIFY_SSL | 否 | true | 验证 SSL 证书 | | D42_READONLY | 否 | true | 仅暴露读操作 |

可用工具

读操作

  • list_devicesget_deviceget_device_by_namesearch_devices
  • list_ipsget_ipsearch_ips_by_device
  • list_subnetsget_subnet
  • list_racksget_rack
  • list_roomsget_room
  • list_buildingsget_building
  • list_vlansget_vlan
  • list_softwareget_software
  • list_business_appsget_business_app
  • list_app_componentsget_app_component
  • list_hardware_modelslist_operating_systemslist_vendors
  • doql_query - 执行原始 DOQL 查询以进行复杂数据检索

写操作(当 D42_READONLY=false 时)

  • create_deviceupdate_device
  • assign_ip_to_devicerelease_ip
  • create_subnetcreate_rackcreate_roomcreate_building

🔧 技术细节

开发

# 以开发模式运行
npm run dev

# 构建
npm run build

# 运行构建后的版本
npm start

📄 许可证

本项目采用 MIT 许可证。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client