# dev-mcp **Repository Path**: 741852963/dev-mcp ## Basic Information - **Project Name**: dev-mcp - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-30 - **Last Updated**: 2026-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # devMcp — MCP 工具集 基于 [Model Context Protocol](https://modelcontextprotocol.io/) 的 Python 命令行工具集,供大模型通过 MCP 协议调用,实现代码生成、项目初始化、数据库操作、文件管理等功能。 ## 特性 - **22 个 MCP Tool**,覆盖代码生成、项目初始化、数据库操作、文件管理、文本处理、数学计算 - **stdio 传输**,无需启动 HTTP 服务,命令行直接运行 - **CRUD 代码生成**,参考 forge-harness 项目风格,一键生成 Spring Boot 3 + Vue3 全栈 CRUD 代码 - **项目骨架初始化**,生成 Java 17 + Vue3 前后端完整项目框架(40 个文件) - **数据库操作**,支持 SQLite / MySQL / PostgreSQL ## 快速开始 ### 环境要求 - Python 3.10+ - pip 或 uv ### 安装 ```bash # 克隆项目 git clone cd mcp-server # 创建虚拟环境(推荐) python -m venv .venv .venv\Scripts\activate # Windows # source .venv/bin/activate # Linux/macOS # 安装依赖 pip install -e ".[dev]" ``` ### 运行 MCP 服务器 ```bash # stdio 模式(供 MCP 客户端连接) mcp-server ``` ### 在 Claude Desktop / Cursor 中配置 编辑 MCP 客户端配置文件,添加: ```json { "mcpServers": { "devMcp": { "command": "d:\\code\\dev-mcp\\.venv\\Scripts\\mcp.exe", "args": ["run", "src/mcp_server/server.py:mcp"] } } } ``` > 项目根目录已提供 [.mcp.json](.mcp.json),Trae IDE 会自动识别。 ### 运行测试 ```bash pytest tests/ -v ``` ## 工具一览 ### CRUD 代码生成 | 工具 | 说明 | |------|------| | `generate_crud` | 根据实体定义 JSON 生成 CRUD 代码(返回文件列表) | | `generate_crud_to_disk` | 生成 CRUD 代码并写入磁盘 | **调用示例**: ```json { "name": "generate_crud", "arguments": { "entity_json": "{\"name\":\"User\",\"comment\":\"用户\",\"fields\":[{\"name\":\"username\",\"type\":\"string\",\"comment\":\"用户名\",\"nullable\":false},{\"name\":\"email\",\"type\":\"string\",\"comment\":\"邮箱\"},{\"name\":\"age\",\"type\":\"integer\",\"comment\":\"年龄\"}]}", "backend": true, "frontend": true, "sql": true } } ``` **生成的后端文件**(10 个): | 文件 | 说明 | |------|------| | `Entity.java` | 实体类(继承 BaseEntity,含逻辑删除) | | `Mapper.java` | MyBatis-Plus Mapper 接口 | | `Converter.java` | MapStruct 转换器 | | `CreateDTO.java` | 创建 DTO(含校验注解) | | `UpdateDTO.java` | 更新 DTO | | `QueryDTO.java` | 查询 DTO(继承 PageRequest) | | `VO.java` | 视图对象 | | `Service.java` | 服务接口 | | `ServiceImpl.java` | 服务实现(分页 + 条件构造 + 异常处理) | | `Controller.java` | RESTful 控制器 | **生成的前端文件**(4 个): | 文件 | 说明 | |------|------| | `types.ts` | TypeScript 类型定义 | | `api.ts` | API 接口封装(get/post/put/del) | | `route.ts` | 路由配置 | | `List.vue` | 列表页(ProTable + ProForm + ProDialog) | **字段类型映射**: | 类型标识 | Java 类型 | TypeScript 类型 | SQL 类型 | |----------|-----------|-----------------|----------| | `string` | String | string | VARCHAR(100) | | `integer` | Integer | number | INT | | `long` | Long | number | BIGINT | | `double` | Double | number | DOUBLE | | `decimal` | BigDecimal | number | DECIMAL(10,2) | | `boolean` | Boolean | boolean | TINYINT(1) | | `date` | LocalDate | string | DATE | | `datetime` | LocalDateTime | string | TIMESTAMP | | `text` | String | string | TEXT | ### 项目初始化 | 工具 | 说明 | |------|------| | `init_project` | 生成 Java 17 + Vue3 前后端项目骨架 | | `init_project_to_disk` | 生成项目骨架并写入磁盘 | **调用示例**: ```json { "name": "init_project_to_disk", "arguments": { "project_name": "my-admin", "package_name": "com.example.admin", "output_dir": "." } } ``` **生成的项目内容**(40 个文件): - **后端**(16 个):pom.xml、启动类、Result/TableDataInfo/BizException/ExceptionEnum/GlobalExceptionHandler/BaseEntity、6 个 Config(MyBatis-Plus/Jackson/CORS/线程池/自动填充)、SecurityUtils、application.yml/application-test.yml - **前端**(24 个):package.json、vite.config.ts、unocss.config.ts、main.ts、App.vue、request.ts、auth.ts、router(3 个)、store(3 个)、ProTable/ProForm/ProDialog、useTable/useForm、Layout、Login/Dashboard/Error 页面 ### 数据库操作 | 工具 | 说明 | |------|------| | `db_connect` | 连接数据库(SQLite/MySQL/PostgreSQL) | | `db_list_tables` | 列出所有表及行数 | | `db_describe_table` | 查看表结构(列名、类型、是否为空、默认值) | | `db_execute_query` | 执行 SELECT 查询(白名单校验,限制 100 行) | | `db_execute_update` | 执行写操作(INSERT/UPDATE/DELETE/DDL) | **调用示例**: ```json { "name": "db_connect", "arguments": { "db_type": "sqlite", "database": ":memory:" } } ``` ### 文件管理 | 工具 | 说明 | |------|------| | `list_directory` | 列出目录内容 | | `read_file` | 读取文件内容(限 1MB) | | `write_file` | 写入文件 | | `search_files` | glob 模式搜索文件 | | `get_file_info` | 获取文件详细信息 | ### 文本处理 | 工具 | 说明 | |------|------| | `text_transform` | 文本转换(大小写/反转/去空白) | | `text_search` | 正则搜索文本 | | `text_replace` | 正则替换文本 | | `text_stats` | 文本统计(字符/单词/行数) | | `json_format` | JSON 格式化 | ### 数学计算 | 工具 | 说明 | |------|------| | `calculate` | 数学表达式计算(支持 sqrt/sin/cos/log 等) | | `unit_convert` | 单位转换(长度/重量/温度) | | `base_convert` | 进制转换(2-36 进制) | ## 项目结构 ``` mcp-server/ ├── pyproject.toml # 项目配置 ├── client_test.py # MCP 客户端测试脚本 ├── src/mcp_server/ │ ├── __init__.py # 入口 │ ├── server.py # FastMCP 服务器 │ ├── generator/ │ │ ├── models.py # 数据模型(EntityDef/FieldDef/FieldType) │ │ ├── parser.py # 实体定义 JSON 解析器 │ │ ├── codegen.py # CRUD 代码生成器(Jinja2) │ │ ├── init_codegen.py # 项目骨架生成器 │ │ └── templates/ │ │ ├── backend/ # 10 个 Java 后端模板 │ │ ├── frontend/ # 4 个 Vue3 前端模板 │ │ └── sql/ # 1 个 DDL 模板 │ └── tools/ │ ├── file_tools.py # 文件管理工具 │ ├── text_tools.py # 文本处理工具 │ ├── calc_tools.py # 数学计算工具 │ ├── crud_generator.py # CRUD 生成工具 │ ├── init_project.py # 项目初始化工具 │ └── db_tool.py # 数据库操作工具 └── tests/ ├── test_tools.py # 基础工具测试 └── test_generator.py # 代码生成器测试 ``` ## 技术栈 | 类别 | 技术 | |------|------| | 语言 | Python 3.10+ | | MCP 框架 | [mcp](https://pypi.org/project/mcp/) (FastMCP) | | 模板引擎 | Jinja2 | | 传输方式 | stdio | | 测试 | pytest + pytest-asyncio | | Linter | ruff | | 数据库 | sqlite3(内置)/ pymysql(可选)/ psycopg2(可选) | ## 生成的代码技术栈 ### 后端 | 技术 | 版本 | |------|------| | Java | 17 | | Spring Boot | 3.2.5 | | MyBatis-Plus | 3.5.6 | | Druid | 1.2.22 | | MapStruct | 1.5.5.Final | | Knife4j | 4.5.0 | | JWT (JJWT) | 0.12.5 | ### 前端 | 技术 | 版本 | |------|------| | Vue | 3.4+ | | Element Plus | 2.6+ | | Pinia | 2.1+ | | Vue Router | 4.3+ | | UnoCSS | 0.58+ | | Axios | 1.6+ | | TypeScript | 5.4+ | ## License MIT