admin-gen-mcp 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. admin_gen_mcp-0.1.0/PKG-INFO +183 -0
  2. admin_gen_mcp-0.1.0/README.md +156 -0
  3. admin_gen_mcp-0.1.0/pyproject.toml +55 -0
  4. admin_gen_mcp-0.1.0/src/admin_gen_mcp/__init__.py +6 -0
  5. admin_gen_mcp-0.1.0/src/admin_gen_mcp/__main__.py +4 -0
  6. admin_gen_mcp-0.1.0/src/admin_gen_mcp/_cli.py +9 -0
  7. admin_gen_mcp-0.1.0/src/admin_gen_mcp/commands/admin-gen.md +127 -0
  8. admin_gen_mcp-0.1.0/src/admin_gen_mcp/commands/backend-gen.md +181 -0
  9. admin_gen_mcp-0.1.0/src/admin_gen_mcp/fields/businessTrip.json +47 -0
  10. admin_gen_mcp-0.1.0/src/admin_gen_mcp/fields/example.json +101 -0
  11. admin_gen_mcp-0.1.0/src/admin_gen_mcp/fields/trainApplication.json +69 -0
  12. admin_gen_mcp-0.1.0/src/admin_gen_mcp/generator.py +818 -0
  13. admin_gen_mcp-0.1.0/src/admin_gen_mcp/server.py +422 -0
  14. admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/Controller.java +88 -0
  15. admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/DetailEntity.java +48 -0
  16. admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/Entity.java +80 -0
  17. admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/Mapper.java +10 -0
  18. admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/Mapper.xml +6 -0
  19. admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/Service.java +8 -0
  20. admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/ServiceImpl.java +101 -0
  21. admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/api.ts +40 -0
  22. admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/form.vue +670 -0
  23. admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/index.vue +317 -0
  24. admin_gen_mcp-0.1.0/src/admin_gen_mcp/templates/options.ts +100 -0
