- 团队里积累了大量优质Prompt,但难以共享和管理,散落在各自的文档或笔记里。
- 每次想用某个Prompt,都需要费力地从文档库中搜索、复制、粘贴,效率低下。
- 业务需求变化快,Prompt需要频繁更新,但每次更新都得修改代码、重启服务,流程繁琐。
- 静态的Prompt无法满足动态需求,更无法根据使用情况进行智能推荐和排序。
如果这些问题让你感同身受,那么 PromptDiscovery 正是你需要的解决方案!
借助 Nacos 作为动态配置中心,将您的Prompt资产提升到了全新的高度:一个可集中管理、动态更新、智能推荐的“提示词即服务(Prompt as a Service)”平台。
- 告别手动管理:所有Prompt在Nacos配置中心统一管理,团队成员可以像维护配置一样轻松维护Prompt。
- 动态热更新:在Nacos中修改Prompt后,服务无需重启即可实时生效。无论是新增、修改还是删除,所有连接的客户端(如Cursor、Raycast)都能立刻使用最新的Prompt。
- 自然语言调用:通过自然语言对话,AI能自动理解你的意图,并从Nacos中发现最匹配的Prompt来执行任务。
- 智能推荐与排序:内置强大的推荐算法,能根据你的编码上下文、历史使用频率和最近使用情况,智能推荐最相关的Prompt。
- 高可用保障:集成了完善的本地缓存和断线重连机制。即使Nacos服务暂时不可用,依然能使用缓存的Prompt,保障开发流程不中断。
下图展示了 PromptDiscovery 如何与 Nacos 协作,实现提示词的动态管理和实时更新。
graph TD
subgraph "客户端 (e.g., Cursor)"
User[开发者]
end
subgraph "PromptDiscovery 服务"
Server[MCP Server]
NacosService[NacosService]
Cache[内存/本地缓存]
end
subgraph "配置中心"
Admin[管理员]
Nacos[Nacos Server]
end
%% 流程一:工具调用
User -- "1. 调用工具<br/>(e.g., searchPrompts)" --> Server
Server -- "2. 转发请求" --> NacosService
NacosService -- "3. 从缓存读取Prompts" --> Cache
Cache -- "4. 返回结果" --> NacosService
NacosService -- "5. 返回结果" --> Server
Server -- "6. 响应用户" --> User
%% 流程二:动态更新
Admin -- "A. 在Nacos后台更新配置" --> Nacos
Nacos -- "B. 推送配置变更" --> NacosService
NacosService -- "C. 监听器接收变更<br/>并更新缓存" --> Cache
style Admin fill:#EF8B4D,stroke:#333,stroke-width:2px
style User fill:#3460F3,stroke:#333,stroke-width:2px
工作流解释:
-
工具调用流程 (左侧):
- 开发者在Cursor等客户端中调用一个工具 (1)。
- MCP服务器接收请求并交由
NacosService处理 (2)。 NacosService直接从内存或本地文件缓存中快速读取所有Prompt数据 (3, 4)。- 处理完毕后,将结果返回给客户端 (5, 6)。此过程不直接请求Nacos,保证了高并发和低延迟。
-
动态更新流程 (右侧):
- 当管理员在Nacos控制台修改并发布Prompt配置时 (A),Nacos会主动推送一个变更通知 (B)。
NacosService内置的监听器会捕获到这个通知。- 监听到变更后,
NacosService会立刻重新从Nacos拉取最新的配置,并更新其管理的内存及本地文件缓存 (C)。 - 这个过程对用户是完全透明的,下一次工具调用就会自动使用到最新的Prompt。
这个架构的核心优势在于读写分离:常规的读取操作通过高速缓存进行,而配置的写入和更新则通过Nacos的推送机制异步完成,既保证了性能,又实现了配置的动态热加载。
- 📦 Nacos动态配置:所有Prompt存储于Nacos,实现配置与代码分离,支持团队级协作和权限管理。
- 🔄 实时热加载:监听Nacos配置变更,实现Prompt的动态、实时更新,无需重启服务。
- 🧠 智能上下文推荐:强大的
suggestPrompts工具,精准分析代码上下文,智能匹配最合适的Prompt。 - 📊 使用情况追踪:通过
trackPromptUsage工具记录Prompt的使用频率和最后使用时间,为智能推荐提供数据支持。 - 🛠️ 标准MCP工具集:提供
getAllPrompts,getPromptsByTags,getPromptById,searchPrompts等一系列标准化工具,方便查询和使用。 - 🔌 即插即用:轻松与Cursor, Raycast, Windsurf等所有支持MCP的工具集成。
- 🛡️ 强大的容错机制:即使在网络不佳或Nacos宕机的情况下,也能通过本地缓存提供服务,保证了系统的鲁棒性。
PromptDiscovery/
├── src/
│ ├── index.ts # MCP服务器主入口,负责工具注册和启动
│ └── services/
│ └── NacosService.ts # 核心服务,负责与Nacos交互、缓存管理和推荐算法
├── .cache/ # 本地缓存目录,存储Nacos配置的副本
├── package.json
└── README.md
-
配置Nacos
- 确保你有一个可用的Nacos服务。
- 在Nacos中创建一个新的配置,例如:
- Data ID:
prompt_config - Group:
DEFAULT_GROUP - 配置格式: JSON
- 配置内容 (示例):
[ { "id": "xiaohongshu_writer", "title": "小红书文案生成助手", "description": "小红书文案生成助手", "tags": ["文案生成"], "content": "#角色\n\n你是一个小红书营销专家,擅长创作吸引年轻时尚受众的内容。你了解流行趋势、热门话题和小红书的平台特点,能够撰写真实、相关且符合平台风格的营销文案。 }, { "id": "translation_assistant", "title": "翻译助手", "description": "翻译助手", "tags": ["翻译"], "content": "#角色\n\n 你是一位翻译家,可以将不同语言的文字翻译成目标语言“英文”,同时保持原文的风格和语气。你需要准确地传达信息和文化内涵,避免直译,注重目标语言的表达效果。" } ]
- Data ID:
-
安装依赖
npm install
-
配置服务
- 打开
src/index.ts文件。 - 修改
NacosService的构造函数参数,填入你的Nacos服务器地址和认证信息。const nacosService = new NacosService({ serverAddr: '你的Nacos地址:8848', // e.g., '127.0.0.1:8848' username: 'nacos', // Nacos用户名 password: 'nacos', // Nacos密码 group: 'DEFAULT_GROUP', configId: 'prompt_config', });
- 打开
-
启动服务器
npm start
启动后,
PromptDiscovery会自动连接Nacos,获取最新的Prompt列表,并作为MCP工具对外提供服务。
- 打开 Cursor 的
mcp.json文件 (通常位于~/.cursor/mcp.json)。 - 添加以下配置,请将路径替换为你项目的绝对路径:
{ "mcpServers": { "PromptDiscovery": { "command": "npx", "args":[ "prompt-discovery-mcp" ], "env":{ "NACOS_ADDR": "<NACOS-ADDR>, optional, default is 127.0.0.1:8848", "NACOS_USERNAME": "<NACOS-USERNAME>, optional, default is nacos", "NACOS_PASSWORD": "<NACOS-PASSWORD>, required", "NACOS_GROUP":"<NACOS-USERNAME>, optional, default is DEFAULT_GROUP", "NACOS_DATA_ID": "<NACOS_DATA_ID>, required", } } } } - 重启Cursor,你就可以在对话中通过
@PromptDiscovery或直接调用其工具了。
以下是一些在Cursor中使用PromptDiscovery的真实工作流示例。
假设你正在为小红书平台创作一篇关于“旅行攻略”的笔记。
-
选中主题:在Cursor编辑器中,选中你想要生成内容的主题或关键词(例如“巴厘岛旅行攻略”)。
-
打开聊天,提出请求:
@PromptDiscovery 请为我选中的主题生成一篇小红书风格的旅行攻略。
-
背后发生了什么:
- Cursor将你的请求和选中的主题(上下文)发送给
PromptDiscovery。 PromptDiscovery的suggestPrompts工具被自动调用。- 推荐算法分析上下文中的“小红书”、“旅行攻略”等关键词,并匹配到Nacos中预设的
xiaohongshu-travel-guide这个Prompt。 PromptDiscovery返回填充好内容的完整Prompt给Cursor的AI。
- Cursor将你的请求和选中的主题(上下文)发送给
-
结果:AI会根据这个高质量的Prompt,为你生成一篇符合小红书风格、吸引人的旅行攻略内容。
团队拓展了业务范围,需要一个能规划旅游行程的助手。这个场景将演示如何添加一个新Prompt并立即在客户端验证其效果。
-
管理员操作:在Nacos添加新Prompt
- 登录Nacos控制台,找到
prompt_config配置并编辑。 - 在JSON数组的末尾添加新的Prompt对象。根据规范,我们为它补充
title字段:{ "id": "travel_assistant", "title": "自驾游小助手", "description": "自驾游小助手", "tags": ["旅游"], "content": "## 角色 \n\n 你是一位自驾游顾问专家,专注于根据特定目的地为用户量身定制深度自驾游攻略。" } - 点击“发布”保存。
PromptDiscovery服务会自动监测到变更并热加载。
- 登录Nacos控制台,找到
-
开发者验证:在Cursor中搜索新Prompt
- 无需任何重启操作。
- 回到Cursor聊天窗口,使用
searchPrompts工具通过关键词进行搜索:
@PromptDiscovery searchPrompts keyword: "旅游"
-
结果与反馈
PromptDiscovery服务会立即返回包含travel_assistant这个Prompt的搜索结果。- 这证明了从Nacos配置更新到客户端实时生效的完整端到端流程是成功的。接下来,你就可以直接使用这个新Prompt了。
这个流程充分体现了配置即服务的强大之处:Prompt的管理与使用完全分离,实现了真正的动态化和团队协作。
这是 PromptDiscovery 最强大的地方!
你再也不需要修改任何代码来管理Prompt了。
- 登录Nacos控制台。
- 找到你配置的
prompt_config。 - 直接在控制台的编辑器中新增、修改或删除JSON数组中的Prompt对象。
- 点击“发布”。
完成了! PromptDiscovery 服务会自动接收到更新,所有客户端都能立刻使用到最新的Prompt。这个过程是完全无缝的,真正实现了提示词的动态化、服务化管理。
suggestPrompts: 你的日常主力工具。在你编码时,只需@PromptDiscovery并描述你的需求,它会自动推荐最相关的Prompt。searchPrompts: 当你有明确的关键词时,用它来快速搜索Prompt。getAllPrompts: 获取当前所有可用的Prompt列表。trackPromptUsage: 该工具通常由其他工具(如suggestPrompts)自动调用,用于优化推荐结果,你也可以手动调用它来影响排序。
如果你对这个项目有任何建议、发现了Bug,或者有新的想法,欢迎提交Issue或Pull Request!