雪花堡MCP
手和眼睛 鼻涕 --通过Chrome(兼容SSO/MFA)将Claude连接到任何ServiceNow实例,以便SNODGE可以检查、执行和验证演示数据脚本。
学分
这个项目由两个人承担:
- 帕特里克·斯皮勒 --SNODGE概念的创建者:ServiceNow的演示数据生成应该是自动化的、模块化的、对SC友好的。CSDM第一种方法、4脚本架构、基于前缀的清理——都是Patrick的设计。
- 阿德里安·马恩 --原始MCP服务器代码。Adrian构建了第一个可用的ServiceNow MCP服务器,证明了Claude可以直接与ServiceNow实例通信。这个项目通过基于Chrome的身份验证扩展了他的基础。
______________________________________________________________________
Snowforge+SNODGE如何协同工作
鼻涕 (克劳德项目)是大脑——它知道要创建什么数据,以什么顺序,用什么陷阱。它使用GlideRecord生成背景脚本+ setWorkflow(false).
雪堡 (这个MCP服务器)是手——它连接到实例,收集真实数据,执行脚本,并验证结果。
┌─────────────────────────────────────────────────────┐
│ Claude Desktop (with SNODGE Project) │
│ │
│ 1. User: "Generate ITSM data for Acme Healthcare" │
│ │
│ 2. Snowforge: inspect instance │
│ ├── describe_table → field schemas │
│ ├── list_records → real group/user sys_ids │
│ └── check_table_exists → plugin verification │
│ │
│ 3. SNODGE: generate scripts using real data │
│ └── ES5, setWorkflow(false), prefix-based │
│ │
│ 4. Snowforge: execute + verify │
│ ├── run_script → submit to Background Scripts │
│ └── list_records → confirm records created │
└─────────────────────────────────────────────────────┘设置
先决条件
安装
# Clone the repo
git clone https://github.com/h22fred/snowforge.git
cd snowforge
# Copy server to a location outside ~/Documents (macOS sandbox workaround)
mkdir -p ~/.snowforge
cp server.py ~/.snowforge/server.py添加到克劳德桌面
添加 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"snowforge": {
"command": "/opt/homebrew/bin/uv",
"args": ["run", "--with", "mcp", "--with", "websockets", "python3", "/Users/YOUR_USERNAME/.snowforge/server.py"]
}
}
}注: 使用完整路径uv(奔跑which uv找到它)。Claude Desktop不会加载您的shell配置文件,所以很简单uv找不到。
注: 在macOS上,Claude Desktop的python子进程无法读取~/Documents由于沙盒。这就是为什么我们复制到~/.snowforge/.
重新启动克劳德桌面。Snowforge应显示为已连接的本地MCP服务器。
添加SNODGE项目
Snowforge只是一个工具——领域知识存在于一个名为 NOW数据生成器 (鼻涕)。将Snowforge添加到该项目中,这样克劳德既有头脑又有双手。
用法
- 连接:“连接到acmedemo”--Chrome打开您的实例
- 登录:SSO/MFA/无论您的实例使用什么
- 说“准备好了”:Claude提取会话Cookie
- 检查:Claude使用Snowforge从实时实例中收集组、用户和模式
- 生成:SNODGE使用真实的sys_ids生成后台脚本
- 执行:Snowforge通过以下方式运行脚本
run_script - 验证:Snowforge查询实例以确认记录存在
工具
| 工具 | 目的 |
|---|---|
connect_instance | 将Chrome浏览器启动到SN实例进行登录 |
complete_login | 登录后提取会话Cookie |
describe_table | 获取表架构(字段、类型、必填项、引用) |
list_records | 查询任何表——查找组、用户、rel类型、类别 |
get_record | 通过sys_id获取单个记录 |
check_table_exists | 在生成脚本之前,验证插件/表是否处于活动状态 |
validate_script | 执行前对脚本进行健全性检查(ES5合规性、PREFIX、setWorkflow、硬编码sys_ids) |
run_script | 执行后台脚本(服务器端JS、ES5) |
为什么不将REST API用于所有方面?
SNODGE生成GlideRecord脚本 setWorkflow(false),其中 绕过业务规则这对演示数据至关重要:
- 无状态转换限制(直接设置任何事件状态)
- 没有拒绝CSM案件的权利检查
- 没有自动生成的活动覆盖您的数据
- K8s/云表没有跨范围删除限制
REST API符合所有业务规则,使得批量数据生成变得脆弱。通过后台脚本的GlideRecord脚本是完成这项工作的正确工具。Snowforge的作用是使这些脚本更智能(真正的sys_ids)和更易于运行(无需复制粘贴)。
许可证
麻省理工学院
