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 -d2.配置编辑器
在项目文件夹中,运行编辑器的命令。 专业提示: 这可以是一个包含多个项目/存储库的文件夹。
该脚本添加了MCP服务器配置和一个小的指令引导文件。它检查现有配置,仅在需要时附加。
光标:
curl -sSL https://raw.githubusercontent.com/IgorKrupenja/rulekit-mcp/main/scripts/setup.sh | bash -s -- cursorVS代码:
curl -sSL https://raw.githubusercontent.com/IgorKrupenja/rulekit-mcp/main/scripts/setup.sh | bash -s -- vscodeJetBrains:
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服务器正常工作,合并的项目/技术不应超过:
- 安全\
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` -将开发规则作为作用域/键对的系统提示获取