使用说明
MCP提示管理器
经MCP审查认证
该项目已获得官方认证 MCP审查.
MCP(模型上下文协议)提示管理器是一个服务器,它使像Claude这样的AI模型能够访问本地提示文件。它提供了创建、检索、更新和删除提示的功能,允许对常用提示进行高效管理。
主要特点
核心功能
- 列出所有提示
- 检索特定提示内容
- 创建新提示
- 更新提示内容
- 删除提示
高级功能
- 智能搜索:采用多种算法的高级模糊搜索(Levenshtein、Jaro Winkler、n-gram相似度)
- 类别和标签系统:使用类别和标签组织提示
- 模板处理:使用变量替换
{{variable}}语法和高级条件句 - 模板库:内置模板库,包含5个类别的12个专业模板
- 收藏夹管理:将常用提示标记为收藏夹
- 元数据管理:增强组织的自动元数据跟踪
- 版本管理:具有历史跟踪、差异比较和回滚功能的完整版本控制
- 进出口系统:JSON格式的备份和还原提示,包括元数据和版本历史记录
- 安全与验证:全面的输入净化、速率限制和错误处理
- 缓存系统:智能缓存可提高性能
- 结构化日志记录:具有多级和文件输出的高级日志记录
安装
先决条件
- Node.js v18或更高版本
- npm
安装步骤
-
克隆存储库
git clone https://github.com/Tae4an/mcp-prompt-manager.git cd mcp-prompt-manager -
安装依赖项
npm install -
授予执行权限
chmod +x server.js
集装箱化运行
使用Docker运行
docker build -t mcp-prompt-manager:local .
docker run --rm \
-e NODE_ENV=production \
-e LOG_DIR=/var/log/mcp \
-e PROMPTS_DIR=/data/prompts \
-v $(pwd)/prompts:/data/prompts \
-v $(pwd)/logs:/var/log/mcp \
mcp-prompt-manager:local
使用Docker Compose运行
docker compose up -d --build
环境变量
- PROMPTS_DIR:存储提示的目录(默认:项目
prompts) - LOG_DIR:文件日志记录目录(默认:
./logs) - 缓存TTL/大小:
- FILE_CACHE_TTL,FILE_CACHE_MAX_SIZE
- SEARCH_CACHE_TTL,SEARCH_CACHE_MAX_SIZE
- 元数据缓存_TTL,元数据缓存_MAX_SIZE
- TEMPLATE_CACHE_TTL,TEMPLATE_CACHE_MAX_SIZE
- 速率限制预设:
- 速率限制标准窗口,速率限制标准最大值
- RATE_LIMIT_STRICT_WINDOW_MS,RATE_LIMIT_STRICT_MAX
- RATE_LIMIT_LENIENT_WINDOW_MS,RATE_LIMIT_LENIENT_MAX
- RATE_LIMIT_UPLOAD_WINDOW_MS,RATE_LIMIT-UPLOAD_MAX
- 策略/权限:
- READ_ONLY(true/false):禁用写入操作
- DISABLE_IMPORT(true/false):阻止导入
- DISABLE_EXPORT(true/false):阻止导出
- DISABLE_VERSION_ROLLBACK(true/false):块回滚
连接到克劳德桌面
-
安装Claude Desktop(如果尚未安装)
-
打开Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
将以下内容添加到配置文件中:
{ "mcpServers": { "promptManager": { "command": "node", "args": ["absolute_path_to_cloned_repository/server.js"] } } }例子:
{ "mcpServers": { "promptManager": { "command": "node", "args": ["/Users/username/projects/mcp-prompt-manager/server.js"] } } } -
重新启动克劳德桌面
用法
在Claude Desktop中,单击工具图标(🛠️) 访问以下MCP工具:
核心工具
列表提示
检索所有提示的列表。
- 参数:无
获取提示
检索特定提示的内容。
- 参数:
filename-要检索的提示文件的名称
创建提示
创建新提示。
- 参数:
filename-要创建的提示文件的名称(例如my prompt.txt)content-提示内容
更新提示
更新现有提示的内容。
- 参数:
filename-要更新的提示文件的名称content-新提示内容
删除提示
删除提示(自动删除关联的元数据)。
- 参数:
filename-要删除的提示文件的名称
高级工具
搜索提示
通过文件名或内容进行高级模糊搜索提示,并具有智能排名功能。
- 参数:
query-搜索查询字符串searchInContent-(可选)在提示内容中搜索的布尔值(默认值:false)limit-(可选)要返回的最大结果数(默认值:10)threshold-(可选)最小相似性阈值(0.0-1.0,默认值:0.3)
标签提示
在提示中添加标签,以便更好地组织。
- 参数:
filename-要标记的提示文件的名称tags-标签字符串数组
分类提示
为提示设置类别。
- 参数:
filename-要分类的提示文件的名称category-类别名称字符串
按类别列出
列出按类别组织的提示。
- 参数:
category-(可选)要筛选的特定类别
流程模板
使用变量替换处理提示模板。
- 参数:
filename-模板提示文件的名称variables-以变量名为键、替换值为值的对象
- 注:使用
{{variable}}模板中的格式
列出模板变量
列出在模板提示中找到的所有变量。
- 参数:
filename-要分析的模板提示文件的名称
最喜欢的提示
在收藏夹中添加或删除提示。
- 参数:
filename-提示文件的名称action-“添加”或“删除”
列出收藏夹
列出所有最喜欢的提示及其详细信息。
- 参数:无
版本管理工具
列出提示版本
列出特定提示的所有版本,包括时间戳和操作。
- 参数:
filename-获取版本历史记录的提示文件的名称
比较提示版本
比较提示的两个版本,并显示详细的差异。
- 参数:
filename-要比较的提示文件的名称fromVersion-要比较的源版本号toVersion-要比较的目标版本号
回滚提示
将提示回滚到特定的早期版本。
- 参数:
filename-要回滚的提示文件的名称version-要回滚到的版本号
获取提示版本
获取特定版本提示的内容。
- 参数:
filename-提示文件的名称version-要检索的版本号
获取提示版本统计信息
获取提示版本历史的统计信息,包括总版本、操作细分和大小历史。
- 参数:
filename-要获取统计信息的提示文件的名称
模板库工具
内置模板库包括5个类别的12个专业模板:
可用模板类别:
- 🖥️ 编码与开发 (3个模板):代码审查、调试帮助、API文档
- 🌐 翻译与语言 (2个模板):文本翻译、语法检查
- 📝 公文写作 (2个模板):文件摘要、会议纪要
- 📊 分析与研究 (2个模板):SWOT分析、竞争分析
- 🎓 教育与学习 (3个模板):课程计划、测验生成
列出模板类别
列出所有可用的模板类别,包括描述和模板计数。
- 参数:无
按类别列出模板
列出特定类别中的所有模板。
- 参数:
categoryId-用于列出模板的类别ID
获取模板详细信息
获取特定模板的详细信息,包括变量和用法。
- 参数:
templateId-模板ID(格式:类别。模板名称)
搜索模板
使用模糊匹配在模板库中搜索。
- 参数:
query-搜索查询字符串category-(可选)按特定类别筛选tags-(可选)要筛选的标签数组limit-(可选)最大结果数(默认值:10)
渲染模板
使用提供的变量渲染模板并获取处理后的内容。
- 参数:
templateId-要渲染的模板IDvariables-具有变量名和值的对象sanitizeOutput-(可选)启用输出净化(默认值:true)
验证模板
验证模板语法并检查潜在问题。
- 参数:
templateId-要验证的模板ID
获取流行模板
根据使用模式获取最受欢迎的模板列表。
- 参数:
limit-(可选)要返回的模板数(默认值:5)
获取相关模板
根据标签和类别获取与特定模板相关的模板。
- 参数:
templateId-用于查找相关模板的模板IDlimit-(可选)相关模板的数量(默认值:3)
获取模板库统计信息
获取有关模板库的全面统计信息。
- 参数:无
从模板创建提示
使用具有变量替换的模板创建新的提示文件。
- 参数:
templateId-要使用的模板IDfilename-新提示文件的名称variables-带有模板变量的对象addMetadata-(可选)将模板元数据添加到文件中(默认值:true)
导入/导出工具
导出提示
将提示导出为JSON格式以进行备份或共享。
- 参数:
format-(可选)导出格式:“json”(默认:json)includeMetadata-(可选)在导出中包含元数据(默认值:true)includeVersionHistory-(可选)包含版本历史记录(默认值:false)filterByTags-(可选)用于筛选提示的标签数组filterByCategory-(可选)筛选提示的类别compress-(可选)压缩导出数据(默认值:false)
导入提示
从JSON格式导入带有验证和冲突解决功能的提示。
- 参数:
importData-以导出格式导入数据对象overwriteExisting-(可选)覆盖现有文件(默认值:false)skipDuplicates-(可选)跳过重复文件(默认值:true)validateChecksums-(可选)验证文件校验和(默认值:true)createBackup-(可选)导入前创建备份(默认值:true)mergeMetadata-(可选)与现有元数据合并(默认值:true)
获取进出口状态
获取导入/导出系统状态和功能。
- 参数:无
操作/监控工具
获取服务器统计信息
获取进程/服务器运行时统计数据(正常运行时间、内存、策略标志、缓存信息)。
- 参数:无
获取策略状态
获取从环境变量派生的当前策略/权限标志。
- 参数:无
获取缓存统计信息
读取文件/元数据/搜索/模板的缓存统计信息(大小、命中/未命中、内存使用情况)。
- 参数:无
获取速率限制状态
获取标准/严格/上传预设的当前速率限制器统计数据。
- 参数:无
技术特性
安全与性能
- 输入消毒:全面的XSS和注入攻击防御
- 速率限制:滑动窗口算法可配置速率限制
- 缓存系统:多级LRU缓存,支持TTL,可提高性能
- 错误处理:高级错误恢复和记录系统
- 文件验证:SHA-256校验和和完整性验证
高级模板引擎
- 条件逻辑:支持
{{#if}},{{#unless}},{{#each}}构建 - 循环处理:迭代模板中的数组和对象
- 函数调用:用于格式化和处理的内置辅助函数
- 嵌套变量:支持复杂的对象结构
- 错误恢复:巧妙地处理缺失的变量和格式错误的模板
模糊搜索算法
- 编辑距离:基于字符的相似性匹配
- Jaro-Winkler距离:针对前缀匹配进行了优化
- N-gram相似性:子字符串模式匹配
- 智能排名:具有可定制阈值的多因素评分
- 高亮:突出显示搜索结果以获得更好的用户体验
数据管理
- 版本控制:通过差异比较完成历史跟踪
- 元数据系统:自动标记、分类和收藏夹
- 备份系统:导入操作期间自动创建备份
- 导出格式:JSON,可选压缩和过滤
- 文件组织:具有隐藏元数据目录的结构化存储
高级配置
更改提示存储路径
默认情况下,提示存储在 prompts 服务器文件所在目录中的文件夹。您可以使用环境变量更改路径:
PROMPTS_DIR=/desired/path node server.js
或者在claude_desktop_config.json中设置环境变量:
{
"mcpServers": {
"promptManager": {
"command": "node",
"args": ["/absolute/path/mcp-prompt-manager/server.js"],
"env": {
"PROMPTS_DIR": "/desired/path"
}
}
}
}
例子
基本用法
-
创建新提示:
- 工具:
create-prompt - 文件名:
greeting.txt - 内容:
You are a friendly and helpful AI assistant. Please respond politely to user questions.
- 工具:
-
列表提示:
- 工具:
list-prompts
- 工具:
-
正在检索提示内容:
- 工具:
get-prompt - 文件名:
greeting.txt
- 工具:
高级用法
-
创建模板提示:
- 工具:
create-prompt - 文件名:
email-template.txt - 内容:
Dear {{name}}, Thank you for your interest in {{product}}. Best regards, {{sender}}
- 工具:
-
正在处理模板:
- 工具:
process-template - 文件名:
email-template.txt - 变量:
{"name": "John", "product": "MCP Server", "sender": "Support Team"}
- 工具:
-
组织提示:
-
工具:
categorize-prompt -
文件名:
greeting.txt -
类别:
customer-service -
工具:
tag-prompt -
文件名:
greeting.txt -
标签:
["polite", "professional", "greeting"]
-
-
搜索提示:
- 工具:
search-prompts - 查询:
assistant - 搜索内容:
true
- 工具:
-
管理收藏夹:
- 工具:
favorite-prompt - 文件名:
greeting.txt - 行动:
add
- 工具:
版本管理使用
-
查看版本历史记录:
- 工具:
list-prompt-versions - 文件名:
greeting.txt
- 工具:
-
比较版本:
- 工具:
compare-prompt-versions - 文件名:
greeting.txt - 起始版本:
1 - ToVersion:
3
- 工具:
-
回滚到以前的版本:
- 工具:
rollback-prompt - 文件名:
greeting.txt - 版本:
2
- 工具:
-
获取版本统计信息:
- 工具:
get-prompt-version-stats - 文件名:
greeting.txt
- 工具:
模板库使用
-
浏览模板类别:
- 工具:
list-template-categories
- 工具:
-
使用模板:
- 工具:
render-template - 模板ID :
coding.code-review - 变量:
{"code": "function hello() { console.log('Hello'); }", "language": "javascript"}
- 工具:
-
从模板创建提示:
- 工具:
create-prompt-from-template - 模板ID :
writing.meeting-minutes - 文件名:
weekly-standup.txt - 变量:
{"meeting_title": "Weekly Standup", "date": "2024-08-04", "attendees": "Team Alpha"}
- 工具:
-
搜索模板:
- 工具:
search-templates - 查询:
code review - 类别:
coding
- 工具:
导入/导出使用
-
导出备份提示:
- 工具:
export-prompts - 包含元数据:
true - 包含版本历史:
false - FilterBy标签:
["important", "production"]
- 工具:
-
从备份导入提示:
- 工具:
import-prompts - 进口数据:
{exported data object} - 创建备份:
true - 超重存在:
false
- 工具:
-
检查导入/导出状态:
- 工具:
get-import-export-status
- 工具:
高级搜索使用
- 带参数的模糊搜索:
- 工具:
search-prompts - 查询:
custmer servce(故意拼写错误) - 搜索内容:
true - 门槛:
0.6 - 限制:
15
- 工具:
故障排除
如果MCP服务器未连接
- 验证服务器文件路径是否正确
- 检查服务器是否具有执行权限
- 确保Node.js版本为v18或更高版本
如果工具没有出现
- 尝试重新启动Claude Desktop
- 确认
claude_desktop_config.json文件配置正确
文件访问权限问题
- 确保您对提示目录具有读/写权限
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
欢迎投稿!请随时提交拉取请求。
支持
如果您遇到任何问题或有疑问,请在 GitHub存储库.
