内容
# `crime-frontend-developer-mcp`
> 一个连接Claude Code到实时HMCTS犯罪平台的MCP服务器
> 设计工具包源。十八种工具,AST驱动的提取,OAuth身份验证,每个开发者自动知识更新,结构化的Gate 1输入。
> 建立在`crime-mcp-register`上。
[](#状态)
[](#)
## 状态
`v0.1.0-beta.0`。预发布1.0 -- 在API稳定之前,次要版本可能会引入破坏性更改。
## 这是什么
`crime-frontend-developer-mcp`是一个MCP服务器,为Claude Code提供实时、结构化的访问HMCTS犯罪平台设计工具包(`hmcts/cpp-ui-pdk2`)。它将每个PDK组件、验证器、类型、输入、输出、模板和示例作为MCP工具呈现。同时,它还会为开发人员提供规则文件、代理、斜杠命令和会话启动钩子,并在首次连接时刷新知识,当上游PDK源更改时。
该插件解决了特定问题:Claude的训练数据与实时PDK不同步。没有这个插件,Claude生成的PDK代码将编译为已存在的PDK,但不适用于当前的PDK。有了这个插件,Claude在每次调用时都会查询实时源 -- 信任差距得以消除。
## 接下来阅读
- **[PROJECT-OVERVIEW.md](./PROJECT-OVERVIEW.md)** -- *原因*。该插件解决的问题、OAuth安全位置、AST提取管道作为定义技术声明、迭代路线图。
- **[ARCHITECTURE.md](./ARCHITECTURE.md)** -- *如何*。每个工具、每个文件、每个流程。`setup_workspace`和`update_knowledge`生命周期。会话启动钩子。开发模式与生产模式的分离。
- **[RUN-LOCALLY.md](./RUN-LOCALLY.md)** -- 分步设置。在开发模式下将插件运行在您的机器上,连接到您的Claude Code,并使用工作知识库。
- **[EXERCISE-WITNESS-REGISTER.md](./EXERCISE-WITNESS-REGISTER.md)** -- 规范演示提示。已验证插件的自包含功能规范。运行它以查看插件生成真正的可运行代码。
## 安装
该插件与依赖的注册tarball预捆绑 -- 您不需要自己构建注册器进行正常使用。未来迭代将发布注册器到npm下的`@hmcts`范围,此时此依赖成为常规npm安装。
```bash
git clone https://github.com/hmcts/crime-frontend-developer-mcp.git
cd crime-frontend-developer-mcp
npm install && npm run build
npm run generate:pdk
```
如果您想从源代码构建注册器 -- 检查或贡献它 -- 请将其克隆为相邻目录,并使用`npm pack`进行本地安装,或通过调整`package.json`中的`crime-mcp-register`依赖关系指向其`dist/`文件夹。有关详细信息,请参见[RUN-LOCALLY.md](./RUN-LOCALLY.md)。
然后启动开发服务器:
```bash
CRIME_MCP_MODE=dev npm run dev
# 服务器监听 http://127.0.0.1:3000/sse
```
使用Claude Code注册服务器:
```bash
claude mcp add crime-frontend-developer-mcp \
--scope user \
--transport sse \
http://localhost:3000/sse
```
`--scope user`在您的用户级Claude Code配置中注册服务器,因此它在您打开的每个项目中都可用。如果没有`--scope user`,注册是项目本地的,并且不会跟随您进入其他项目。确切的CLI标志形式可能会因Claude Code版本而略有不同;如果`claude mcp add`拒绝标志,请运行`claude mcp add --help`以获取您版本的语法。
重启Claude Code并在CP Angular项目中启动会话。
有关完整的分步说明,请参见[RUN-LOCALLY.md](./RUN-LOCALLY.md)。
## 生产部署
托管的生产部署启用OAuth并强制执行每个开发者的身份验证。首先必须注册一个**GitHub OAuth应用程序** -- 通常是每个HMCTS犯罪部署的单个OAuth应用程序,在HMCTS组织下注册。自定义环境部署(例如预览、暂存)可以注册自己的应用程序。每个OAuth应用程序提供一个客户端ID和客户端密钥。
服务器上的三个环境变量使用这些值:
```bash
GITHUB_OAUTH_CLIENT_ID=<从GitHub OAuth应用程序>
GITHUB_OAUTH_CLIENT_SECRET=<从GitHub OAuth应用程序>
OAUTH_BASE_URL=https://your-public-mcp-url.example.com
CRIME_MCP_MODE=prod
PORT=8080
```
OAuth应用程序的授权回调URL必须在其GitHub设置中设置为`<OAUTH_BASE_URL>/callback`。代理处理其余部分 -- 开发人员在首次连接时通过浏览器进行身份验证;之后,每个工具处理程序中的GitHub调用都作为开发人员的GitHub身份运行。
有关安全模型的详细信息(每个开发人员的审计、自动撤销、无共享服务帐户凭证、无PAT),请参见[PROJECT-OVERVIEW.md第4节](./PROJECT-OVERVIEW.md#4-the-oauth-security-position)和[ARCHITECTURE.md第11节](./ARCHITECTURE.md#11-the-oauth-security-model)。
## 插件提供的内容
**18个MCP工具**用于实时PDK查询和Gate 1结构化输入:
- 5个组件查询工具(`pdk_list_components`、`pdk_get_component`、`pdk_get_components`、`pdk_get_template`、`pdk_get_exports`)
- 1个类型查询(`pdk_get_types`)
- 1个验证器查询(`pdk_get_validators`)
- 2个搜索查询(`pdk_search`、`pdk_diff_components`)
- 5个文档/应用程序查询(`docs_*`、`app_*`)
- 1个综合查询(`pdk_feature_context` -- 一次批量获取)
- 2个生命周期工具(`setup_workspace`、`update_knowledge`)
- 1个结构化输入工具(`gate_intake`)-- 通过CLI Claude Code的交互式表单(带有Markdown备用客户端不支持渲染的表单,例如编写时的VS Code)获取Gate 1规范
- 1个诱导诊断(`_test_elicitation`)-- 验证您的客户端环境是否正确渲染诱导
**~24个文件**在首次连接时播种到每个开发人员的机器上:cp-angular的规则文件、7个任务特定代理(表单构建器、布局、图像分析器、pdk-checker等)、7个斜杠命令、会话启动钩子脚本和安装标记。
**基于OAuth 2.1 + PKCE代理的每个开发人员GitHub身份验证**在生产环境中。没有共享的服务帐户令牌。
**当PDK源移动到上游时自动更新知识**。会话启动钩子检测哈希不匹配;在下一次会话启动时,Claude告诉开发人员“有更新可用”并询问是否应用。
## 已知限制
当前`0.1.0-beta`版本涵盖的内容恰好是:
- 一个框架:Angular(cp-angular)
- 一个UI库:PDK
- 一个项目形状:具有`package.json`在工作区根目录的Angular项目,其中`setup_workspace`可以检测ngrx标志
设置必须在这样的项目内运行。从项目外部连接到插件的开发人员将无法正确完成首次设置。v0.2将设置分为通用阶段(始终发货)和项目条件阶段(当开发人员在匹配项目中打开会话时发货),从而消除此限制。
有关完整的限制列表和路线图,请参见[PROJECT-OVERVIEW.md第12节](./PROJECT-OVERVIEW.md#12-honest-limitations)和[第10节](./PROJECT-OVERVIEW.md#10-iteration-roadmap)。
## 仓库
[`hmcts/crime-frontend-developer-mcp`](https://github.com/hmcts/crime-frontend-developer-mcp)。欢迎提出问题和贡献。
## 许可证
待确认。初始公共推送未许可,待HMCTS对新公共犯罪仓库的适当许可证进行法律审查后。