All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 39s
- Streamable HTTP 传输,/mcp 端点,Bearer token 鉴权(data/mcp.json,已忽略) - 项目/配置完整增删改查工具,删除为两步式确认(delete_* + confirm_delete_*) - 写操作遵循系统模式,readonly 下拒绝 - 依赖 @modelcontextprotocol/sdk,新增单元测试
3.5 KiB
3.5 KiB
Registry - 微服务配置管理中心
基于 Web 的注册表风格微服务配置管理系统。以项目为单位管理配置,支持机房、环境、分组三个维度划分,提供规划、编辑、只读三种工作模式。
快速开始
npm install
npm start
启动后访问 http://localhost:3000
功能概览
- 项目管理:以项目为单位隔离配置;维度开关(机房/环境/分组)创建时确定,后续不可修改。
- 注册表风格界面:左侧树形导航(项目 → 机房 → 环境 → 分组 → 配置),右侧键值详情表格。
- 配置项:路径形式的 key,value 支持 string/number/boolean/json 类型,每项必须有说明。
- 三种模式:
- 规划模式:定义配置结构(类型、说明、用途、值范围)。
- 编辑模式:填写/修改配置值,含类型与范围校验。
- 只读模式:仅查看,禁止修改。
- 持久化:当前实现 JSON 文件方案,支持导出下载与导入合并。持久化层已抽象,后续可扩展 XML / YAML / SQLite / MySQL / Nacos。
- MCP 服务:通过 Model Context Protocol 暴露同一套能力,AI 可自动完成项目/配置的增删改查;删除为两步式确认,写操作受系统模式(只读)约束。
MCP 服务
MCP 服务以 Streamable HTTP 传输运行在 POST /mcp 端点,供 AI(例如 Claude、Cursor 等支持 MCP 的客户端)自动操作。
配置
授权 token 写在 data/mcp.json(已被 .gitignore 忽略,不会提交):
{
"enabled": true,
"token": "CHANGE_ME_REGISTRY_MCP_TOKEN"
}
客户端连接时需携带请求头 Authorization: Bearer <token>。若 token 为空字符串,则跳过鉴权(不推荐)。
配置示例(客户端)
{
"mcpServers": {
"registry": {
"url": "http://localhost:3000/mcp",
"headers": { "Authorization": "Bearer CHANGE_ME_REGISTRY_MCP_TOKEN" }
}
}
}
可用工具
| 类别 | 工具 | 说明 |
|---|---|---|
| 系统 | get_mode / set_mode |
读取/切换系统模式(plan/edit/readonly) |
| 项目 | list_projects / get_project |
项目查询 |
| 项目 | create_project |
创建项目(维度开关创建后不可改) |
| 项目 | update_project_mappings |
调整维度映射方式(path/label) |
| 项目 | delete_project / confirm_delete_project |
两步式删除:先 delete_project 获取令牌,再 confirm_delete_project 真正删除 |
| 配置 | list_configs / get_config |
配置项查询 |
| 配置 | create_config / update_config |
配置项新增/修改 |
| 配置 | delete_config / confirm_delete_config |
两步式删除,机制同上 |
两步式删除返回 confirmation_token(5 分钟内有效、一次性),需调用对应的 confirm_* 工具并回传该令牌才会真正删除。
文档
- 需求文档:
docs/requirements.md - 概要设计文档:
docs/design.md
目录结构
registry/
├── docs/ 需求与设计文档
├── data/ JSON 持久化数据
├── src/ 后端源码(Express)
│ ├── server.js
│ ├── routes/ 项目与配置路由
│ ├── services/ 业务逻辑
│ ├── persistence/ JSON 持久化适配器
│ └── utils/ 配置值校验
└── public/ 前端静态资源
后续规划
- 对接 SSO 单点登录(当前版本无认证)。
- 扩展更多持久化方案(数据库、Nacos、SSH 远程配置文件)。
- 项目维度转换机制。