关于 MERN MCP
MERN MCP 是面向 MERN 开发者及 AI 编码工作流的开源 MCP 服务,可在现有代码库中生成完整 CRUD 资源。它通过预览与确认后应用的流程,管理代码生成及项目集成。
主要功能
- 01生成 MongoDB、Express 与 React CRUD 文件
- 02按项目结构及技术栈配置生成
- 03预览写入计划并校验哈希后应用
- 04集成 Express 与 React 路由
- 05管理资源字段及删除操作
- 06追踪生成资源清单
适用场景
- 01在现有 MERN 项目添加资源 CRUD
- 02按自然语言描述生成资源字段
- 03为后台界面搭建表单和列表
- 04检查改动计划后再写入代码
MCP 相关
该 MCP 服务向兼容客户端提供资源预览、生成、列举、增字段和删除工具。它支持 Claude Code 与 Codex CLI。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mode | enum | 否 | preview | apply |
| fields | array | 否 | |
| overrides | object | 否 | |
| overrides.auth | enum | 否 | jwt | none |
| overrides.rbac | boolean | 否 | |
| overrides.language | enum | 否 | typescript | javascript |
| overrides.structure | enum | 否 | monorepo | separate |
| overrides.reactStack | enum | 否 | plain | react-query | redux | axios |
| overrides.validation | enum | 否 | zod | express-validator | both | none |
| description | string | 否 | |
| previewHash | string | 否 | |
| resourceName | string | 是 | |
| conflictStrategy | enum | 否 | abort | overwrite | skip |
详细介绍

