MCP提示服务器
](https://www.npmjs.com/package/@sparesparrow/mcp-prompts)   
一个强大的、可扩展的MCP(模型上下文协议)服务器,用于管理、版本控制和为与AWS集成的LLM应用程序提供提示和模板。
概述
MCP Prompts是一个生产就绪的服务器,它实现了模型上下文协议(MCP),以提供智能提示管理、模板系统和AI驱动的工作流。它支持多种存储后端,包括内存、基于文件和AWS服务(DynamoDB、S3、SQS)。
关键能力
- 及时管理:创建、读取、更新、删除和版本提示
- 模板系统:变量替换与类型验证
- 搜索与发现:基于标签的过滤和全文搜索
- 访问控制:具有订阅层的基于角色的访问
- AWS集成:原生DynamoDB、S3和SQS支持
- 速率限制:可按用户和每层配置限制
- 订阅管理:支付的条纹集成
- 多模式:作为MCP服务器(stdio)或HTTP REST API运行
- Docker支持:多种部署配置
认知架构🧠
MCP Prompts实现了 七层认知架构 这将系统转变为能够从经验中学习并适应不同领域的智能开发助手。
七个认知层次
┌─────────────────────────────────────────┐
│ 7. Evaluative │ Quality Assessment │
│ │ Priority Judgment │
├─────────────────────────────────────────┤
│ 6. Transfer │ Cross-Domain Analogies│
│ │ Pattern Abstraction │
├─────────────────────────────────────────┤
│ 5. Meta-Cognitive│ Strategy Selection │
│ │ Self-Awareness │
├─────────────────────────────────────────┤
│ 4. Procedural │ Workflows & Techniques│
│ │ Analysis Procedures │
├─────────────────────────────────────────┤
│ 3. Semantic │ Domain Knowledge │
│ │ Tool Capabilities │
├─────────────────────────────────────────┤
│ 2. Episodic │ Problem-Solving │
│ │ Experience Memory │
├─────────────────────────────────────────┤
│ 1. Perceptual │ Context Detection │
│ │ Goal Identification │
└─────────────────────────────────────────┘智能提示管理
- 上下文感知:自动检测项目类型并应用相关知识
- 经验学习:捕获成功的问题解决模式以供重用
- 跨域转移:将一个领域学到的模式应用于其他领域
- 自我提升:从使用模式中学习以改进建议
FlatBuffers集成
认知数据的高性能二进制序列化:
- 零拷贝反序列化 最高速度
- 模式演变 支持向后兼容性
- 服务器间通信 开销最小
- 嵌入式优化 适用于资源受限的环境
特性
核心功能
- ✅ MCP协议支持:完全实施MCP 1.18规范
- 🔧 多个存储后端:内存、文件系统、AWS(DynamoDB/S3)
- 📝 提示模板:高级变量替换和验证
- 🔍 高级搜索:类别、标签和基于内容的搜索
- 🔒 安全:头盔、CORS、速率限制和身份验证
- 📊 监控:CloudWatch指标和结构化日志记录
- 💳 支付处理:带webhook支持的条纹集成
- 🌐 REST API:用于web集成的可选HTTP服务器模式
- 🐳 Docker就绪:针对不同用例的多种Dockerfile变体
MCP工具
服务器公开了以下MCP工具:
快速管理工具
add_prompt-使用元数据创建新提示get_prompt-按ID检索提示list_prompts-列出所有带有可选筛选的提示update_prompt-更新现有提示delete_prompt-删除提示apply_template-将变量应用于提示模板get_stats-获取已存储提示的统计信息
模板系统
模板支持用变量替换 {{variableName}} 语法:
Please review this {{language}} code for:
- Security issues
- Performance improvements
- Best practices
Code:
{{code}}安装
NPM包
npm install @sparesparrow/mcp-prompts
# or
pnpm add @sparesparrow/mcp-prompts
# or
yarn add @sparesparrow/mcp-prompts全局CLI
npm install -g @sparesparrow/mcp-prompts
mcp-prompts --help码头工人
docker pull ghcr.io/sparesparrow/mcp-prompts:latest快速开始
作为MCP服务器(stdio)
添加到您的MCP客户端配置中(例如,Claude Desktop):
{
"mcpServers": {
"mcp-prompts": {
"command": "npx",
"args": ["-y", "@sparesparrow/mcp-prompts"]
}
}
}或者使用Docker:
{
"mcpServers": {
"mcp-prompts": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"${HOME}/.mcp-prompts:/app/data",
"ghcr.io/sparesparrow/mcp-prompts:mcp"
]
}
}
}作为HTTP服务器
# Using npm
npm install @sparesparrow/mcp-prompts
MODE=http PORT=3000 node node_modules/@sparesparrow/mcp-prompts/dist/index.js
# Using Docker
docker run -p 3000:3000 -e MODE=http ghcr.io/sparesparrow/mcp-prompts:latest使用CLI
# Start in MCP mode
mcp-prompts start --mode mcp
# Start HTTP server
mcp-prompts start --mode http --port 3000
# List prompts
mcp-prompts list
# Get a prompt
mcp-prompts get
# Create a prompt
mcp-prompts create \
--name "Code Review" \
--template "Review this {{language}} code..." \
--category development \
--tags "code-review,development"
# Search prompts
mcp-prompts search "bug fix"
# Check health
mcp-prompts health配置
环境变量
核心设置
# Server mode: 'mcp' for stdio or 'http' for REST API
MODE=mcp
# HTTP server settings (when MODE=http)
PORT=3000
HOST=0.0.0.0
NODE_ENV=production
# Storage backend: 'memory', 'file', or 'aws'
STORAGE_TYPE=memory
# Logging
LOG_LEVEL=infoAWS配置(使用AWS存储时)
AWS_REGION=us-east-1
PROMPTS_TABLE=mcp-prompts
PROMPTS_BUCKET=mcp-prompts-catalog
PROCESSING_QUEUE=mcp-prompts-processing
USERS_TABLE=mcp-prompts-users
# AWS credentials (use IAM roles in production)
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key支付集成(可选)
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
STRIPE_PUBLISHABLE_KEY=pk_test_...存储后端
内存存储(默认)
最适合开发和测试:
STORAGE_TYPE=memoryAWS存储
DynamoDB和S3已准备就绪:
STORAGE_TYPE=aws
AWS_REGION=us-east-1
PROMPTS_TABLE=mcp-prompts
PROMPTS_BUCKET=mcp-prompts-catalog文件存储
持久性本地存储:
STORAGE_TYPE=file
DATA_DIR=/path/to/dataAPI
HTTP端点(当MODE=HTTP时)
健康与状态
GET /health - Health check
GET /mcp - MCP capabilities
GET /mcp/tools - List available MCP tools
POST /mcp/tools - Execute an MCP tool提示API
GET /v1/prompts - List prompts
GET /v1/prompts/:id - Get specific prompt
POST /v1/prompts - Create new prompt
PUT /v1/prompts/:id - Update prompt
DELETE /v1/prompts/:id - Delete prompt
POST /v1/prompts/:id/apply - Apply template variablesSlash命令
GET /v1/slash-commands - List available slash commands
GET /v1/slash-commands/suggest - Get command suggestions
POST /v1/slash-commands/execute - Execute a slash command订阅和付款
GET /v1/subscription/plans - Get subscription plans
GET /v1/subscription/status - Get user subscription status
POST /v1/payment/create-intent - Create payment intent
POST /v1/subscription/create - Create subscription
POST /v1/subscription/cancel - Cancel subscription
POST /v1/webhook/stripe - Stripe webhook handlerAPI使用示例
创建提示
curl -X POST http://localhost:3000/v1/prompts \
-H "Content-Type: application/json" \
-d '{
"name": "Bug Analyzer",
"content": "Analyze this bug: {{description}}",
"isTemplate": true,
"tags": ["debugging", "analysis"],
"variables": [
{
"name": "description",
"description": "Bug description",
"required": true,
"type": "string"
}
],
"metadata": {
"category": "debugging"
}
}'列表提示
# List all prompts
curl http://localhost:3000/v1/prompts
# Filter by category
curl http://localhost:3000/v1/prompts?category=development&limit=10
# Search
curl http://localhost:3000/v1/prompts?search=code%20review应用模板
curl -X POST http://localhost:3000/v1/prompts/bug_analyzer/apply \
-H "Content-Type: application/json" \
-d '{
"variables": {
"description": "Login page crashes on mobile devices"
}
}'可用工具
MCP工具参考
当连接到MCP客户端时,可以使用以下工具:
add_prompt
创建新提示。
参数:
name(字符串,必填):提示名称content(字符串,必填):提示内容/模板isTemplate(boolean):这是否是一个模板tags(数组):分类标签variables(数组):模板变量定义metadata(对象):附加元数据
get_prompt
按ID检索特定提示。
参数:
id(字符串,必填):提示ID
list_prompts
列出所有带有可选筛选的提示。
参数:
tags(数组,可选):按标签筛选search(字符串,可选):搜索词
update_prompt
更新现有提示。
参数:
id(字符串,必填):提示IDupdates(对象,必填):要更新的字段
delete_prompt
删除提示。
参数:
id(字符串,必填):提示ID
apply_template
将变量应用于提示模板。
参数:
id(字符串,必填):模板IDvariables(对象,必填):变量值
get_stats
获取有关已存储提示的统计信息。
退货:
- 提示总数
- 模板计数
- 常规提示计数
- 可用标签
- 可用类别
码头工人
可用图像
# Default image (HTTP mode)
ghcr.io/sparesparrow/mcp-prompts:latest
# MCP server mode (stdio)
ghcr.io/sparesparrow/mcp-prompts:mcp
# AWS integration
ghcr.io/sparesparrow/mcp-prompts:aws
# Memory storage
ghcr.io/sparesparrow/mcp-prompts:memory
# File storage
ghcr.io/sparesparrow/mcp-prompts:fileDocker Compose
version: '3.8'
services:
mcp-prompts:
image: ghcr.io/sparesparrow/mcp-prompts:latest
ports:
- "3000:3000"
environment:
- MODE=http
- PORT=3000
- STORAGE_TYPE=memory
- LOG_LEVEL=info
volumes:
- ./data:/app/data
restart: unless-stopped从源代码构建
# Build default image
docker build -t mcp-prompts:latest .
# Build MCP server variant
docker build -f Dockerfile.mcp -t mcp-prompts:mcp .
# Build AWS variant
docker build -f Dockerfile.aws -t mcp-prompts:aws .发展
先决条件
- Node.js 18+或兼容的运行时环境
- pnpm 8+(或npm/纱线)
- Docker(可选)
- AWS CLI(用于AWS部署)
设置
# Clone repository
git clone https://github.com/sparesparrow/mcp-prompts.git
cd mcp-prompts
# Install dependencies
pnpm install
# Build
pnpm run build
# Run tests
pnpm test
# Run in development mode
pnpm run dev
# Run HTTP server
pnpm run dev:http
# Run MCP server
pnpm run dev:mcp项目结构
mcp-prompts/
├── src/
│ ├── adapters/ # Storage adapters (AWS, Memory, File)
│ ├── core/ # Core domain logic
│ │ ├── entities/ # Domain entities
│ │ ├── services/ # Business logic services
│ │ └── ports/ # Interfaces
│ ├── mcp/ # MCP server implementation
│ ├── lambda/ # AWS Lambda handlers
│ ├── monitoring/ # CloudWatch metrics
│ ├── cli.ts # CLI entry point
│ ├── index.ts # HTTP server entry point
│ └── mcp-server-standalone.ts # MCP stdio server
├── data/ # Sample data
├── cdk/ # AWS CDK infrastructure
├── scripts/ # Utility scripts
├── Dockerfile.* # Docker configurations
└── package.jsonAWS部署
使用AWS CDK
# Configure AWS credentials
aws configure
# Install dependencies
pnpm install
# Deploy infrastructure
cd cdk
cdk deploy --all
# Or use npm script
pnpm run cdk:deploy手动部署
# Deploy using script
./scripts/deploy-aws.sh
# Cleanup resources
./scripts/cleanup-aws.sh所需AWS资源
- 用于存储提示的DynamoDB表
- 用于目录和工件的S3存储桶
- 用于异步处理的SQS队列
- 用于无服务器执行的Lambda函数
- 用于HTTP端点的API网关
- 用于监控的CloudWatch
- Cognito用于身份验证(可选)
示例提示
服务器包括几个示例提示:
- 代码审查助理:综合代码审查模板
- 文档编写者:技术文件生成器
- Bug分析器:Bug报告分析和调查
- 架构审查员:系统架构评估
- 测试用例生成器:自动创建测试用例
监测和可观察性
日志记录
使用pino进行结构化JSON日志记录:
import pino from 'pino';
const logger = pino({
level: process.env.LOG_LEVEL || 'info'
});指标(AWS)
CloudWatch指标:
- 请求费率
- 错误率
- 延迟
- 快速使用
- 模板应用程序
健康检查
# HTTP health check
curl http://localhost:3000/health
# CLI health check
mcp-prompts health安全
最佳实践
- ✅ 在Docker中以非root用户身份运行
- ✅ 用于HTTP安全标头的头盔中间件
- ✅ CORS配置
- ✅ 每个用户/层的速率限制
- ✅ 使用Zod进行输入验证
- ✅ AWS IAM生产角色
- ✅ 通过环境变量进行秘密管理
- ✅ 定期更新依赖关系
认证
HTTP服务器支持通过以下方式进行身份验证:
- Authorization标头中的承载令牌
- API网关认知授权人(AWS)
- 自定义身份验证中间件
贡献
我们欢迎捐款!请看 贡献.md 作为指导方针。
如何贡献
- 克隆该仓库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
故障排除
常见问题
MCP服务器未启动
- 检查是否没有其他进程正在使用stdio
- 验证Node.js版本(需要18+)
- 检查日志:
LOG_LEVEL=debug mcp-prompts start
HTTP服务器连接被拒绝
- 验证端口未使用:
lsof -i :3000 - 检查防火墙设置
- 确保已设置MODE=http
AWS连接失败
- 验证AWS凭据:
aws sts get-caller-identity - 检查DynamoDB、S3、SQS的IAM权限
- 确认区域正确
模板变量不替换
- 确保模板具有
isTemplate: true - 验证变量名是否匹配(区分大小写)
- 检查变量语法:
{{variableName}}
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
版权所有(c)2024 Sparre Sparrow
支持
资源
致谢
内置:
______________________________________________________________________
由...制作❤️ MCP社区
