@dforge-core/dforge-mcp (英语)
DForge 模块作者的 MCP 服务器 。 展出35个可相容工具和可相容计划,使AI代理(Claude Code,Cursor,Zed等)能够驱动整个模块生命周期——脚手架 实体 动作 视图 安全 安装——通过结构化工具调用而不是自由形式JSON一代.
船舶 5种克洛德技能 (单位:千美元)skills/:路由器加每生命周期阶段1个技能——设计(第0阶段)、建造(第1-5阶段)和船舶(第6阶段)——和 dforge-1c-import 1C信息库的Python工具箱 路由器目录载有25个参考文件(字段类型,旗帜,特征,公式,DSL,安全等)和两个注解的示例模块.
新来的? 开始 文件/创建模块.md ——用三种方式来分解一个模块(terminal CLI,VS Code sidebar,AI 向导)和选择每个模块的时间.
两个GitHub重置要知道: 此 MCP 服务器位于
dforge-core/dforge-mcpdForge平台本身(实体、验证人、本地CLI源)位于iash44/dForge-core- 参见homepage因为计划 + DSL 常规来自那里.
运行时间取决于什么
your AI editor (Claude Code / Cursor / Zed)
│
▼ stdio JSON-RPC
@dforge-core/dforge-mcp ← this package; pure JS / TS
│
▼ shells out for pack / install
@dforge-core/dforge-cli ← installed as a transitive dep; thin JS wrapper
│
▼ optionalDependencies
@dforge-core/dforge-cli-<platform> ← native C# binary per platform (~35 MB)
本地的二进制实际上与你的房客交谈。 npm-CLI包装器只是一个发射器,它选择了正确的平台二进制并执行. 您不需要单独安装 Dforge- cli ——当你安装dforge-mcp(或当 npx -y @dforge-core/dforge-mcp 运行冷.
服务器还捆绑 @dforge-core/metadata – 字段类型,特征,列类型和JSON schemas的无依赖性注册(dForge app,SDK,和VS代码扩展用法的同一套软件包). 这是以下作者时间验证的真相来源(有效) fieldTypeCd 编号 : columnType /特性代码, dbDatatype 和以物配主的计谋。 在建设时间被捆绑,所以没有额外的安装.
如果您想要使用手建的本地二进制, 而不是 npm 所发的, 点 DFORGE_CLI_BINARY 在可执行文件的绝对路径 :
DFORGE_CLI_BINARY=/Users/me/projects/dForge-core/cli/bin/dForge.Cli
(macOS / Linux:没有扩展名. 窗口 : dForge.Cli.exe. ) (中文(简体) ). 如果路径不存在或无法执行,服务器会在第一个包/安装调用时报告出错 .
对于AI辅助模块的修复,第6阶段是故意由工具驱动的:技能运行 dforge_module_validate, (中文(简体) ), dforge_module_pack,以及 dforge_module_install 自己来 如果由于模块无效而安装失败, 安装工具返回原始 CLI/ server 输出加 exitCode 财务报告和审定财务报表 command;AI读取了该输出,修正了被引用的模块文件,并重复验证了 → 包 → 安装. 仅需要用户对缺少CLI,缺失/过期证书,无法接触的租户/API,权限,或无效路径等环境故障采取行动.
将 + 线安装到 Claude 代码
建议——通过 claude mcp add (写~/.claude.json给你)
claude mcp add dforge --scope user -- npx -y @dforge-core/dforge-mcp
此附件为 ~/.claude.json (全局配置——您家目录中的单文件,无子目录). 重新启动 Claude 代码; 在启动服务器的第一个会话中, 您会看到“ 证明 MCP 服务器“ dforge ” —— 接受它 .
手册——每个项目
写入 .mcp.json 时间 重传根 (不低于 .claude/:
{
"mcpServers": {
"dforge": {
"command": "npx",
"args": ["-y", "@dforge-core/dforge-mcp"],
"env": {
"DFORGE_CLI_BINARY": "/optional/abs/path/to/dForge.Cli"
}
}
}
}
恢复Claude代码 – 立即批准.
检查它还活着
claude mcp list
# Should show: dforge — npx -y @dforge-core/dforge-mcp — connected
或Claude代码会话内,类型 /mcp 查看所有连接的服务器 + 其工具。 第35条 dforge_* 应列出工具.
光标 / Zed
一样 command + args 配置形状; 检查文件文件位置 。 核查是通过其各自的工具清单进行的.
它会暴露什么
工具(34个)
按向导流中的典型相相组合. 所有“ 返回” 工具弹出 { summary, files: { '<relPath>': '<contents>' } };客户端决定是否写作——让AI预览diffs在承诺前与用户一起.
第0阶段(身份-要求-设计-验证)由 dforge_module_plan 工具与 dforge-mcp-author 技能:工具从上盘跟踪进度 docs/ 文物和大门的脚手架,而大赦国际则在其指导下编写这些文物.
模块级
| 工具 | 行为 |
|---|---|
dforge_module_plan | 生命周期管弦乐手 - 驱动第0阶段(身份)-要求-设计-验证-大门 dforge_module_create 直至 readyToScaffold: true,然后通过分类账在 docs/phase.json。 。 。 . action: "check" 返回时 currentPhase + 键 nextSkill· ; complete_phase 记录已完成或跳过的一个阶段。 在任何会话中首先呼叫 |
dforge_module_create | 新建模块脚手架( 屏蔽到第0阶段通过) |
dforge_module_import | 导入已规范的 表格类型 (表-栏-关系)作为实体纳入现有单元。 推断 fieldTypeCd 从 SQL 类型/ 样本值/ 名称(元数据- 验证, dbDatatype 生成)并构建 FK+ 每段关系参考对. 由 DBML/SQL, Excel/CSV 或手发光谱所制成 |
dforge_module_inspect | 读取当前模块状态 。 完整的结构数据在 files["_inspect.json"]· ; summary 是一行数据 |
dforge_module_validate | 离线检查(在装包前运行): 拖放 FK 目标, 缺少隐藏的 FK 列, 视图/菜单/ 作用 refs to exist things, discovered moneys, 字段谱规则在每一个字段重新运行, (中文(简体) ), toString 模板 公式-vs-Generated set croups,缺少动作DSL文件,触发/工作点出不存在动作,DSL静态检查,以及翻译完整性. 错误 + 警告 files["_validate.json"] |
dforge_module_pack | 贝壳到 dforge-cli module pack 通过捆绑的CLI、PATH倒置,或 DFORGE_CLI_BINARY返回 tarball 路径+大小 |
dforge_module_install | 贝壳到 dforge-cli module install参数 : pathOrTarball选项 tenantUrl 编号 : token 编号 : tenantCode - 倒计时 DFORGE_URL 编号 : DFORGE_TOKEN 四. 回归 ok, (中文(简体) ), exitCode, (中文(简体) ), command,和原始的CLI output 因此AI可以修复安装时间模块缺陷并重试 |
实体(第一阶段)
| 工具 | 行为 |
|---|---|
dforge_entity_add | 在现有模块中添加一个实体. traits 接受完整的平台集——身份、审计、审计完整、软删除、分类、邮资、积累、分类账、期间 |
dforge_entity_rename | 重命名安全实体 移动文件(见 deletes),级联PK {old}_id → {new}_id,重新指向链接.entity / reference / 视图实体代码 / 角色键 / 行动实体 / 文件夹绑定 / 种子 |
dforge_entity_delete | 重构安全实体删除 —— 放下文件+种子(见 deletes),显示条目,角色密钥,文件夹绑定,视图源;对交叉实体FKs进行警告 |
dforge_entity_field_add | 补丁一个字段 |
dforge_entity_field_modify | 替换字段的光谱( 同名) |
dforge_entity_field_rename | 重命名 ——将新名称推广到对齐的引用,公式,视图列+顺序,种子数据,以及其他实体的FKs |
dforge_entity_field_remove | 重置安全删除 ——级联清洗对等 参考文献,视图列+顺序,种子密钥;对公式/跨实体依赖者发出警告 |
综合实体工具(第1阶段)——每个概念一个调用,更喜欢这些
每一个都跨出数个协调键 手动组装出错 它们存在 所以断裂的形状是无法表达的.
| 工具 | 输出 |
|---|---|
dforge_entity_reference_add | 整个关系:隐藏的FK(cuid编号 :EM(中文(简体) ) + 键 参考栏(R编号 :lookup编号 :link(中文(简体) ) + 键 页:1 references 输入。 所记录的# 1 被损坏模块的来源, 在一个调用中 。 同时通过重用已经创建的 FK 来完成半构建关系 |
dforge_entity_rollup_add | 儿童总数 已生成 (单位:千美元)G() 列 —— 从来不是一个公式, 其设置集合无声地变为空 —— 必要时创建父设置列, 拒绝聚合虚拟 F编号 :R编号 :S 儿童(column old.<field> does not exist(中文(简体) ) |
dforge_entity_status_add | 与一个下降 params.options 对象和初始值为 a formula - 实体字段没有 defaultValue 键 |
外地/实体工具 @dforge-core/metadata 登记册:未知 fieldTypeCd (例如:. integer, (中文(简体) ), reference, (中文(简体) ), columnType,或特性代码在作者时被拒绝,并带有"你的意思"提示,以及 dbDatatype 是从字段类型(货币)自动生成的 numeric(18,2),文本 —— varchar; 引用/公式列没有),除非您明确设置.
行为(第2阶段——任择)
| 工具 | 行为 |
|---|---|
dforge_action_add | DSL 脚本 + ui/actions.json 输入。 首先运行 DSL 静态检查器 — 错误拒绝调用 |
dforge_action_check | 固定检查a 草案 dslBody 犯罪前,或 actionCode 已经在磁盘上。 接头 TODAY() 内 execute:, (中文(简体) ), [field] 批次/工作上下文,块顺序,顶级 return, (中文(简体) ), :param 占位符,未知的主机函数 |
dforge_trigger_add | DB 事件触发器 logic/triggers.json (实体事件+任择条件+行动) |
dforge_job_add | 预定工作 logic/jobs.json (5-场克龙+超时+动作) |
dforge_webhook_add | 外出网点 logic/webhooks.json (实体活动 ) |
视图、菜单和报告(第3阶段)
| 工具 | 行为 |
|---|---|
dforge_view_add | 添加数据视图 |
dforge_view_modify | 替换视图的 spec |
dforge_menu_add | 添加菜单叶或节. 验证 dataViewCode 反对 data_views.json输出 itemType: "V" 只有叶子上,使图标与赤色窗体菜单相符合需要(条 bi-(中文(简体) ) |
dforge_report_add | 添加报告 |
波兰语( 第4阶段)
| 工具 | 行为 |
|---|---|
dforge_setting_add | 可配置模块级别设置 |
dforge_translation_sync | 生成/更新 translations/<locale>.json 从模块本身的内容。 永不覆盖已翻译的文本; 填写角色标签 安装时增强完整性默认值 supportedLocales 条目; 没有写入英文文件( 安装跳过) en*.json ——英语生活在定义中) |
dforge_seed_add | 为一个实体写入种子文件 。 强制数字 {entity}_id PKs 父母在孩子出生前的负载订单, audit-full 系统用户列和指向种子父母的FK |
安保(第5阶段)
| 工具 | 行为 |
|---|---|
dforge_role_add | 添加角色+权利矩阵. 如果角色已经存在, 则失败 - 脚手架预创 <code>.admin,因此使用 role_right_set 改为修改 |
dforge_role_right_set | 授予/撤销一个物体上的一条权利(廉价后退道) |
dforge_folder_add | 添加一个安全文件夹( 可选的 —— 大多数模块船, 有 root) |
交叉
| 工具 | 行为 |
|---|---|
dforge_dependency_add | 在另一个 dForge 模块上添加演示文稿 |
dforge_diagram_add | 创建或扩展一个命名的实体图, docs/diagrams/<code>.json (仅设计时间)——大型模块每个功能区一个. 取实体密钥和/或 fromFolder (一个文件夹的实体加上它的后人);只有附件,保留位置。 拒绝一个无法解决自己或依赖实体的密钥 |
dforge_dbml_import | DBML 前端 改为 module_import ——将 DBML (表格块、 已键入的列、 入行 + 顶级 refs) 解析到表格的光谱中, 将源 PK (身份提供) 解析 {entity}_id)和进口。 过 module 用于绿地导入 |
写入文件: 预览 vs apply
每个补丁工具返回 { summary, files, deletes? } 用于客户端写入,因此代理端可以先与用户预览diff. 通过 apply: true 而不是写文件(和荣誉) deletes直接返回,只返回被触碰的路径.
// preview (default) — full file contents come back through the model's context
{ "moduleDir": "/path/to/mod", "entityName": "order", "fieldName": "note", "field": { ... } }
// apply — writes to disk, returns { applied: true, written: [...], deleted: [...] }
{ "moduleDir": "/path/to/mod", "entityName": "order", "fieldName": "note", "field": { ... }, "apply": true }
使用 apply 用于已经批准的计划中的常规补丁,以及每个补丁 rename编号 :delete 重任——它保证 deletes 半则适用,这很容易手动下手。 它拒绝在外边写字 moduleDir,从不写 _inspect.json 编号 : _validate.json 编号 : _action_check.json 报告有效载荷,这些有效载荷只用于重用文件映射形状来运输.
资源
服务于MCP 并附有描述和MIME类型,因此代理在拉出前可以分辨出URI的用途.
| URI 模式 | 内容 |
|---|---|
dforge://schema/<name> | 杰森・斯克马斯: manifest, (中文(简体) ), entity, (中文(简体) ), domains, (中文(简体) ), data-views, (中文(简体) ), folders, (中文(简体) ), diagram, (中文(简体) ), menus, (中文(简体) ), roles, (中文(简体) ), jobs, (中文(简体) ), seed-data, (中文(简体) ), traits, (中文(简体) ), webhooks, (中文(简体) ), triggers, (中文(简体) ), print-templates, (中文(简体) ), settings, (中文(简体) ), reports |
dforge://reference/<name> | 25个每个元素的作者参考文献 — schema 形状 + 工作实例 + 一个元素类型的常见错误列表 |
dforge://example/<path> | 犬科的文件 simple-todo 模块(强制性结构验证器) |
dforge://example/matrix-budget/<path> | 来自 matrix (关键)视图示例 |
dforge://docs/conventions | 摩德林语-摩德林语-Md |
dforge://docs/dsl | 完整动作- DSL 语法、 内置、 模式、 反标本 |
dforge://script/xlsx-to-model | 斯德利布 Python .xlsx • 表谱提取器 |
Schemas + Conventions在从 iash44/dForge-core是因为 docs/出版的Npm 柏油丸将它们装入 resources/,而jsdelivr服务于他们:
https://cdn.jsdelivr.net/npm/@dforge-core/dforge-mcp@latest/resources/schemas/<name>.schema.json
兼容性 : 出柜的这个计划来自 iash44/dForge-core main 截至公布日期 package.json。如果平台在此发布后添加了新的实体属性/字段类型,使用这些特性生成的模块可能在当地验证,但在安装时被拒绝。 跳出dforge-mcp版本 当平台计划发生实质性变化时.
克洛德技能——路由器+三级技能
授权指导船为 4个 技能,按生命周期阶段划分。 每个阶段都需要另一半的知识库——第0阶段不需要任何外野型/DSL细节,第6阶段不需要任何取入式护栏——因此只有活性阶段才让一个上下文窗口内保存一个完整的模块构建.
| 技能 | 阶段 | 拥有 |
|---|---|---|
dforge-mcp-author | —— 说 | 路由器. 从这里开始. 电话 dforge_module_plan 找到当前阶段,然后把手拿开。 也带着共享的 references/ + 键 examples/。 。 。 . |
dforge-module-design | -0-0d (简体中文) | 身份 取入护栏 设计医生 手脚前验证 结束于 readyToScaffold: true。 。 。 . |
dforge-module-build | 1 - 5 个 | 实体,行为,观点/菜单,抛光,安全。 装入政策表,核心规则作弊表,后轨协议. |
dforge-module-ship | 6个 | 验证 + 包装前审查 → 版本审计 → 包 → 安装-固定回路. |
dforge-1c-import | —— 说 | 端口 1C:企业信息库:注册类型,张贴装订,携带什么,行副本及其转换,打印表. scripts/ 持有 Python 工具包(从 MS SQL 读取信息库中不包含 1C,生成模块,加载,调和,检查发布,读取 MXL 模板). |
交接是决定性的 dforge_module_plan({ action: "check" }) 返回时 currentPhase 财务报告和审定财务报表 nextSkill,来源于第0阶段文物,阶段分类账 docs/phase.json,从模块本身读取证据(没有字段的实体、没有视图的实体、没有选择赠款的实体).
路由器目录还持有共享资产:
| 路径 | 目录 |
|---|---|
references/*.md | 25个参考文件(字段类型,旗帜,特征,公式,DSL,安全,视图,菜单,翻译,.) |
examples/simple-todo/ | 显示所有核心模式的附加说明的参考模块 |
examples/matrix-budget/ | 工作实例 matrix (中枢)视图类型 |
scripts/xlsx_to_model.py | 斯德利布 Python .xlsx • 表谱提取器 |
技能不是自动安装的 npm install - 他们乘坐Npm的柏油球, 但克洛德代码看 ~/.claude/skills/没有 node_modules。使用安装器,它是一个节点脚本,所以它的行为完全相同 视窗 (cmd.exe / PowerShell), macOS, Linux, Git Bash 和 WSL数字 :
# Straight from the published package — no clone needed:
npx -y -p @dforge-core/dforge-mcp dforge-install-skills
# From a local checkout:
npm run install-skills
# Equivalently, without npm:
node scripts/install-skills.mjs [--from-npm]
目标解析, 顺序 : DEST → CLAUDE_CONFIG_DIR/skills → <home>/.claude/skills。主目录来自节点 os.homedir()因此,在视窗上它是 %USERPROFILE% 不管哪个贝壳引用它.
DEST=/path/to/skills npm run install-skills
窗口注释
- cmd.exe / PowerShell (英语)数字 :
npm run install-skills{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}直接工作 不需要敲击. - WSL 维基月球运行它从 窗口不在WSL内部——在WSL内部,
os.homedir()是 Linux 的家( R)/home/you)),因此这些技能会降落在Windows Claude代码从未出现的地方. 如果你故意在WSL内部运行克洛德代码,那么从WSL安装是正确的. --from-npm弹壳向外tar,被构建为Windows 10 1803+(和macOS/Linux). 没有它,就复制回波,运行安装器,不用--from-npm。 。 。 .scripts/install-skills.sh仍然存在和工作(它只是执行节点脚本),所以年龄较大的curl … | bash单线持续在macOS/Linux/Git Bash上工作.
它取代了每个技能目录批发——一个被留下的陈旧的参考文件比一个缺失的更糟糕,因为代理商会乐于写作反对.
每次Dforge-mcp升级后重新运行. 技能版在运行时不检查,因此与新工具相对抗的呆板技能会错传来电话.
关于CLAUDE.md的说明: 每个模块都有一个
CLAUDE.md在其根中,在0a阶段(AI起草;您写出)中被编写,并保持后期状态完整. 它告诉Claude Code,目录是一个dForge模块,指向技能,描述模块布局,并搭载活 模块状态 跟踪器,所以未来的会话会准确恢复.
阶段:
| 阶段 | 需要吗? | 技能 | 使用的工具 |
|---|---|---|---|
| 0. 身份/要求/设计/验证 | 对 | 设计 | module_plan |
| 1. 领域 | 对 | 构建 | module_create, (中文(简体) ), entity_add, (中文(简体) ), entity_field_*, (中文(简体) ), entity_reference_add, (中文(简体) ), entity_rollup_add, (中文(简体) ), entity_status_add, (中文(简体) ), module_import, (中文(简体) ), dbml_import |
| 2. 行为 | 选项 | 构建 | action_add, (中文(简体) ), action_check, (中文(简体) ), trigger_add, (中文(简体) ), job_add, (中文(简体) ), webhook_add |
| 3. 视图+菜单、报告 | 3a 是,可选择休息 | 构建 | view_*, (中文(简体) ), menu_add, (中文(简体) ), report_add |
| 4. 波兰语 | 选项 | 构建 | setting_add, (中文(简体) ), translation_sync, (中文(简体) ), seed_add |
| 5. 警卫 | 5a 是, 文件夹可选 | 构建 | role_add, (中文(简体) ), role_right_set, (中文(简体) ), folder_add |
| 6. 核实 | 对 | 船舶 | module_validate, (中文(简体) ), module_pack, (中文(简体) ), module_install |
技能中编码的关键原则:检查-先发制人,一发制人,复合工具-先发制人,在最早阶段-先发制人规则上确定后退道,一种工具失败协议,将认证/连接与模块缺陷区分开来,以及用户驱动的会后清理.
维护者
地方发展
pnpm install
pnpm build # tsup → dist/server.js (bundles SDK + zod + dforge-cli/templates + metadata)
pnpm typecheck # tsc --noEmit
pnpm test # vitest — validation + dbDatatype derivation + trait flow
node dist/server.js # stdio JSON-RPC — pipe a request to smoke-test
以树为生 dforge-cli,暂时将解析器固定在双胞胎路径上:
sed -i '' 's|"@dforge-core/dforge-cli": "\^0.2.[0-9.]*"|"@dforge-core/dforge-cli": "file:../dforge-cli"|' package.json
rm -rf node_modules pnpm-lock.yaml && pnpm install
# Flip back before publish — file: deps don't resolve for npm consumers.
更新供应商资源
示马斯 (单位:千美元)resources/schemas/从安装中复制) @dforge-core/metadata 软件包 —— 碰上Dep 就是你如何选择变换方案。 他们通过 dforge://schema/* 并且,在公布的柏油球, 通过jsdelivr.
pnpm sync-schemas # node script — cross-platform (Windows/macOS/Linux)
你很少用手操作这个: prepublishOnly 自动运行,因此,每一份出版物都会从这个软件包的精确元数据版本中重新产生这些计划——它们不能默默地漂移. 计划是坚定的,所以消费者总是有这些计划.
scripts/vendor-resources.sh 是一个Unix便利包装器,围绕相同的节点脚本,它还可以拉动 常规文献+技能参考文件 从 dForge-core - 但只有当 VENDOR_REFS=1数字 :
VENDOR_REFS=1 scripts/vendor-resources.sh # also pull conventions + skill refs from ../dForge-core
裁判的拉票是故意的: 专题参考文献 skills/dforge-mcp-author/references/ 被写入此 repo 中并处于 dForge-core/skills/dforge-module-author/所以没有防守的拉能打倒他们 仅设定 VENDOR_REFS=1 一旦你确认核心 是那些档案的真相来源 (此部分只用bash; 在 Windows 上使用 WSL/ Git Bash 来进行 ref pub- schema re刷新通过 pnpm sync-schemas 属于本地。 )
出版
scripts/publish.sh 0.1.0-rc.N --tag latest --otp <code>
prepublishOnly 运行 tsup 所以,柏油丸得到新鲜的 dist/server.js。没有平台二进制管理.
打印前核对表 :
@dforge-core/dforge-clidep 是真实版本( 不是)file:...(中文(简体) )pnpm typecheck通过pnpm test通过- 烟道测试:
tools/list返回 27 个工具 - 更新任何新/已更改工具的技巧( 这是 SIPARATE 的文物; 用户在升级后手动同步)
添加新工具
- 放下来
src/tools/<name>.ts。使用共享助手从src/tools/_helpers.ts(单位:千美元)loadManifest, (中文(简体) ),readJsonOrDefault, (中文(简体) ),jsonText, (中文(简体) ),makeResult, (中文(简体) ),withTodayStamp) (中文(简体) ). 还原 aToolResult。 。 。 . - 导入 + 注册到
src/server.ts通过envelope()包装. - 说吧
skills/dforge-mcp-author/SKILL.md(哪个阶段,哪个回溯方案使用它). - 弹出
package.json版本,发布.
公约:
- 返回相对于模块根的文件映射 。 别给磁盘写信.
- 如果目标密钥已经存在, 则拒绝( 强制用户调用匹配)
*_modify编号 :*_remove) (中文(简体) ). - 弹出
manifest.updated在每一个补丁.
许可证
麻省理工学院.