MCP提示管理器
A. 简单、专注的快速经理 基于模型上下文协议(MCP)构建。该项目将更大的MCP Prompts生态系统的核心功能提取到一个经过充分测试的最小实现中。
🎯 动机
最初的MCP Prompts项目提供了许多功能,但随着时间的推移变得越来越复杂。该项目采用了一种不同的方法,专注于用户实际需要的核心功能:
- 取出工作芯 -具有原子操作的可靠存储
- 注重简单 -把一件事做好
- 确保测试覆盖率 -每个功能都有工作测试
- 提供明确的价值 -易于理解和使用的快速管理器
🏗️ 建筑
核心组件
src/
├── types.ts # Prompt interface and schemas
├── postgres-storage.ts # PostgreSQL storage implementation
├── prompt-service.ts # Business logic and validation
├── template-engine.ts # Variable substitution engine
├── mcp-server.ts # MCP protocol integration
└── index.ts # Entry point and server startup
tests/
├── template-engine.test.ts主要特点
- PostgreSQL存储
- 具有版本控制的完整数据库持久性 - 数据完整性的原子事务 - 使用索引进行高效查询
- 架构验证
- 所有数据的Zod模式 - 类型安全操作 - 清除错误消息
- MCP集成
- 完整的MCP服务器实施 - 工具:添加、获取、列表、更新、删除提示 - 资源:将提示作为MCP资源公开
- 模板系统
- 变量替换为 {{variables}} - 所需变量的验证 - 支持默认值
🚀 快速开始
选项1:Docker(推荐)
运行MCP Prompt库最简单的方法是使用Docker:
# Clone the repository
git clone
cd mcp-prompt-library
# Start the services (PostgreSQL + MCP Server)
docker-compose up -d
# Check status
docker-compose ps
# View logs
docker-compose logs mcp-server
docker-compose logs postgres
# Stop services
docker-compose downMCP服务器将在 http://localhost:8080/mcp 对于HTTP客户端。
备注:Docker使用默认密码(mcp_password_123)PostgreSQL。要使用自定义密码,请设置 POSTGRES_PASSWORD 环境变量。
方案2:地方发展
对于开发和测试:
cd mcp-prompt-library
npm install测试数据库设置
该项目在同一PostgreSQL容器中使用单独的测试数据库,以避免在测试过程中影响您的实际提示:
- 测试数据库:
mcp_prompts_test(与主数据库相同的容器) - 主数据库:
mcp_prompts(与测试数据库相同的容器)
测试数据库使用与主数据库完全相同的模式,并由测试运行器自动管理,但您也可以手动管理它:
# Set up test database manually
npm run test:db:setup
# Check test database status
npm run test:db:status
# Clean test database (removes test database)
npm run test:db:clean备注:您的实际提示存储在主数据库中,与测试完全隔离。
发展
# Run tests (uses separate test database)
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
# Test database management
npm run test:db:setup # Set up test database
npm run test:db:status # Check test database status
npm run test:db:clean # Clean test database
# Run linting
npm run lint
# Test MCP server (spawns server once for testing)
npm run dev:test
# Run server once (for manual testing)
npm run dev
# Build for production
npm run build用法
# Start the MCP server (production)
npm start
# Or with npx
npx mcp-prompt-libraryMCP开发工作流程
重要:MCP服务器设计为无状态,并为每个请求生成新的服务器。服务器不应持续保持活动状态。
- 用于测试:使用
npm run dev:test测试MCP通信 - 用于手动测试:使用
npm run dev运行服务器一次 - 用于生产:使用
npm start或npx mcp-prompt-library
Docker与本地开发
| 用例 | Docker | 本地 |
|---|---|---|
| 生产部署 | ✅ 推荐 | ❌ 不推荐 |
| HTTP API访问 | ✅ 可在 http://localhost:8080/mcp | ❌ 仅限标准 |
| 开发/测试 | ⚠️ 重建速度较慢 | ✅ 更快的迭代 |
| 光标MCP集成 | ✅ 完美运行 | ✅ 工作完美 |
| 数据库持久性 | ✅ 自动设置 | ⚠️ 需要手动设置 |
备注:Docker和本地开发都与Cursor的MCP客户端配合得很好。
📋 实施计划
第一阶段:核心基础✅ 完成
- \[x\] 设置项目结构和依赖关系
- \[x\] 实施
Prompt接口和Zod模式 - \[x\] 创建
PostgresPromptRepository与数据库操作 - \[x\] 为PostgreSQL存储添加全面的测试
- \[x\] 基本MCP服务器集成
第二阶段:功能✅ 完成
- \[x\] 模板变量替换引擎
- \[x\] 完整的MCP工具和资源
- \[x\] 用于基本操作的CLI命令
- \[x\] 健康检查端点
- \[x\] 配置管理
第三阶段:波兰语✅ 完成
- \[x\] 更好的错误处理和日志记录
- \[x\] 安全强化(路径穿越保护)
- \[x\] 文件和示例
- \[x\] 性能优化
🧪 测试策略
单元测试
- PostgreSQL存储操作(CRUD、版本控制)
- 使用Zod 3.22.4进行模式验证
- 模板变量替换
- 错误处理
- 数据库事务安全
集成测试
- MCP服务器通信
- 端到端提示操作
- CLI命令执行
测试覆盖率
- 117项测试通过 涵盖所有核心功能
- 总覆盖率58.35% 关键业务逻辑100%覆盖
- 91.63%的覆盖率 PostgreSQL存储(核心功能)
- 100%覆盖率 即时服务与模板引擎
- 安全测试 用于路径遍历保护
- 演出:测试将在约2.34秒内完成
- 代码质量:0个错误,12个警告(可用于错误处理)
🎯 成功标准
成功实施将:
- 安全存储提示 -无数据损坏,原子数据库事务
- 验证所有内容 -使用Zod模式拒绝有明显错误的无效数据
- 与MCP客户合作 -Claude桌面、光标等通过JSON-RPC
- 进行全面测试 -每个功能都经过测试(117项测试通过)
- 简单易懂 -清晰、专注的代码库,依赖性最小
- 易于扩展 -定义良好的接口和模块化架构
- 确保安全 -防止SQL注入和输入验证
🔄 与原版比较
| 功能 | 原始MCP提示 | 此项目 |
|---|---|---|
| PostgreSQL存储 | ✅ 工作 | ✅ 核心焦点 |
| MCP服务器 | ✅ 工作 | ✅ 全面实施 |
| 模板引擎 | ✅ 工作 | ✅ 变量替换 |
| 命令行界面 | ❌ 未执行 | ✅ 简单CLI |
| 测试 | ⚠️ 最小 | ✅ 综合(117次测试) |
| 安全 | ⚠️ 未知 | ✅ 路径遍历保护、输入验证 |
| 复杂性 | 🔴 高 | 🟢 低 |
| 可维护性 | 🔴 可怜 | 🟢 太好了 |
| 依赖项 | 🔴 许多 | 🟢 最小(Zod 3.22.4,MCP SDK) |
| 演出 | ⚠️ 未知 | ✅ 快速(2.34秒测试套件) |
📚 MCP集成
此服务器实现模型上下文协议以提供:
工具
add_prompt-创建新提示get_prompt-按ID检索提示list_prompts-列出所有带有筛选功能的提示update_prompt-更新现有提示delete_prompt-删除提示search_prompts-按内容、名称或标签搜索提示get_stats-获取已存储提示的统计信息apply_template-将变量应用于模板
资源
prompts-所有提示列表prompt/{id}-个人提示详细信息
配置
Cursor(本地开发)
添加到MCP客户端配置中:
{
"mcpServers": {
"mcp-prompt-library": {
"command": "node",
"args": ["/path/to/mcp-prompt-library/dist/index.js"],
"cwd": "/path/to/mcp-prompt-library"
}
}
}用于游标(Docker/HTTP)
对于基于HTTP的MCP服务器(Docker部署):
{
"mcpServers": {
"mcp-prompt-library": {
"url": "http://localhost:8080/mcp"
}
}
}HTTP客户端(Docker)
容器化服务器可在 http://localhost:8080/mcp 并接受标准MCP JSON-RPC请求。
备注:Docker和本地开发配置都能很好地与Cursor的MCP客户端配合使用。
🛠️ 发展
先决条件
- Node.js 20+(用于本地开发)
- Docker和Docker Compose(用于容器化部署)
- npm或pnpm
设置
地方发展
git clone
cd mcp-prompt-library
npm install
npm testDocker开发
git clone
cd mcp-prompt-library
# Build and start services
docker-compose up -d --build
# View logs
docker-compose logs -f mcp-server
# Rebuild after changes
docker-compose build mcp-server
docker-compose up -d添加功能
- 先写测试
- 实现该功能
- 确保所有测试通过
- 更新文档
Docker故障排除
验证容器状态
# Check if containers are running
docker-compose ps
# Check container logs
docker-compose logs mcp-server
docker-compose logs postgres
# Check container health
docker exec mcp-prompt-server ps aux常见问题
- 端口冲突:确保端口8080和5433可用
- 数据库连接:检查PostgreSQL容器是否正常
- 构建问题:重建
docker-compose build --no-cache mcp-server - 密码问题:Docker使用默认密码
mcp_password_123。要自定义,请设置POSTGRES_PASSWORD环境变量
重置所有内容
# Stop and remove everything
docker-compose down -v
# Remove all images
docker rmi mcp-prompt-library-mcp-server
# Start fresh
docker-compose up -d --build📄 许可证
MIT许可证-有关详细信息,请参阅许可证文件。
