惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Vercel News
Vercel News
F
Fortinet All Blogs
月光博客
月光博客
G
Google Developers Blog
博客园 - Franky
GbyAI
GbyAI
The Cloudflare Blog
I
InfoQ
雷峰网
雷峰网
WordPress大学
WordPress大学
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
T
The Blog of Author Tim Ferriss
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
小众软件
小众软件
腾讯CDC
B
Blog
量子位
V
V2EX
S
SegmentFault 最新的问题
Google DeepMind News
Google DeepMind News

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Let Your AI Agent Scaffold Apps With seed4j-mcp
Anthony Viar · 2026-05-19 · via DEV Community

If you've ever bootstrapped a Spring Boot + Vue project by hand, you know the routine: pick a build tool, glue in a frontend, add JPA, choose a database driver, wire Liquibase, remember the Maven wrapper, look up that one annotation for the seventh time this year. By the time you reach initial commit, half your motivation is gone.

seed4j already solves most of that. It's an open source application generator that applies modules to a project folder — click click click, project done.

But seed4j is still a tool a human drives. You read the docs, you pick the module slugs, you remember whether the property is packageName or basePackage this release. Fine, but not exactly thrilling.

seed4j-mcp is a Model Context Protocol server that hands seed4j to your AI agent instead. Plug it into Claude Code, Claude Desktop, or Cursor, and the agent can:

  • browse the seed4j catalog,
  • pick a coherent stack,
  • validate properties before applying anything,
  • and scaffold a project end to end.

You stay in the conversation. The agent does the orchestration.

Heads up — this is an alpha. seed4j-mcp is a fresh first release. The tool surface, defaults, and behavior may change as feedback comes in. It's stable enough to play with, but don't wire it into anything critical yet. Bug reports and suggestions are very welcome.


How the pieces fit together