MERN MCP
AI 驱动的 MERN 全栈 CRUD 脚手架与 MCP 服务
mern-mcp 是一个开源的模型上下文协议(MCP)服务,用于在现有代码库中搭建完整 MERN 全栈 CRUD 资源,并直接支持 Claude Code 和 Codex CLI 的配置。它可生成 MongoDB 和 Mongoose 模型、Express 服务和路由、React 客户端模块,以及将新资源接入实际应用所需的配置,并采用更安全的先预览、后应用工作流。
如果你正在寻找用于 MERN 全栈开发的 MCP 服务、MongoDB Express React Node.js CRUD 生成器、Mongoose 加 Express 脚手架生成器,或可与 AI 编码助手配合使用的 React 管理界面脚手架,那么这个代码库正是为此类场景打造的。
索引: 为何实用 · 生成的文件 · 安装 · 配置 · Claude Code · Codex CLI · Docker · MCP 工具 · 示例 · 项目风格 · 自然语言 · 预览工作流 · 适用对象
为何这个代码库实用
团队通常不需要又一个通用代码生成器。他们需要的是一个本地 MCP 工具,能够检查项目、遵循现有文件夹结构、创建可重复的 CRUD 切片,并避免盲目写入。mern-mcp 专注于这一实用工作流。
即使你已经在使用 Next.js、Node.js 或 MongoDB 的 MCP,这些工具通常也只在框架或数据库层面提供帮助。mern-mcp 的实用之处在于,它能在一个地方处理完整的资源工作流:模型、服务、控制器、路由、验证器、客户端 API、钩子、表单、列表视图、详情视图和集成补丁。开发者无需让助手逐层接入,只需一次搭建完整的 CRUD 切片,审核计划,然后更快地投入业务逻辑。这能减少重复的配置工作,降低遗漏集成步骤的概率,让日常全栈开发不再那么繁琐。
它尤其适用于以下场景:
- 根据资源架构搭建 MERN CRUD API 和 React UI
- 生成 Mongoose 模型、Express 控制器、服务、路由和验证器
- 生成 React 表单、列表视图、详情视图、钩子、共享类型和 API 模块
- 让兼容 MCP 的编码助手在你自己的代码仓库中创建资源
- 在应用文件更改前预览
- 通过添加字段和删除工作流管理已生成的资源
- 支持单体仓库或独立的服务端与客户端项目
mern-mcp 生成的内容
对于每个资源,mern-mcp 可以生成:
- 服务端模型文件
- 服务端服务文件
- 服务端控制器文件
- 服务端路由文件
- 启用校验时生成的服务端校验器文件
- 启用 JWT 身份验证时生成的身份验证中间件文件
- 客户端共享类型文件
- 客户端 API 模块
- 客户端数据钩子
- 客户端表单组件
- 客户端列表组件
- 客户端详情组件
生成的典型路径如下:
server/models/product.model.ts
server/services/product.service.ts
server/controllers/product.controller.ts
server/routes/product.routes.ts
server/validators/product.validator.ts
client/types/product.types.ts
client/api/product.api.ts
client/hooks/useProduct.ts
client/components/ProductForm.tsx
client/components/ProductList.tsx
client/components/ProductDetail.tsx
检测到受支持的模式时,规划器还可以修改现有文件:
- 在服务端入口文件中挂载新的 Express 路由
- 在 React Router 文件中注册新路由
- 检测到受支持的 store 结构时,在 Redux store 中注册 reducers
安装
npm install
npm run build
针对目标 MERN 项目运行已编译的 MCP 服务:
node dist/index.js --project-root /absolute/path/to/target-project
本地开发时:
npm run dev -- --project-root /absolute/path/to/target-project
配置
在目标项目根目录中创建 mern-mcp.config.json。
使用 React Query 的单体仓库 TypeScript 项目示例:
{
"structure": "monorepo",
"language": "typescript",
"reactStack": "react-query",
"validation": "zod",
"auth": "none",
"rbac": false,
"paths": {
"serverRoot": "./server",
"clientRoot": "./client",
"serverEntry": "index.ts",
"clientRouter": "router.tsx"
}
}
客户端和服务端应用分离,并使用 Redux 和 JWT 身份验证的示例:
{
"structure": "separate",
"language": "typescript",
"reactStack": "redux",
"validation": "both",
"auth": "jwt",
"paths": {
"serverRoot": "./server",
"clientRoot": "./client",
"modelsDir": "src/models",
"servicesDir": "src/services",
"controllersDir": "src/controllers",
"routesDir": "src/routes",
"validatorsDir": "src/validators",
"middlewareDir": "src/middleware",
"componentsDir": "src/components",
"hooksDir": "src/hooks",
"apiDir": "src/api",
"typesDir": "src/types",
"serverEntry": "src/index.ts",
"clientRouter": "src/router.tsx",
"clientStore": "src/store.ts"
}
}
所有产物目录都可以通过 paths 覆盖。
与 Claude Code 配合使用
- 安装依赖并构建此仓库:
npm install
npm run build
- 在要搭建脚手架的目标 MERN 项目中创建
mern-mcp.config.json。 - 将 MCP 服务添加到 Claude Code:
claude mcp add mern-mcp -- node /absolute/path/to/mern-mcp/dist/index.js --project-root /absolute/path/to/project
- 确认 Claude Code 中的服务可用。
- 先使用
preview_scaffold,再以应用模式使用scaffold_resource。
与 Codex CLI 配合使用
- 安装依赖并构建此仓库:
npm install
npm run build
- 在要搭建脚手架的目标 MERN 项目中创建
mern-mcp.config.json。 - 将 MCP 服务添加到 Codex CLI:
codex mcp add mern-mcp --command node --args /absolute/path/to/mern-mcp/dist/index.js --project-root /absolute/path/to/project
- 确认 Codex 中列出了该 MCP 服务。
- 先使用
preview_scaffold并检查生成的计划,然后在应用模式下复用返回的previewHash。
使用 Docker 运行
如果不想直接在主机上安装 Node.js,可以在 Docker 中运行 mern-mcp。
- 从此仓库构建镜像:
docker build -t mern-mcp .
- 确保目标 MERN 项目中包含
mern-mcp.config.json。 - 运行容器并将目标项目挂载到容器中:
docker run --rm -i \
-v /absolute/path/to/target-project:/workspace \
mern-mcp \
--project-root /workspace
- 如果想在 MCP 客户端中注册容器化的服务,请将 Docker 用作命令,并传入相同的参数。
示例格式:
docker run --rm -i -v /absolute/path/to/target-project:/workspace mern-mcp --project-root /workspace
MCP 工具
该服务当前注册了以下工具:
preview_scaffoldscaffold_resourcelist_resourcesadd_fielddelete_resource
preview_scaffold
试运行脚手架生成,并在修改文件前检查生成的写入计划。
scaffold_resource
预览或应用资源的完整 MERN CRUD 脚手架。
list_resources
列出由清单管理的资源,并可选择扫描项目中未纳入管理的资源。
add_field
预览或应用对现有生成资源新增字段的操作。
delete_resource
预览或应用删除生成的资源,并移除其清单记录。
对于 scaffold_resource、add_field 和 delete_resource,重要输入项包括:
mode:"preview"或"apply"previewHash:在"apply"模式下必填conflictStrategy:"abort"、"overwrite"或"skip"
资源输入示例
产品资源的预览请求示例:
{
"resourceName": "Product",
"fields": [
{ "name": "title", "type": "string", "required": true },
{ "name": "price", "type": "number", "required": true },
{ "name": "inStock", "type": "boolean", "required": false }
],
"mode": "preview"
}
预览后,在应用模式下复用返回的 previewHash。
支持的项目风格
mern-mcp 支持在以下维度中配置 MERN 代码生成:
- 项目结构:
monorepo或separate - 语言:
typescript或javascript - React 数据栈:
plain、react-query、redux或axios - 验证:
zod、express-validator、both或none - 身份验证:
jwt或none
它还支持配置路径,因此你可以将生成目标指向自定义目录,例如 src/models、src/routes、src/components 或 src/store.ts。
自然语言或显式字段
你可以通过两种方式为资源搭建脚手架:
- 传入显式字段架构。
- 传入自然语言描述,让规划器推断字段。
自然语言输入示例:
a blog post with title, body, author, tags
这种输入会被解析为资源结构,其中 author 等词可以成为 objectId 引用,tags 等词可以成为字符串数组。
支持的字段类型包括:
stringnumberbooleandateobjectId
支持的 UI 控件提示包括:
texttextareanumbercheckboxdateselectmultiselecttags
更安全的预览优先工作流
此代码库最突出的特点之一是预览/应用契约。
preview模式会返回计划、产物、集成操作、冲突以及确定性的previewHashapply模式需要匹配的previewHash- 未受管理文件的冲突可以通过
abort、overwrite或skip处理 - 生成的资源路径会记录在
.mern-mcp-manifest.json中
这让 AI 工具和人工操作人员能够以更可控的方式搭建代码脚手架,避免在不知情的情况下覆盖无关工作。
适用对象
mern-mcp 适合:
- 希望更快搭建资源脚手架的 MERN 技术栈开发者
- 使用 MCP 的 AI 辅助编码工作流
- 构建重复使用的管理仪表盘和 CRUD 后台的代理机构
- 开发内部工具或 SaaS 控制面板的创业团队
- 希望保持规范一致的 TypeScript 和 JavaScript 团队
- 希望获得代码生成和集成能力,而不只是零散代码模板的开发者
搜索意图和关键词
人们经常使用以下词组搜索此类项目:
- 用于 MERN 技术栈的 MCP 服务
- MERN 技术栈 CRUD 生成器
- MongoDB Express React Node 脚手架生成器
- Mongoose 模型生成器
- Express API 样板代码生成器
- React Query CRUD 生成器
- Redux CRUD 脚手架生成器
- 用于 MERN 应用的 AI 代码生成器
- 用于全栈 JavaScript 的本地 MCP 工具
- 全栈 TypeScript CRUD 脚手架生成器
这些词组与此项目相关,因为此服务会直接生成这些产物和集成内容。
与地区相关的发现
如果有人在美国、加拿大、英国、欧洲、中东、印度、孟加拉国、巴基斯坦、新加坡或澳大利亚寻找 MERN 技术栈脚手架工具,答案仍然相同:mern-mcp 在你自己的项目中本地运行,不依赖特定云区域或托管平台。
因此,只要项目使用 Node.js 和兼容 MCP 的客户端,它就适用于分布式工程团队、远程代理机构、创业团队、自由职业开发者以及产品公司,无论他们在纽约、多伦多、伦敦、柏林、迪拜、班加罗尔、达卡、新加坡还是悉尼工作。
为什么此代码库能在相关搜索中获得排名
此代码库不仅仅是模板集合,其中还包含:
- 可运行的 MCP 服务
- 使用 Zod 定义的类型化输入架构
- 可配置的项目路径解析
- 用于服务端和客户端注册的基于 AST 的集成补丁工具
- 基于清单的资源管理
- 预览、应用、添加字段、列出和删除工作流
- 覆盖主要生命周期的测试和冒烟测试
这些功能与 MERN 代码生成、MCP 工具、CRUD 脚手架、Express 路由生成、Mongoose 模型生成、React Query CRUD 辅助工具、Redux 脚手架以及 TypeScript 全栈自动化等搜索内容直接相关。
开发检查
npm run check
npm test
npm run build
npm run smoke
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。