内容
# jhipster-mcp
模型上下文协议(MCP)服务器,允许AI代理(如Claude Code、Claude Desktop、Cursor或任何兼容MCP的主机)驱动[JHipster](https://github.com/jhipster/generator-jhipster)命令行界面,以搭建和演化应用程序,使用**JDL**(JHipster领域语言)。
您描述您想要的应用程序或变更;代理将其翻译为JDL,验证它,并运行JHipster - 同时该服务器保持每次运行**非交互式,沙盒到您命名的目录中,并在写入之前安全预览**。
## 📖 文档
**完整用户指南 → [`docs/`](docs/README.md).** 如果您熟悉JHipster但不熟悉MCP,请从那里开始并按顺序阅读:
1. [介绍](docs/01-introduction.md) — 什么是MCP服务器,及工具/资源/提示模型。
2. [安装](docs/02-installation.md) — 将其连接到您的主机。
3. [快速入门](docs/03-getting-started.md) — 您的第一次引导会话。
4. [工具参考](docs/04-tools.md) · 5. [资源](docs/05-resources.md) · 6. [提示](docs/06-prompts.md)
7. [服务器如何管理上下文](docs/07-context-management.md)
8. [高级用法和自定义](docs/08-advanced-and-customization.md)
9. [工作原理(引擎)](docs/09-how-it-works.md)
路线图:[docs/ROADMAP.md](docs/ROADMAP.md).
## 快速入门
**前提条件:** Node.js 20+ 和一个可用的全局`jhipster`命令行界面在您的`PATH`中(`npm install -g generator-jhipster`)。服务器启动您现有的`jhipster`二进制文件 - 它不包含生成器。更多详细信息请参见[安装](docs/02-installation.md)。
### Claude Code
```bash
claude mcp add jhipster -- npx -y jhipster-mcp
```
### Claude Desktop / Cursor / 其他主机
将以下内容添加到您的主机的MCP配置中(例如`claude_desktop_config.json`),然后重启:
```json
{
"mcpServers": {
"jhipster": {
"command": "npx",
"args": ["-y", "jhipster-mcp"]
}
}
}
```
然后询问您的主机类似 *"在 `/tmp/demo` 中创建一个 JHipster 单体应用,并包含一个 `Product` 实体。"*。有关完整的操作指南和更多示例,请参见[快速入门](docs/03-getting-started.md)。
## 内容概览
- **13 个工具** — `validate_jdl`、`create_app_from_jdl`、`import_jdl`、`add_entity`、`add_relationship`、`set_option`、`info`、`project_commands`、`upgrade_advisor`、`preview_upgrade`、`generate_ci_cd`、`generate_deployment`、`run_jhipster`。([参考](docs/04-tools.md))
- **资源** — JDL语法和实时项目状态(`yo-rc`、`entities`、导出的`jdl`)。([参考](docs/05-resources.md))
- **提示** — `scaffold_crud_monolith`、`add_audit_fields`、`monolith_to_microservices`。([参考](docs/06-prompts.md))
- **安全设计** — 目录范围、空目录保护、无shell、JDL注入保护和隔离预览/干运行。([详情](docs/07-context-management.md))
## 开发
```bash
npm run dev # tsup --watch
npm run typecheck # tsc --noEmit
npm run build # tsup → dist/index.js
npm test # node --test + tsx
npm run test:watch # tests in watch mode
```
CI在每次推送/拉取请求到`main`时运行类型检查、构建和测试,跨Node 20/22/24在Ubuntu和macOS上通过[.github/workflows/ci.yml](.github/workflows/ci.yml)。贡献者的架构和约定位于[CLAUDE.md](CLAUDE.md);引擎也为用户在[docs/09-how-it-works.md](docs/09-how-it-works.md)中进行了文档记录。
快速烟雾测试(通过stdio列出工具):
```bash
(cat <<'EOF'
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}
{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
EOF
) | node dist/index.js
```
## 发布
**GitHub Release标签是版本的单一来源。** 所有内容都由此导出:
- 发布工作流([.github/workflows/release.yml](.github/workflows/release.yml))读取标签(例如`v0.0.3`),剥离`v`前缀,并将`package.json`设置为该版本,然后在构建和发布之前。
- MCP服务器在运行时报告`pkg.version`([src/index.ts](src/index.ts)导入`package.json`,在构建时内联) - 因此发布的npm版本、标签和运行时版本始终相同。
要发布版本:
1. 在GitHub上,进入 **Releases → Draft a new release**。
2. 创建一个名为 **`vX.Y.Z`** (semver,`v`前缀)的新标签,指向`main`,填写备注,并 **发布版本**。
发布版本会触发 `release: published` 事件,从而触发工作流:
1. 检出发布标签并将 `package.json` 设置为 `X.Y.Z`,
2. 运行构建 + 测试,
3. 通过 **Trusted Publishing (OIDC)** 发布到 npm - 无需 `NPM_TOKEN` 密钥;自动生成出处(需要为此仓库 + 工作流在 npmjs.com 上配置 Trusted Publisher,并且 npm ≥ 11.5.1,工作流会安装)。
您不需要在提交之前更新 `package.json` - 工作流会强制使其与标签匹配。(可选地,使用 `npm version --no-git-tag-version X.Y.Z` 使 `main` 的 `package.json` 与本地开发报告的版本保持一致,但发布版本并非必需。)
## 许可证
在 [Apache License, Version 2.0](LICENSE) 下许可。