seed4j-mcp is intentionally thin. Three components:

  1. A running seed4j instance — the actual generator, reachable over HTTP (default http://localhost:1339).
  2. seed4j-mcp — a Node.js MCP server that translates MCP tool calls into seed4j REST calls.
  3. Your MCP client — Claude Code, Claude Desktop, Cursor, etc., speaking MCP over STDIO to seed4j-mcp.
[Claude Code] ⇄ STDIO ⇄ [seed4j-mcp] ⇄ HTTP ⇄ [seed4j server]

Enter fullscreen mode Exit fullscreen mode

That separation matters: seed4j-mcp does not embed seed4j as a library. It's a translator. seed4j can evolve on its own and the MCP server keeps doing its job — no version-pinning gymnastics.

One implementation detail worth knowing: seed4j-mcp speaks MCP over STDIO. The MCP framing lives on stdout, which means anything else writing to stdout will corrupt the stream and your MCP client will hang. The server routes its startup errors to stderr for that reason. If you fork the project and add logging, use console.error or write to a file — never console.log.


Tutorial

Prerequisites

Three things on your machine:

  • Node.js 20+seed4j-mcp ships as an npm package and runs under Node (yes, even if you're a Java person).
  • A running seed4j instance — see the seed4j docs for how to start one. Default URL: http://localhost:1339.
  • An MCP-aware client — I'll use Claude Code, but Claude Desktop and Cursor work the same way.

Quick sanity checks:

node --version            # v20.x or newer
curl http://localhost:1339/api/modules | head -c 200

Enter fullscreen mode Exit fullscreen mode

If the curl call returns JSON, you're ready.

Getting started

You don't need to install seed4j-mcp globally. The package is published on npm and the recommended pattern is to let your MCP client launch it on demand via npx. First run pulls it down, later runs use the cache.

If you'd rather install it globally:

npm install -g seed4j-mcp

Enter fullscreen mode Exit fullscreen mode

Or build from source if you want to contribute:

git clone https://github.com/avdev4j/seed4j-mcp.git
cd seed4j-mcp
npm install
npm run build

Enter fullscreen mode Exit fullscreen mode

Run it with Claude Code

Claude Code has an mcp subcommand built for exactly this. Pick a scope based on how widely you want the server available:

# Local: just you, this project (default scope)
claude mcp add seed4j -- npx -y seed4j-mcp

# Project: committed to .mcp.json, shared with collaborators
claude mcp add seed4j --scope project -- npx -y seed4j-mcp

# User: available across all your projects on this machine
claude mcp add seed4j --scope user -- npx -y seed4j-mcp

Enter fullscreen mode Exit fullscreen mode

Running seed4j on a non-default URL? Pass it as an env var:

claude mcp add seed4j --env SEED4J_BASE_URL=http://localhost:7471 -- npx -y seed4j-mcp

Enter fullscreen mode Exit fullscreen mode

Verify the server is wired up:

claude mcp list

Enter fullscreen mode Exit fullscreen mode

Restart Claude Code and the tools become available to the agent automatically.

Run it with Claude Desktop or Cursor

Both clients read a JSON config. Add an entry pointing at the npx entrypoint:

{
  "mcpServers": {
    "seed4j": {
      "command": "npx",
      "args": ["-y", "seed4j-mcp"],
      "env": {
        "SEED4J_BASE_URL": "http://localhost:1339"
      }
    }
  }
}

Enter fullscreen mode Exit fullscreen mode

Restart the client and you're done.


Example usages

The real test is what the agent does once the tools are available. A few prompts that exercise different flows.

1. "Scaffold a Spring Boot + Vue webapp"

The curated stack path. You name the vibe, the agent picks a preset. Under the hood it will:

  1. Call list_presets to see what's on offer.
  2. Pick the one that matches (e.g. "Webapp: Vue + Spring Boot").
  3. Call get_preset_details for the ordered module list.
  4. Call create_project to initialize the folder.
  5. Call apply_preset to apply every module in order with a shared property map.

Your prompt is one line:

Scaffold a new project at /tmp/my-webapp using a Vue + Spring Boot preset. Use com.example.webapp as the Java package and mywebapp as the base name.

2. "I want a custom stack, not a preset"

The custom stack path. The agent will:

  1. search_modules to find candidates matching your description.
  2. get_module_dependencies to learn the prerequisite ordering and any feature choices (yes, you have to pick a datasource flavor — the agent won't guess for you).
  3. validate_properties to dry-run the property map before touching the filesystem.
  4. apply_modules to apply the full ordered list in one batch, stopping at the first failure.

Example prompt:

Create a Java library project at /tmp/my-lib with Maven, Jacoco, and SonarQube wired up. Package com.example.lib.

3. "What's already in this project?"

When the folder exists, get_project_status tells the agent which modules have been applied and what properties are in play — so it suggests sensible next steps instead of stomping over existing state:

Look at /tmp/my-webapp and tell me what's wired up. What would you suggest adding next?

4. "Show me the catalog"

You can also use the agent as a guided browser. It will reach for search_modules and get_module_details and summarize the catalog:

What persistence modules does seed4j support? Compare Postgres, MySQL, and MongoDB options.


Available tools

The agent gets a small but expressive toolbox covering module discovery, preset lookup, property validation, and project application. Rather than reproducing the full list here (and watching it drift the next time a tool is added), check the up-to-date catalog directly in the repo:

github.com/avdev4j/seed4j-mcp

The README lists every tool with the description the agent actually sees.


See it in action

If you'd like to see what a project scaffolded through seed4j-mcp actually looks like, here's one I generated:

avdev4j/seed4j-mcp-sample-app

It's the output of a real agent session — useful as a reference for the kind of structure, files, and module combination you can expect when you hand the wheel to your AI agent.


Wrapping up

Application generators have always traded flexibility for speed: faster than handcrafting, less flexible than writing it yourself. Putting an LLM in front of one tips the balance — the agent handles orchestration, and you stay at the level of "build me a Java library with Jacoco and SonarQube". No memorizing slugs, no fighting property names.

And the scaffolded project isn't a dead drop. seed4j writes a documentation/ folder alongside the code with the conventions, code style, and recommendations specific to the modules you applied. That folder is a goldmine for the next step: pointing your AI agent at it while you write the business code keeps the generated structure and the hand-written code coherent — same package layout, same patterns, same style — instead of the usual drift between bootstrapped scaffolding and the features you add on top.

seed4j-mcp is Apache 2.0. Source at github.com/avdev4j/seed4j-mcp, published on npm as seed4j-mcp. Issues, PRs, and creative stack requests welcome.

If you ship something with it, I'd love to see it.