nix devshell mcp
用于生成Nix薄片开发环境的模型上下文协议(MCP)服务器
   
此MCP服务器使AI助手能够根据对话提示生成完全配置的Nix flake开发环境。它在开发需求的自然语言描述和生产就绪的Nix-devshell配置之间架起了一座桥梁。
特性
✨ 对话式发展环境的营造
- 从自然语言生成完整的Nix-flake项目
- 4个生产就绪的配置文件模板
- 自动direnv配置
- Git存储库初始化
🛡️ 无损和安全
- 从不覆盖现有文件
- 路径遍历保护
- 原子文件写入
- 全面验证
🔧 企业就绪
- 私有npm注册表支持
- 私有PyPI索引配置
- Maven存储库配置
- 两级配置系统(用户+项目)
🎨 高度可定制
- Handlebars模板包含11个自定义助手
- JSON模式验证
- 环境变量分辨率
- 创建后挂钩
快速开始
安装
# Clone the repository
git clone https://github.com/kcalvelli/nix-devshell-mcp.git
cd nix-devshell-mcp
# Install dependencies
npm install
# Build the project
npm run build配置
添加到您的Claude桌面配置(~/.config/Claude/claude_desktop_config.json):
{
"mcpServers": {
"nix-devshell": {
"command": "node",
"args": ["/path/to/nix-devshell-mcp/build/index.js"]
}
}
}用法示例
配置后,您可以询问Claude:
"Create a TypeScript Node.js project with Node 20 in /home/user/my-app"克劳德将使用 create_devshell 生成工具:
flake.nix-Nix-flake与Node.js 20,TypeScript,开发工具.envrc-用于自动激活的direnv配置package.json-使用脚本配置Node.js包tsconfig.json-TypeScript编译器配置src/index.ts-起始TypeScript代码README.md-项目文件
然后简单地说:
cd /home/user/my-app
direnv allow
npm install
npm run dev可用配置文件
打字脚本节点
采用ES模块和严格类型检查的现代TypeScript+Node.js开发。
包括:
- Node.js(可配置版本,默认20)
- 具有严格模式的TypeScript 5.x
- tsx用于开发,vitest用于测试
- ESLint,Prettier
- 包管理器选择(npm/yarn/pnpm)
使用案例: REST API、CLI工具、后端服务、GraphQL服务器
python快速api
Python FastAPI开发,支持异步和自动OpenAPI文档。
包括:
- Python(可配置版本,默认3.11)
- FastAPI、Uvicorn、Pydantic
- pytest、httpx用于测试
- 黑色,Flake8,mypy
- 虚拟环境自动激活
使用案例: REST API、微服务、异步web应用程序
角前端
使用独立组件进行Angular 17+前端开发。
包括:
- Node.js 20
- Angular CLI 17+
- TypeScript,独立组件
- 具有热重载功能的开发服务器
- 测试框架设置
使用案例: 单页应用程序、渐进式web应用程序、企业前端
java春季启动
使用Spring Boot 3.x和Maven进行企业Java开发。
包括:
- JDK(可配置版本,默认17)
- 弹簧靴3.2.0
- Maven构建工具
- REST控制器支架
- Spring Boot开发工具
使用案例: 企业后端、微服务、RESTful API、web应用程序
配置
用户配置
创建 ~/.config/nix-devshell-mcp/config.json:
{
"author": "Your Name",
"email": "your.email@example.com",
"gitAutoInit": true,
"defaults": {
"nodeVersion": "20",
"pythonVersion": "311",
"javaVersion": "17"
},
"privateRegistry": {
"npm": {
"registry": "https://registry.company.com",
"authToken": "${NPM_TOKEN}"
}
}
}项目配置
创建 devshell-config.json 在您的项目中:
{
"projectName": "my-awesome-project",
"description": "An awesome project",
"nodeVersion": "20",
"author": "Team Name"
}配置优先
工具选项>项目配置>用户配置>配置文件默认值
环境变量
使用 ${VAR_NAME} 配置中引用环境变量的语法:
{
"npmRegistry": "${PRIVATE_NPM_REGISTRY}",
"authToken": "${NPM_TOKEN}"
}MCP工具
create_devshell
从配置文件模板创建开发环境。
参数:
projectPath(必填):项目目录的绝对路径profile(必填):配置文件名称(typescript节点、python fastapi、angular前端、java spring boot)options(可选):配置覆盖
例子:
{
"projectPath": "/home/user/my-project",
"profile": "typescript-node",
"options": {
"nodeVersion": "20",
"projectName": "my-api",
"packageManager": "pnpm"
}
}list_profiles
列出所有可用的开发环境配置文件。
退货:
{
"profiles": [
{
"name": "typescript-node",
"displayName": "TypeScript + Node.js",
"description": "Modern TypeScript development...",
"version": "1.0.0",
"tags": ["typescript", "nodejs", "backend"]
}
]
}发展
项目结构
nix-devshell-mcp/
├── src/
│ ├── config/ # Configuration management
│ ├── fs/ # Filesystem operations
│ ├── profiles/ # Profile loading and management
│ ├── templates/ # Handlebars template rendering
│ ├── tools/ # DevshellTool orchestration
│ ├── utils/ # Error handling, logging
│ ├── validation/ # Input and schema validation
│ └── index.ts # MCP server entry point
├── templates/ # Profile templates
│ ├── typescript-node/
│ ├── python-fastapi/
│ ├── angular-frontend/
│ └── java-spring-boot/
├── tests/ # Test suite (104 tests, 83% coverage)
└── docs/ # Specification documents运行测试
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Watch mode
npm test -- --watch建筑
# Build TypeScript
npm run build
# Development mode (watch)
npm run dev装订和格式化
# Lint code
npm run lint
# Fix linting issues
npm run lint:fix
# Format code
npm run format建筑
核心组件
配置管理器 -处理配置加载、合并和环境变量解析。
文件系统管理器 -通过原子写入、路径验证和非破坏性行为管理文件操作。
教授 -从模板目录加载并验证配置文件模板。
模板渲染器 -使用自定义帮助程序渲染Handlebars模板以进行常见转换。
验证器 -使用AJV对输入和配置执行JSON模式验证。
开发工具 -协调所有组件以创建完整的开发环境。
把手助手
模板渲染器包括11个自定义助手:
indent-将文本缩进N个空格toJson-将对象转换为JSON字符串ifEquals-条件比较joinWith-使用分隔符连接数组ifCond-灵活的条件运算符default-如果为false,则返回默认值lowercase-转换为小写uppercase-转换为大写kebabCase-转换为烤肉箱camelCase-转换为camelCasepascalCase-转换为PascalCase
文档
规范文件
存储库中提供了全面的规范:
- PRD.md -产品要求和用户故事
- 技术规格.md -系统架构与设计
- API规范.md -MCP工具API规范
- 模板_规格.md -模板实现
- CONFIG_SCHEMA.md -配置系统
- 测试_规格.md -测试策略
- 实施_计划.md -开发阶段
- 快速引用.md -快速参考指南
- 总结.md -执行摘要
贡献
欢迎投稿!请看 贡献.md 作为指导方针。
测试
该项目包括全面的测试覆盖范围:
- 104测试 横跨6个测试套件
- 83.21% 报表覆盖范围
- 69.05% 判定覆盖
- 98.66% 函数覆盖
测试包括:
- 配置管理
- 文件系统操作
- 配置文件加载和验证
- 模板渲染
- 输入验证
- 端到端编排
需求
- Node.js:需要18+
- 尼克斯:启用薄片
- direnv:用于自动环境激活
许可证
国际协调委员会
支持
对于问题或疑问:
- 检查 文档 第一
- 审查现有
- 创建包含详细信息的新问题
致谢
内置:
- @模型上下文协议/sdk -MCP协议实现
- 把手 -模板引擎
- 阿联酋 -JSON模式验证
- Vitest -测试框架
______________________________________________________________________
状态: ✅ 生产就绪
所有阶段均已完成:核心实施、配置文件、测试、文档。
