MCP Spring Boot Toolkit
# MCP Spring Boot Toolkit
MCP (Model Context Protocol) server cung cấp tools, resources và prompts hỗ trợ phát triển dự án Java Spring Boot.
## Tính năng
### Tools (8 tools)
| Tool | Mô tả |
|------|--------|
| `generate_entity` | Tạo JPA Entity class với Lombok annotations, audit fields (`createdAt`/`updatedAt`), soft delete |
| `generate_controller` | Tạo REST Controller với CRUD endpoints, pagination, validation |
| `generate_service` | Tạo Service interface + implementation với `@Transactional`, `@Cacheable` |
| `generate_dto` | Tạo Request/Response DTOs với validation annotations + MapStruct mapper |
| `generate_repository` | Tạo Spring Data JPA Repository với custom query methods, Specification support |
| `generate_exception_handler` | Tạo `@ControllerAdvice` global exception handler + custom exception classes |
| `generate_application_properties` | Tạo `application.yml` theo profile (dev/prod) với database, security, actuator, swagger... |
| `analyze_pom` | Phân tích `pom.xml` để tìm vấn đề dependency, version conflict và đề xuất cải thiện |
### Prompts (6 prompts)
| Prompt | Mô tả |
|--------|--------|
| `review_api` | Review REST API controller theo best practices (HTTP conventions, validation, security, performance) |
| `debug_exception` | Phân tích stack trace và đề xuất cách fix |
| `optimize_query` | Tối ưu JPA/Hibernate query (N+1, projection, indexing, caching) |
| `security_audit` | Audit bảo mật Spring Security config (JWT, CORS, CSRF, input validation) |
| `migration_plan` | Lên kế hoạch upgrade Spring Boot version (breaking changes, namespace migration) |
| `design_microservice` | Thiết kế kiến trúc microservice (package structure, API contracts, communication patterns) |
### Resources (4 guides)
| Resource | URI | Nội dung |
|----------|-----|----------|
| Project Structure | `guide://spring-boot/project-structure` | Cấu trúc package chuẩn cho ứng dụng Spring Boot |
| Security | `guide://spring-boot/security` | Checklist bảo mật: JWT, OAuth2, CORS, rate limiting |
| Layered Architecture | `guide://spring-boot/layered-architecture` | Kiến trúc phân lớp Controller → Service → Repository |
| API Design | `guide://spring-boot/api-design` | Thiết kế RESTful API: versioning, pagination, error handling |
## Cài đặt
```bash
# Clone hoặc copy project
cd mcp-spring-boot-toolkit
# Cài dependencies
npm install
# Build
npm run build
```
## Cách sử dụng
### Cấu hình MCP Server
Thêm vào file cấu hình MCP của IDE (ví dụ `.kiro/settings/mcp.json`, `claude_desktop_config.json`, hoặc tương đương):
**Production (dùng bản build):**
```json
{
"mcpServers": {
"spring-boot-toolkit": {
"command": "node",
"args": ["/đường-dẫn-tới/mcp-spring-boot-toolkit/dist/index.js"]
}
}
}
```
**Development (dùng tsx, không cần build):**
```json
{
"mcpServers": {
"spring-boot-toolkit": {
"command": "npx",
"args": ["tsx", "/đường-dẫn-tới/mcp-spring-boot-toolkit/src/index.ts"]
}
}
}
```
### Ví dụ sử dụng tools
**Tạo Entity:**
```
Tạo entity Product với fields: name (String, not null), price (BigDecimal), description (String), stock (Integer)
```
**Tạo Controller + Service + Repository cho entity:**
```
Tạo full CRUD cho entity Order bao gồm controller, service, repository, DTOs
```
**Phân tích pom.xml:**
```
Phân tích file pom.xml của tôi xem có vấn đề gì về dependency không
```
**Tạo config:**
```
Tạo application.yml cho project dùng PostgreSQL, có security, actuator, swagger, với 2 profiles dev và prod
```
### Ví dụ sử dụng prompts
**Review API:**
```
Review controller UserController.java theo best practices
```
**Debug lỗi:**
```
Debug exception này: LazyInitializationException - could not initialize proxy...
```
**Tối ưu query:**
```
Tối ưu query trong OrderRepository, đang bị N+1 khi load OrderItems
```
## Scripts
| Script | Mô tả |
|--------|--------|
| `npm run build` | Compile TypeScript → JavaScript (output vào `dist/`) |
| `npm run dev` | Chạy trực tiếp từ source bằng tsx |
| `npm start` | Chạy bản đã build |
## Tech Stack
- **Runtime:** Node.js
- **Language:** TypeScript
- **MCP SDK:** `@modelcontextprotocol/sdk`
- **Validation:** Zod
- **Transport:** stdio
## Cấu trúc project
```
mcp-spring-boot-toolkit/
├── src/
│ ├── index.ts # Entry point - khởi tạo MCP server
│ ├── tools.ts # Đăng ký 8 tools code generation
│ ├── prompts.ts # Đăng ký 6 prompts
│ ├── resources.ts # Đăng ký 4 resources
│ └── resources/ # Markdown guides
│ ├── project-structure.md
│ ├── security-checklist.md
│ ├── layered-architecture.md
│ └── api-design.md
├── dist/ # Build output
├── package.json
├── tsconfig.json
└── README.md
```
## License
MIT
TDQS
Scored across 8 tools
Each tool targets a distinct artifact in the Spring Boot architecture: entity, controller, service, DTO, repository, exception handler, and application properties. The analyze_pom tool is clearly separate for dependency analysis. No two tools appear to generate the same type of output.
Seven tools follow the consistent verb_noun pattern 'generate_<artifact>', and analyze_pom also follows the same verb_noun pattern with a different verb. The naming is predictable and clearly indicates the action and target.
With 8 tools, the server is well-scoped for a Spring Boot code generation toolkit. It covers the essential layers and configuration without excessive granularity, making it easy for an agent to select the right tool.
The set covers core generation needs (entity, controller, service, repository, DTO, exception handler, application properties) and includes pom analysis. Missing are tools for project scaffolding, security configuration, or tests, but these are minor gaps that can be worked around or generated manually.