使用说明
MCP规则套件
一个模块化的MCP(模型上下文协议)服务器,用于为不同的项目和技术栈共享AI编码辅助规则。
目标是使跨不同项目共享规则变得容易,并支持广泛的用例和工具。这些可能是使用不同编辑器的人工智能辅助编码、引导新项目、自动代码审查等。
亮点
- 模块化结构 规则的范围不同:项目、组、技术人员和语言。因此,例如,要求在Bürokratt Service Module repo中加载规则将加载特定于repo的规则(项目)、通用Büroklatt DSL/SQL规则(组)、通用React规则(技术)和通用TypeScript规则(语言)。看 编辑规则 了解更多详情。
- 只有您要求的规则才会加载到上下文中。
- 支持 适用于不同的编辑.MCP 特征 也以允许这种方式实现。
- **支持延迟加载 资产**这些可以是更大的代码片段、辅助脚本、YAML/JSON,它们不会立即加载到上下文中,而是仅在根据用户提示实际需要时加载。
- 持续集成 检查,包括一个脚本,用于检查技术人员/项目的合并规则是否不超过安全令牌上下文限制。
- NestJS基本规则集.可以 引导你一个NestJS项目 从starter仓库中,将根据项目结构创建/修改GitHub Actions CI工作流。
- 一套全面的规则 Bürokratt项目.可以同步fork,通过直接调用服务模块服务来测试它们,打开浏览器并登录进行调试等等!
设置
1.启动服务器
docker compose up -d
2.配置编辑器
在项目文件夹中,运行编辑器的命令。 专业提示: 这可以是一个包含多个项目/存储库的文件夹。
该脚本添加了MCP服务器配置和一个小的指令引导文件。它检查现有配置,仅在需要时附加。
光标:
curl -sSL https://raw.githubusercontent.com/IgorKrupenja/rulekit-mcp/main/scripts/setup.sh | bash -s -- cursor
VS代码:
curl -sSL https://raw.githubusercontent.com/IgorKrupenja/rulekit-mcp/main/scripts/setup.sh | bash -s -- vscode
JetBrains:
curl -sSL https://raw.githubusercontent.com/IgorKrupenja/rulekit-mcp/main/scripts/setup.sh | bash -s -- jetbrains
克劳德代码:
curl -sSL https://raw.githubusercontent.com/IgorKrupenja/rulekit-mcp/main/scripts/setup.sh | bash -s -- claude
手动安装:
如果你不想使用脚本, 您还可以手动设置。参见 docs/setup.md.
提示
如果您按照上述设置说明进行操作,您的AI助手将自动使用 get_mcp_instructions 学习如何与此MCP服务器交互的工具。这意味着您可以使用自然语言提示,例如:
- “从MCP获取NestJS规则”
- “加载React规则”
- “MCP中有哪些项目?”
- “显示可用的技术堆栈”
- “查找MCP中的测试规则”
- “加载服务模块规则”
- “在MCP中获取此项目的规则”(前提是您已选择属于该项目的文件)
- “同步分叉”或“与上游同步”(在Buerokatt repos中)
- “在api文件夹中为我创建一个NestJS启动器”
编辑规则
规则在 rules/ 文件夹。每次请求时都会重新加载规则, 因此不需要重新启动服务器 在您编辑规则或清单之后。
文件夹结构
rules/
├── manifest.yml
├── general.md
├── projects/
│ ├── buerokratt/
│ │ ├── general.md
│ │ ├── css.md
│ │ ├── react.md
│ │ ├── ruuter.md
│ │ ├── sql.md
│ │ ├── sql-restrictions.md
│ │ ├── sync-upstream.sh
│ │ └── Service-Module/
│ │ │ └── rules.md
│ │ │ └── ...
│ │ └── ...
│ └── ...
└── techs/
├── css/
│ └── tailwind/
│ │ └── rules.md
│ └── ...
├── java/
│ ├── rules.md
│ └── spring/
│ │ └── rules.md
│ └── ...
├── typescript/
│ ├── nestjs/
│ │ └── rules.md
│ ├── react/
│ │ └── rules.md
│ ├── rules.md
│ └── ...
└── ...
清单
rules/manifest.yml 定义可用键(用于项目、组、技术和语言)以及它们之间的关系。定义这些允许模块化结构。按键用于基于主题的提示,例如“从MCP获取NestJS规则”。
dependsOn 用于声明键之间的依赖关系。例如,如果你贴花了 react 取决于 typescript,那么当你要求“从MCP获取React规则”时,你也会得到 typescript 规则。
这 defaults.globalGroup 除非满足以下条件,否则每次请求都会应用条目 USE_GLOBAL_RULES 环境变量设置为 false.
规则格式
规则是带有frontmatter的Markdown文件。使用 appliesTo 在frontmatter中声明规则适用于哪些密钥。密钥在 清单.
例子:
---
appliesTo:
projects:
- buerokratt/Service-Module
groups:
- buerokratt
techs:
- react
languages:
- typescript
description: Description of the rule
---
## Some rule set
... rule set content ...
⚠️ 关于上下文大小的重要说明为确保MCP服务器正常工作,合并的项目/技术不应超过:
- 安全<50KB
- 警告<100 KB
这可以在CI中检查,并使用npm脚本,请参阅 检查 在......下面
资产
资产是不是规则的文件,但与规则捆绑在一起。它们不会立即加载到上下文中,但可以在需要时加载。这样,您可以包含更大的代码示例、辅助脚本、JSON示例等,而不会使提示上下文膨胀。
一个例子是 sync-upstream.sh Bürokratt或任何其他开源项目的脚本。看 项目/buerokratt/general.md 了解更多详情。
发展
运行项目
# Install the correct Node version
nvm install
# Install the correct pnpm version
corepack enable pnpm
corepack use
pnpm install
pnpm start
完成代码更改后,重建映像并重新启动容器:
docker compose up -d --build --force-recreate
您也可以使用MCP检查器调试规则: pnpm inspect.
支票
持续集成
以下检查在CI中对推送和拉取请求自动运行:
- 格式:使用Prettier检查代码格式
- 棉绒:运行ESLint检查代码质量和风格
- 皮棉降价:使用markdownint创建markdown文件(规则和README)
- 类型检查:验证TypeScript类型而不发出文件
- 验证:验证规则文件(清单结构+规则前端+规则标记语法)
- 检查上下文大小:根据安全令牌限制检查合并的项目/技术
- 测试:运行测试
本地
这些也可以使用npm脚本手动运行:
pnpm format
pnpm lint
pnpm lint:markdown
pnpm typecheck
pnpm validate
pnpm check-context-size
pnpm check-context-size <project-key> <tech-key>
pnpm test
MCP服务器功能
MCP服务器提供:
- 资源:
- 规则:
rules://{scope}/{key}(例如。,rules://project/buerokratt/Service-Module) - 资产:
assets://{path}(例如。,assets://projects/buerokratt/sync-upstream.sh).
- 规则:
- 工具:
get_rules-获取作用域/键对的规则get_mcp_instructions-显示服务器使用指南list_scope_keys-列出给定作用域的键search_rules-按关键字搜索规则list_assets-列出捆绑资产路径get_asset-按路径获取资产内容
- 提示:
development_rules-将开发规则作为作用域/键对的系统提示获取