@@ -0,0 +1,183 @@
1
+ Metadata-Version: 2.4
2
+ Name: admin-gen-mcp
3
+ Version: 0.1.0
4
+ Summary: Vue 3 + Element Plus + Spring Boot 全栈代码生成器 MCP Server
5
+ Project-URL: Homepage, https://github.com/yourname/admin-gen-mcp
6
+ Project-URL: Repository, https://github.com/yourname/admin-gen-mcp
7
+ Author-email: Your Name <your@email.com>
8
+ License-Expression: MIT
9
+ Keywords: admin,code-generator,element-plus,mcp,spring-boot,vue
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Requires-Python: >=3.10
19
+ Requires-Dist: httpx>=0.25.0
20
+ Requires-Dist: mcp>=1.0.0
21
+ Requires-Dist: openai>=1.0.0
22
+ Provides-Extra: dev
23
+ Requires-Dist: black>=23.0.0; extra == 'dev'
24
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
25
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
26
+ Description-Content-Type: text/markdown
27
+
28
+ # Admin Gen MCP
29
+
30
+ Vue 3 + Element Plus 前端 & Spring Boot + MyBatis-Plus 后端 全栈代码生成器,基于 MCP 协议。
31
+
32
+ ## 功能
33
+
34
+ - **前端生成**:api.ts, options.ts, index.vue, form.vue
35
+ - **后端生成**:Entity, Controller, Service, ServiceImpl, Mapper, Mapper.xml
36
+ - **全栈生成**:一份 JSON 配置同时生成前端 + 后端(自动类型映射)
37
+ - 支持主表 + 多子表
38
+ - 支持字典配置
39
+ - 调用阿里云 qwen3-max 模型生成代码
40
+
41
+ ## 安装
42
+
43
+ ```bash
44
+ pip install admin-gen-mcp
45
+ ```
46
+
47
+ 或从源码安装:
48
+
49
+ ```bash
50
+ git clone https://github.com/yourname/admin-gen-mcp.git
51
+ cd admin-gen-mcp
52
+ pip install -e .
53
+ ```
54
+
55
+ ## 环境变量
56
+
57
+ 使用前必须设置阿里云 DashScope API Key:
58
+
59
+ ```bash
60
+ export DASHSCOPE_API_KEY="your-api-key"
61
+ ```
62
+
63
+ Windows:
64
+ ```cmd
65
+ set DASHSCOPE_API_KEY=your-api-key
66
+ ```
67
+
68
+ ## 使用方式
69
+
70
+ ### 1. Claude Code MCP
71
+
72
+ ```bash
73
+ claude mcp add-json admin-gen '{"type":"stdio","command":"admin-gen-mcp","env":{"DASHSCOPE_API_KEY":"your-api-key"}}'
74
+ ```
75
+
76
+ 或使用 uvx(无需 pip install):
77
+
78
+ ```bash
79
+ claude mcp add-json admin-gen '{"type":"stdio","command":"uvx","args":["admin-gen-mcp"],"env":{"DASHSCOPE_API_KEY":"your-api-key"}}'
80
+ ```
81
+
82
+ ### 2. Cursor / VS Code MCP
83
+
84
+ 在 `.cursor/mcp.json` 或 `.vscode/settings.json` 中配置:
85
+
86
+ ```json
87
+ {
88
+ "mcpServers": {
89
+ "admin-gen": {
90
+ "command": "admin-gen-mcp",
91
+ "env": {
92
+ "DASHSCOPE_API_KEY": "your-api-key"
93
+ }
94
+ }
95
+ }
96
+ }
97
+ ```
98
+
99
+ ### 3. 命令行工具
100
+
101
+ ```bash
102
+ # 从 JSON 配置文件生成前端代码
103
+ admin-gen --config fields/example.json
104
+
105
+ # 交互模式
106
+ admin-gen -i
107
+ ```
108
+
109
+ ### 4. Python API
110
+
111
+ ```python
112
+ from admin_gen_mcp.generator import CodeGenerator
113
+
114
+ gen = CodeGenerator(api_key="your-api-key")
115
+ config = gen.load_config("fields/example.json")
116
+
117
+ # 全栈生成
118
+ results = gen.generate_fullstack(config)
119
+ print(results["frontend"]) # 前端 4 个文件
120
+ print(results["backend"]) # 后端 6~9 个文件
121
+ ```
122
+
123
+ ## MCP 工具列表
124
+
125
+ | 工具 | 说明 |
126
+ |------|------|
127
+ | `generate_admin_page` | 前端代码生成(直接传字段参数) |
128
+ | `generate_from_config` | 前端代码生成(JSON 配置文件路径) |
129
+ | `generate_backend_code` | 后端代码生成(直接传字段参数) |
130
+ | `generate_fullstack` | 前后端一体生成(JSON 配置文件路径) |
131
+
132
+ ## 配置文件格式
133
+
134
+ ```json
135
+ {
136
+ "功能名称": "员工培训申请",
137
+ "模块路径": "hr/trainApplication",
138
+ "权限前缀": "hr_trainapplication",
139
+ "输出目录": "src/views",
140
+
141
+ "主表字段": [
142
+ {
143
+ "label": "培训主题",
144
+ "key": "trainTitle",
145
+ "type": "input",
146
+ "required": true,
147
+ "show": true,
148
+ "alwaysHide": false,
149
+ "smart": true,
150
+ "width": "200"
151
+ }
152
+ ],
153
+
154
+ "子表配置": [
155
+ {
156
+ "名称": "参训人员明细",
157
+ "标识": "detail",
158
+ "实体名称": "TrainApplicationDetail",
159
+ "字段列表": [...]
160
+ }
161
+ ],
162
+
163
+ "字典配置": [
164
+ { "key": "trainType", "dict": "hr_train_type", "import": "/@/enums/dict" }
165
+ ]
166
+ }
167
+ ```
168
+
169
+ ## 字段类型映射
170
+
171
+ | 前端 type | 前端组件 | Java 类型 |
172
+ |-----------|---------|-----------|
173
+ | input | el-input | String |
174
+ | textarea | el-input[textarea] | String |
175
+ | select | el-select | String |
176
+ | date | el-date-picker | LocalDate |
177
+ | datetime | el-date-picker | LocalDateTime |
178
+ | number | microme-operator | BigDecimal |
179
+ | upload | upload-file | String |
180
+
181
+ ## License
182
+
183
+ MIT
@@ -0,0 +1,156 @@
1
+ # Admin Gen MCP
2
+
3
+ Vue 3 + Element Plus 前端 & Spring Boot + MyBatis-Plus 后端 全栈代码生成器,基于 MCP 协议。
4
+
5
+ ## 功能
6
+
7
+ - **前端生成**:api.ts, options.ts, index.vue, form.vue
8
+ - **后端生成**:Entity, Controller, Service, ServiceImpl, Mapper, Mapper.xml
9
+ - **全栈生成**:一份 JSON 配置同时生成前端 + 后端(自动类型映射)
10
+ - 支持主表 + 多子表
11
+ - 支持字典配置
12
+ - 调用阿里云 qwen3-max 模型生成代码
13
+
14
+ ## 安装
15
+
16
+ ```bash
17
+ pip install admin-gen-mcp
18
+ ```
19
+
20
+ 或从源码安装:
21
+
22
+ ```bash
23
+ git clone https://github.com/yourname/admin-gen-mcp.git
24
+ cd admin-gen-mcp
25
+ pip install -e .
26
+ ```
27
+
28
+ ## 环境变量
29
+
30
+ 使用前必须设置阿里云 DashScope API Key:
31
+
32
+ ```bash
33
+ export DASHSCOPE_API_KEY="your-api-key"
34
+ ```
35
+
36
+ Windows:
37
+ ```cmd
38
+ set DASHSCOPE_API_KEY=your-api-key
39
+ ```
40
+
41
+ ## 使用方式
42
+
43
+ ### 1. Claude Code MCP
44
+
45
+ ```bash
46
+ claude mcp add-json admin-gen '{"type":"stdio","command":"admin-gen-mcp","env":{"DASHSCOPE_API_KEY":"your-api-key"}}'
47
+ ```
48
+
49
+ 或使用 uvx(无需 pip install):
50
+
51
+ ```bash
52
+ claude mcp add-json admin-gen '{"type":"stdio","command":"uvx","args":["admin-gen-mcp"],"env":{"DASHSCOPE_API_KEY":"your-api-key"}}'
53
+ ```
54
+
55
+ ### 2. Cursor / VS Code MCP
56
+
57
+ 在 `.cursor/mcp.json` 或 `.vscode/settings.json` 中配置:
58
+
59
+ ```json
60
+ {
61
+ "mcpServers": {
62
+ "admin-gen": {
63
+ "command": "admin-gen-mcp",
64
+ "env": {
65
+ "DASHSCOPE_API_KEY": "your-api-key"
66
+ }
67
+ }
68
+ }
69
+ }
70
+ ```
71
+
72
+ ### 3. 命令行工具
73
+
74
+ ```bash
75
+ # 从 JSON 配置文件生成前端代码
76
+ admin-gen --config fields/example.json
77
+
78
+ # 交互模式
79
+ admin-gen -i
80
+ ```
81
+
82
+ ### 4. Python API
83
+
84
+ ```python
85
+ from admin_gen_mcp.generator import CodeGenerator
86
+
87
+ gen = CodeGenerator(api_key="your-api-key")
88
+ config = gen.load_config("fields/example.json")
89
+
90
+ # 全栈生成
91
+ results = gen.generate_fullstack(config)
92
+ print(results["frontend"]) # 前端 4 个文件
93
+ print(results["backend"]) # 后端 6~9 个文件
94
+ ```
95
+
96
+ ## MCP 工具列表
97
+
98
+ | 工具 | 说明 |
99
+ |------|------|
100
+ | `generate_admin_page` | 前端代码生成(直接传字段参数) |
101
+ | `generate_from_config` | 前端代码生成(JSON 配置文件路径) |
102
+ | `generate_backend_code` | 后端代码生成(直接传字段参数) |
103
+ | `generate_fullstack` | 前后端一体生成(JSON 配置文件路径) |
104
+
105
+ ## 配置文件格式
106
+
107
+ ```json
108
+ {
109
+ "功能名称": "员工培训申请",
110
+ "模块路径": "hr/trainApplication",
111
+ "权限前缀": "hr_trainapplication",
112
+ "输出目录": "src/views",
113
+
114
+ "主表字段": [
115
+ {
116
+ "label": "培训主题",
117
+ "key": "trainTitle",
118
+ "type": "input",
119
+ "required": true,
120
+ "show": true,
121
+ "alwaysHide": false,
122
+ "smart": true,
123
+ "width": "200"
124
+ }
125
+ ],
126
+
127
+ "子表配置": [
128
+ {
129
+ "名称": "参训人员明细",
130
+ "标识": "detail",
131
+ "实体名称": "TrainApplicationDetail",
132
+ "字段列表": [...]
133
+ }
134
+ ],
135
+
136
+ "字典配置": [
137
+ { "key": "trainType", "dict": "hr_train_type", "import": "/@/enums/dict" }
138
+ ]
139
+ }
140
+ ```
141
+
142
+ ## 字段类型映射
143
+
144
+ | 前端 type | 前端组件 | Java 类型 |
145
+ |-----------|---------|-----------|
146
+ | input | el-input | String |
147
+ | textarea | el-input[textarea] | String |
148
+ | select | el-select | String |
149
+ | date | el-date-picker | LocalDate |
150
+ | datetime | el-date-picker | LocalDateTime |
151
+ | number | microme-operator | BigDecimal |
152
+ | upload | upload-file | String |
153
+
154
+ ## License
155
+
156
+ MIT
@@ -0,0 +1,55 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "admin-gen-mcp"
7
+ version = "0.1.0"
8
+ description = "Vue 3 + Element Plus + Spring Boot 全栈代码生成器 MCP Server"
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.10"
12
+ authors = [
13
+ { name = "Your Name", email = "your@email.com" }
14
+ ]
15
+ keywords = ["mcp", "vue", "element-plus", "spring-boot", "code-generator", "admin"]
16
+ classifiers = [
17
+ "Development Status :: 3 - Alpha",
18
+ "Intended Audience :: Developers",
19
+ "License :: OSI Approved :: MIT License",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.10",
22
+ "Programming Language :: Python :: 3.11",
23
+ "Programming Language :: Python :: 3.12",
24
+ "Programming Language :: Python :: 3.13",
25
+ ]
26
+ dependencies = [
27
+ "mcp>=1.0.0",
28
+ "openai>=1.0.0",
29
+ "httpx>=0.25.0",
30
+ ]
31
+
32
+ [project.optional-dependencies]
33
+ dev = [
34
+ "pytest>=7.0.0",
35
+ "black>=23.0.0",
36
+ "ruff>=0.1.0",
37
+ ]
38
+
39
+ [project.scripts]
40
+ admin-gen = "admin_gen_mcp.generator:main"
41
+ admin-gen-mcp = "admin_gen_mcp._cli:run_server"
42
+
43
+ [project.urls]
44
+ Homepage = "https://github.com/yourname/admin-gen-mcp"
45
+ Repository = "https://github.com/yourname/admin-gen-mcp"
46
+
47
+ [tool.hatch.build.targets.wheel]
48
+ packages = ["src/admin_gen_mcp"]
49
+
50
+ [tool.hatch.build.targets.sdist]
51
+ include = [
52
+ "src/admin_gen_mcp",
53
+ "README.md",
54
+ "pyproject.toml",
55
+ ]
@@ -0,0 +1,6 @@
1
+ """
2
+ Admin Page Generator MCP Server
3
+ Vue 3 + Element Plus 后台管理页面代码生成器
4
+ """
5
+
6
+ __version__ = "0.1.0"
@@ -0,0 +1,4 @@
1
+ """python -m admin_gen_mcp → 启动 MCP Server"""
2
+ from admin_gen_mcp._cli import run_server
3
+
4
+ run_server()
@@ -0,0 +1,9 @@
1
+ """CLI entry points (sync wrappers for async functions)."""
2
+ import asyncio
3
+
4
+ from .server import main
5
+
6
+
7
+ def run_server():
8
+ """Sync entry point for `admin-gen-mcp` command."""
9
+ asyncio.run(main())
@@ -0,0 +1,127 @@
1
+ # 后台管理页面生成器
2
+
3
+ 你是一个专业的 Vue 3 + Element Plus 后台管理系统页面生成专家。根据用户提供的需求信息,参考模板文件生成高质量的管理页面代码。
4
+
5
+ ## 技术栈
6
+
7
+ - Vue 3 (Composition API + `<script setup>`)
8
+ - Element Plus
9
+ - TypeScript
10
+ - vue-i18n(国际化)
11
+ - moment(日期处理)
12
+
13
+ ## 参考模板
14
+
15
+ 生成代码前,必须先读取以下模板文件作为代码风格和结构的参考:
16
+
17
+ - `templates/api.ts` - API 接口模板
18
+ - `templates/options.ts` - 字段配置模板(包含主表 dataMasterEntity 和子表 dataDetailEntity)
19
+ - `templates/index.vue` - 列表页模板
20
+ - `templates/form.vue` - 表单页模板(包含子表的表格编辑)
21
+
22
+ ## 生成文件
23
+
24
+ 根据用户提供的模块路径,生成以下 4 个文件:
25
+
26
+ ```
27
+ src/views/{module}/{feature}/
28
+ ├── api.ts # API 接口定义
29
+ ├── options.ts # 字段配置(主表 + 子表)
30
+ ├── index.vue # 列表页
31
+ └── form.vue # 表单页(包含子表编辑)
32
+ ```
33
+
34
+ ## 用户输入
35
+
36
+ 用户需要提供:
37
+ 1. **功能名称**:如"项目资产抵入"
38
+ 2. **模块路径**:如 `financialcapital/DebtProjectAssetsOffset`
39
+ 3. **主表字段**:包含字段标识、名称、类型、是否必填、是否显示等信息
40
+ 4. **子表配置**(可选):子表名称、标识、字段列表
41
+ 5. **字典配置**:需要使用的字典及其来源
42
+
43
+ ## 执行步骤
44
+
45
+ 1. 读取 `templates/` 目录下的所有模板文件
46
+ 2. 根据用户提供的字段信息,参照模板生成对应代码
47
+ 3. 如果有子表配置,在 options.ts 中生成 dataDetailEntity,在 form.vue 中生成子表编辑区域
48
+ 4. 保存生成的代码到指定目录
49
+
50
+ ## 代码规范
51
+
52
+ 1. **国际化**:文本使用 `t('column.{processDefKey}.master.{fieldName}')` 格式,子表使用 `t('column.{processDefKey}.detail.{fieldName}')`
53
+ 2. **权限控制**:按钮使用 `v-auth="'{module}_{feature}_{action}'"` 指令
54
+ 3. **异步组件**:使用 `defineAsyncComponent` 加载子组件
55
+ 4. **注释**:关键逻辑添加中文注释
56
+
57
+ ## 字段类型映射
58
+
59
+ | 字段类型 | Element Plus 组件 |
60
+ |---------|------------------|
61
+ | input | el-input |
62
+ | textarea | el-input[type=textarea] |
63
+ | select | el-select |
64
+ | radio | el-radio-group |
65
+ | date | el-date-picker[type=date] |
66
+ | datetime | el-date-picker[type=datetime] |
67
+ | number | microme-operator |
68
+ | upload | upload-file |
69
+
70
+ ## 子表生成规则
71
+
72
+ 当配置中包含"子表配置"时,需要为每个子表生成对应的代码:
73
+
74
+ ### 1. options.ts 中生成
75
+
76
+ ```typescript
77
+ // 主表配置
78
+ export const dataMasterEntity = { ... }
79
+
80
+ // 子表1配置
81
+ export const dataDetailEntity = { ... }
82
+
83
+ // 子表2配置(如果有)
84
+ export const dataDetailProjectEntity = { ... }
85
+ ```
86
+
87
+ ### 2. form.vue 中生成
88
+
89
+ 每个子表需要:
90
+ - 独立的折叠面板区域 `<el-collapse-item>`
91
+ - 新增/删除按钮
92
+ - el-table 可编辑表格
93
+ - 子表验证规则,如 `dataDetailRules`、`dataDetailProjectRules`
94
+ - 子表相关变量:
95
+ - `detailTable`、`detailProjectTable` - 表格引用
96
+ - `detailSelectRows`、`detailProjectSelectRows` - 选中行
97
+ - `detailColumns`、`detailProjectColumns` - 列配置
98
+ - 子表相关方法:
99
+ - `addDetailClick()`、`addDetailProjectClick()` - 新增行
100
+ - `deleteDetailClick()`、`deleteDetailProjectClick()` - 删除行
101
+ - `detailSelectChangeHandle()`、`detailProjectSelectChangeHandle()` - 选择变化
102
+
103
+ ### 3. dataForm 中包含子表数组
104
+
105
+ ```typescript
106
+ const dataForm = reactive({
107
+ // 主表字段...
108
+ detail: [], // 子表1数据
109
+ detailProject: [], // 子表2数据(如果有)
110
+ })
111
+ ```
112
+
113
+ ### 4. 子表按钮禁用逻辑
114
+
115
+ ```typescript
116
+ // 新增按钮禁用:查看模式或表单禁用时
117
+ const isAddDetailDisabled = computed(() => FormDisabled.value)
118
+
119
+ // 删除按钮禁用:没有选中行或表单禁用时
120
+ const isDelDetailDisabled = computed(() =>
121
+ detailSelectRows.value.length === 0 || FormDisabled.value
122
+ )
123
+ ```
124
+
125
+ ## 用户输入
126
+
127
+ $ARGUMENTS