{"slug": "drive-jhipster-with-your-ai-agent-introducing-jhipster-mcp-v0-0-4", "title": "Drive JHipster with your AI agent: introducing jhipster-mcp (v0.0.4)", "summary": "JHipster has released jhipster-mcp v0.0.4, an open-source Model Context Protocol server that enables AI agents to generate and modify JHipster applications using natural language commands. The server exposes nine tools that allow agents to create applications from JDL, add entities and relationships, validate configurations, and generate CI/CD pipelines without requiring users to remember JDL syntax or CLI flags. The release focuses on safety and transparency, with real-time progress notifications for long-running operations and a true preview mode that generates applications in temporary directories without modifying the user's project.", "body_md": "TL;DR—`jhipster-mcp`\n\nis an open-source[Model Context Protocol]server that lets an AI agent generate and evolve[JHipster]applications for you. You describe what you want in plain language; the agent writes JDL and drives the JHipster CLI. It's on npm — point your MCP host at it with one line.v0.0.4 is the first public release.📦 npm:\n\n[https://www.npmjs.com/package/jhipster-mcp]\n\n🧑💻 GitHub:[https://github.com/avdev4j/jhipster-mcp]\n\nJHipster has always been about *speed*: scaffold a production-grade Spring Boot + modern frontend app in minutes, model your domain with **JDL** (JHipster Domain Language), and let the generator write the boilerplate.\n\nAI coding agents are great at *intent*: you tell them what you want, they figure out the steps.\n\n`jhipster-mcp`\n\nconnects the two. It exposes JHipster as a set of **MCP tools** an agent can call. So instead of remembering JDL syntax and CLI flags, you say:\n\n\"Create a JHipster monolith in`/tmp/shop`\n\nwith PostgreSQL and an Angular frontend, plus a`Product`\n\nentity (name, price) and a`Category`\n\nwith a one-to-many to products. Paginate everything.\"\n\n…and the agent composes valid JDL, runs the generator, and streams the result back.\n\nIf you use **Claude Code**, **Claude Desktop**, **Cursor**, or any MCP-compatible host, you can plug it in today.\n\nThe server ships **9 tools**, JDL-first:\n\n| Tool | What it does |\n|---|---|\n`create_app_from_jdl` |\nScaffold a brand-new app from a full JDL block. |\n`import_jdl` |\nApply JDL (entities, relationships, options) to an existing project. |\n`add_entity` |\nAdd one entity with fields, validations, and per-entity options. |\n`add_relationship` |\nAdd a typed relationship between two entities. |\n`set_option` |\nToggle JDL options (`paginate` , `dto` , `service` , `search` , …). |\n`validate_jdl` |\nCheck JDL for errors without modifying anything. |\n`generate_ci_cd` |\nScaffold a CI/CD pipeline (GitHub, GitLab, Jenkins, …). |\n`info` |\nInspect project versions, config, and entities. |\n`run_jhipster` |\nEscape hatch — run an allowlisted subcommand safely. |\n\nIt also exposes a **JDL grammar cheat-sheet** as an MCP resource, so the agent writes valid JDL on the first try.\n\nThis first release focuses on making **every tool call trustworthy and legible** to the agent:\n\nFull app generation can take 30–90 seconds. Instead of looking frozen, the server streams the generator's output as MCP **progress notifications** in real time.\n\nYou can validate JDL or preview a change without touching your project.\n\nThere's a fun gotcha here: JHipster's own `--dry-run`\n\nflag only *prints conflicts* — **it still writes files** (I confirmed this against the real CLI). So a flag-based \"preview\" would silently modify your project. `jhipster-mcp`\n\ninstead does a **real preview**: it generates in a throwaway temp directory (copying your project's `.yo-rc.json`\n\nand `.jhipster/`\n\nfor context), parses what *would* be produced, and discards everything. Your project is never modified.\n\nEvery tool returns machine-readable JSON alongside the human-readable text, so the agent reasons on data instead of scraping logs:\n\n```\n{\n  \"command\": \"jhipster jdl changes.jdl --force --skip-git\",\n  \"exitCode\": 0,\n  \"success\": true,\n  \"dryRun\": false,\n  \"entities\": [\"Customer\", \"Order\"],\n  \"filesChanged\": [{ \"action\": \"create\", \"path\": \"src/main/java/...\" }],\n  \"warnings\": []\n}\n```\n\n`shell: false`\n\nand an argument allowlist — no command injection.`--force --skip-git`\n\nand `CI=true`\n\n; never hangs on a prompt.`workingDirectory`\n\n; the server won't act outside it.Under the hood it's **TypeScript** on the official **MCP SDK**, with 70 tests and CI on Node 22/24.\n\n```\n  npm install -g generator-jhipster\n  jhipster --version\n```\n\n**Claude Code:**\n\n```\nclaude mcp add jhipster -- npx -y jhipster-mcp\n```\n\n**Claude Desktop / Cursor / others** — add to your MCP config:\n\n```\n{\n  \"mcpServers\": {\n    \"jhipster\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"jhipster-mcp\"]\n    }\n  }\n}\n```\n\nNo clone, no build — `npx`\n\nfetches and caches the package for you.\n\n\"In`/Users/me/projects/shop`\n\n, add a`Customer`\n\nentity with firstName (required, 2–50 chars), lastName, and email, then a one-to-many from Customer to Order.\"\n\nThe agent reads the JDL grammar, builds the snippet, and applies it — streaming progress as it goes.\n\nWant to look before you leap? Ask it to **preview** first:\n\n\"Show me what adding a`Tag`\n\nentity would change — don't write anything yet.\"\n\n…and it runs the same tool with `dryRun: true`\n\n.\n\nThis release completes the \"Tier 1\" experience work (progress, validation/dry-run, structured output). On the roadmap:\n\n`.yo-rc.json`\n\n, the entity list, and exported JDL directly.\n\n```\nnpx -y jhipster-mcp@0.0.4\n```\n\n⭐ Star it, break it, and tell me what's missing: [https://github.com/avdev4j/jhipster-mcp](https://github.com/avdev4j/jhipster-mcp)\n\nBuilt with ❤️ for the JHipster community.\n\n*#jhipster #ai #mcp #java #springboot #opensource*", "url": "https://wpnews.pro/news/drive-jhipster-with-your-ai-agent-introducing-jhipster-mcp-v0-0-4", "canonical_source": "https://dev.to/avdev4j/building-a-jhipster-mcp-server-let-ai-agents-scaffold-and-evolve-your-architecture-487e", "published_at": "2026-05-26 23:08:35+00:00", "updated_at": "2026-05-26 23:33:11.922727+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "generative-ai", "large-language-models"], "entities": ["JHipster", "jhipster-mcp", "Model Context Protocol", "JDL", "Claude Code", "Claude Desktop", "Cursor", "npm"], "alternates": {"html": "https://wpnews.pro/news/drive-jhipster-with-your-ai-agent-introducing-jhipster-mcp-v0-0-4", "markdown": "https://wpnews.pro/news/drive-jhipster-with-your-ai-agent-introducing-jhipster-mcp-v0-0-4.md", "text": "https://wpnews.pro/news/drive-jhipster-with-your-ai-agent-introducing-jhipster-mcp-v0-0-4.txt", "jsonld": "https://wpnews.pro/news/drive-jhipster-with-your-ai-agent-introducing-jhipster-mcp-v0-0-4.jsonld"}}