Intune策略元数据转换工具

一个将原始OMA-URI/CSP路径字符串转换为结构化、人类可读的Intune策略元数据的MCP服务器,支持搜索800多个预构建的策略记录并从AI助手中解析人类可读名称到CSP键。

  • by UniverseCitiz3n
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 UniverseCitiz3n/IntuneRosetta-mcp

使用说明

IntuneRosetta mcp

A. 模型上下文协议(MCP) 服务器 将原始OMA-URI/CSP路径字符串转换为结构化、人类可读的Intune策略元数据 --搜索800多个预构建的策略记录,并将人类可读的名称解析为CSP密钥,所有这些都可以通过您的AI助手完成。

快速开始

无需本地安装。使用 npx 按需运行服务器:

npx github:UniverseCitiz3n/IntuneRosetta-mcp

先决条件: Node.js≥18 git 在PATH环境变量中可用。


在MCP客户端中安装

VS代码(GitHub副本)

一键安装:

平台 VS代码 VS代码内部人员
macOS/Linux
视窗

或手动添加到 .vscode/mcp.json 在您的工作区中(如果文件不存在,请创建该文件):

{
  "servers": {
    "intunerosetta": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "github:UniverseCitiz3n/IntuneRosetta-mcp"]
    }
  }
}

克劳德桌面

编辑您的Claude Desktop配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "intunerosetta": {
      "command": "npx",
      "args": ["-y", "github:UniverseCitiz3n/IntuneRosetta-mcp"]
    }
  }
}

克劳德代码

添加到您的项目 mcp.json 文件:

{
  "mcpServers": {
    "intunerosetta": {
      "command": "npx",
      "args": ["-y", "github:UniverseCitiz3n/IntuneRosetta-mcp"]
    }
  }
}

GitHub Copilot编码代理(存储库设置)

在您的存储库中 设置→ 副驾驶→ MCP服务器,添加:

{
  "mcpServers": {
    "intunerosetta": {
      "type": "local",
      "command": "npx",
      "args": ["-y", "github:UniverseCitiz3n/IntuneRosetta-mcp"],
      "tools": ["*"]
    }
  }
}

可用工具

工具 输入 描述
translate_csp_key key (string) 将原始下划线分隔的OMA-URI/CSP路径字符串转换为结构化、人类可读的策略元数据
batch_translate keys (string[]) 在一次调用中转换CSP路径字符串数组
search_policy query (字符串), limit (数字,可选) 按名称、描述、类别或CSP路径片段在策略数据库中进行模糊关键字搜索
resolve_to_csp query (字符串), limit (数字,可选) 将人类可读的策略名称或关键字解析为匹配的CSP密钥和完整元数据
extract_and_translate text (string) 从自由文本块(事件查看器XML、MDM诊断输出、JSON导出、日志文件)中提取所有OMA-URI/CSP路径,并翻译每个路径。返回已解析的策略元数据和未识别的路径列表
suggest_policy goal (字符串), context (字符串,可选), limit (数字,可选) 给定一个简单的英文安全或配置目标,返回与推荐的生产值和推理相匹配的CSP策略
refresh_kb force (布尔值,可选) 通过使用所有预定义的搜索词查询msgraph KB来重建本地KB。需要 MSGRAPH_KB_COMMAND 待设置

示例用法

翻译原始CSP密钥

translate_csp_key("device_vendor_msft_policy_config_defender_attacksurfacereductionrules_blockexecutionofpotentiallyobfuscatedscripts_2")

退货:

{
  "name": "Block execution of potentially obfuscated scripts",
  "description": "This rule detects suspicious properties within an obfuscated script.",
  "value": "2",
  "csp_path": "./Device/Vendor/MSFT/Policy/Config/Defender/AttackSurfaceReductionRules",
  "category": "Defender ASR",
  "docs_url": "https://learn.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender-atp/attack-surface-reduction"
}

按关键字搜索策略

search_policy("bitlocker startup authentication")

将人类可读的名称解析为CSP密钥

resolve_to_csp("block obfuscated scripts")

msgraph-kb集成(可选)

IntuneRosetta可以连接到 msgraph-kb MCP服务器 用实时的Microsoft Graph API元数据丰富其本地知识库。

设置以下环境变量以启用此集成:

变量 描述 示例
MSGRAPH_KB_COMMAND 用于启动msgraph-kb服务器的可执行文件 node 或 npx
MSGRAPH_KB_ARGS 传递给命令的参数以空格分隔 /path/to/msgraph-kb/dist/index.js

当 MSGRAPH_KB_COMMAND 设置后,IntuneRosetta在启动时自动在后台查询msgraph-kb,并填充本地数据库中任何缺失的记录。您还可以随时使用以下命令触发手动刷新 refresh_kb 工具。

示例——带有msgraph-kb集成的VS代码:

{
  "servers": {
    "intunerosetta": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "github:UniverseCitiz3n/IntuneRosetta-mcp"],
      "env": {
        "MSGRAPH_KB_COMMAND": "npx",
        "MSGRAPH_KB_ARGS": "-y github:UniverseCitiz3n/msgraph-kb-mcp"
      }
    }
  }
}

本地开发

克隆仓库,安装依赖项,然后构建:

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

将任何MCP客户端指向构建的二进制文件:

{
  "mcpServers": {
    "intunerosetta": {
      "command": "node",
      "args": ["/absolute/path/to/IntuneRosetta-mcp/dist/index.js"]
    }
  }
}

运行测试:

npm test

运作原理

启动时,服务器在内存中播种 SQLite数据库 基于预先构建的知识库(db/intune-policies.json,涵盖Windows、Linux和Apple ADE的800多条记录),并在上面应用一组手工策划的种子记录。记录包括:

  • normalized_key --下划线分隔的CSP路径(小写, device_vendor_msft_ 去掉前缀)
  • name / description --人类可读的标签和解释
  • csp_path --典型的oma-uri路径(例如。 ./Device/Vendor/MSFT/Policy/Config/Defender/AttackSurfaceReductionRules)
  • category --政策领域(例如。 Defender ASR, BitLocker, LAPS)
  • docs_url --链接到Microsoft文档
  • value_map --原始整数值到人类可读标签的映射(例如。 {"0":"Disabled","1":"Block","2":"Audit"})

当一 translate_csp_key 或 search_policy 调用到达后,服务器在SQLite中查找规范化密钥,附加解码值标签,并返回结构化 PolicyMetadata.

如果 MSGRAPH_KB_COMMAND 配置后,后台KB构建会查询 msgraph-kb MCP服务器 具有20个预定义的与Intune相关的搜索词,并将任何新结果添加到本地数据库中-Graph API端点无需手动管理。


为DB做出贡献

预先构建的知识库存在于 db/intune-policies.json如果你知道 对于丢失或不正确的保单记录,您可以通过拉取来提供 请求--请参阅 db/贡献.md 完全 指令、字段定义和验证规则。

简言之:

  1. 复制 db/contribution-template.json → db/contributions/<your-file>.json
  2. 填写您的记录(必填: normalized_key, name, csp_path, category)
  3. 跑 node scripts/validate-contributions.js 本地检查错误
  4. 打开PR--CI会自动验证文件

许可证

ISC