# Registry - 微服务配置管理中心 基于 Web 的注册表风格微服务配置管理系统。以项目为单位管理配置,支持机房、环境、分组三个维度划分,提供规划、编辑、只读三种工作模式。 ## 快速开始 ```bash 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 忽略,不会提交): ```json { "enabled": true, "token": "CHANGE_ME_REGISTRY_MCP_TOKEN" } ``` 客户端连接时需携带请求头 `Authorization: Bearer `。若 token 为空字符串,则跳过鉴权(不推荐)。 ### 配置示例(客户端) ```json { "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 远程配置文件)。 - 项目维度转换机制。