关于 Prompt Saver
Prompt Saver 是用于保存、版本管理和搜索 LLM 提示词的工具,面向 Claude Code 用户及提示词整理者。其远程 MCP 服务可在终端中检索、读取和保存提示词,并支持收藏提示词作为斜杠命令。
主要功能
- 01创建提示词并自动记录版本
- 02全文搜索与分类提示词
- 03按工作区组织提示词
- 04通过 MCP 搜索、读取和保存
- 05收藏提示词转换为斜杠命令
适用场景
- 01在 Claude Code 中查找并读取提示词
- 02为现有提示词保存不可变版本
- 03将常用提示词插入 AI 聊天
MCP 相关
提供远程 MCP 服务,Claude Code 可使用搜索、读取、创建、更新和保存版本等工具。连接需要在 Prompt Saver 生成令牌并通过 Bearer 认证。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://promptsaver.online/api/mcpclaude mcp add --transport http online-promptsaver-prompt-saver https://promptsaver.online/api/mcp{"mcpServers":{"online-promptsaver-prompt-saver":{"type":"http","url":"https://promptsaver.online/api/mcp"}}}在 Cursor 中打开{"servers":{"online-promptsaver-prompt-saver":{"type":"http","url":"https://promptsaver.online/api/mcp"}}}在 VS Code 中打开{"mcpServers":{"online-promptsaver-prompt-saver":{"type":"http","url":"https://promptsaver.online/api/mcp"}}}{"mcpServers":{"online-promptsaver-prompt-saver":{"serverUrl":"https://promptsaver.online/api/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://promptsaver.online/api/mcp需要授权工具
详细介绍
Prompt Saver - LLM 提示词智能平台
在线体验: https://promptsaver.online/
Chrome 扩展: 添加到 Chrome — 在 Claude、ChatGPT 或 Gemini 中输入 //,即可插入已保存的提示词。

一款用于保存、管理版本和搜索 LLM 提示词的管理工具。使用 Next.js、Neon Postgres 和温暖的石色/青绿色设计系统构建。
功能(MVP - 第 1 阶段)
- 提示词编写:创建和编辑提示词,并自动管理版本
- 多 LLM 测试:通过单一界面,使用多个 LLM 提供商执行提示词
- 提示词库:对提示词进行全文搜索和智能分类
- 基于工作区的组织管理:在专用工作区中整理提示词
MCP 服务(Claude Code 集成)
Prompt Saver 在 /api/mcp 上运行远程 MCP 服务,
因此 Claude Code 会话无需离开终端,即可搜索、读取和保存你的提示词。
连接
-
登录 https://promptsaver.online/,然后点击 设置 并生成令牌。原始令牌只会显示一次——请立即复制。 系统只存储其 SHA-256 哈希,因此令牌丢失后无法恢复; 请在同一页面撤销令牌并创建新令牌。
-
令牌页面会显示已填入令牌的注册命令。 命令如下:
claude mcp add --transport http prompt-saver --scope user \ https://promptsaver.online/api/mcp \ --header "Authorization: Bearer ps_..."--scope user会将服务注册一次,供所有项目使用,而不只是 当前项目。
工具
连接后,Claude Code 可以调用五个工具来操作你的提示词库:
search_prompts(query, limit?)— 搜索标题、描述、内容和 标签。仅返回摘要(id、标题、描述、标签、updated_at), 不会返回完整正文。limit默认为 20,最大值为 50。get_prompt(id)— 获取一条提示词的完整文本。create_prompt(title, content, description?, tags?)— 保存一条新提示词 及其首个版本。update_prompt(id, ...)— 就地更新提示词草稿, 不会创建新版本。save_version(id, content, change_summary?)— 为现有提示词保存一个不可变的新版本。
没有删除工具。
将收藏提示词用作斜杠命令
任何标记为收藏(网页应用中的星标)的提示词也会注册为斜杠命令,
命令名称取自其标题——“Daily Planning”会变成
/mcp__prompt-saver__daily-planning。已归档的收藏提示词不会纳入其中。每个
命令都接受一个可选的 context 参数,并将其追加到提示词正文中:
/mcp__prompt-saver__daily-planning auth refactor
收藏提示词只会在会话连接时读取一次。 为提示词加星标
不会将其斜杠命令添加到已运行的会话中——请开启
新会话,或运行 /mcp 重新连接,以载入新收藏的提示词。
冷启动
为此应用提供支持的数据库(Neon Postgres)会在 空闲时将计算资源缩减至零。长时间不活动后发出的首个 MCP 请求可能会明显变慢, 因为数据库需要唤醒;后续请求则会很快。
Chrome 扩展
Chrome 扩展位于 extension/ 中。用户可以用它从任何网页或 AI 聊天界面保存提示词。
设置与开发
cd extension
npm install
npm run dev
开发构建已解压,可直接加载到 Chrome 中。配置
需要将网页应用的 NEXT_PUBLIC_EXTENSION_IDS 环境变量设为
扩展的 ID(解压后可在 chrome://extensions/ 中查看)。
将其设为 *,即可允许任何格式正确的扩展 ID。扩展解压期间
ID 可能会变化,因此这样设置很方便;但随后任何扩展都可以要求已登录用户进行连接(连接页面
会显示请求方 ID),所以生产环境中请使用明确的 ID 列表。
API
该扩展会调用 Web 应用 /api/v1/prompts 路由上的以下端点:
| 方法 | 路径 | 用途 | 请求头 |
|---|---|---|---|
| GET | /api/v1/prompts | 列出提示词。接受 ?q=<query>&limit=<n>(limit ≤200)。 | Authorization: Bearer ps_<token> |
| POST | /api/v1/prompts | 创建新的提示词。 | Authorization: Bearer ps_<token> |
| GET | /api/v1/prompts/:id | 根据 ID 获取单个提示词。 | Authorization: Bearer ps_<token> |
| PATCH | /api/v1/prompts/:id | 更新提示词。 | Authorization: Bearer ps_<token> |
所有端点都需要以 ps_ 为前缀的 bearer token。
有关隐私详情,请参阅 /privacy。
技术栈
- 前端:Next.js 16、React 18、TypeScript(严格模式)
- 样式:Tailwind CSS(符合 WCAG 2.1 AA 无障碍标准)
- 存储:通过 Drizzle ORM 使用 Neon Postgres(服务端,按用户隔离)
- 身份验证:通过 NextAuth.js 使用 Google OAuth
- 测试:Jest + React Testing Library
- 代码质量:ESLint、Prettier、TypeScript 严格模式
先决条件
- Node.js 18.17+ 或 20.x
- npm 9+(或使用
npm ci并添加--legacy-peer-deps)
设置
1. 克隆并安装
git clone <repository-url>
cd prompt-saver
npm install --legacy-peer-deps
2. 配置环境变量
根据 .env.example 创建 .env.local:
cp .env.example .env.local
必需变量:
NEXTAUTH_SECRET=your-secret-key-here
NEXTAUTH_URL=http://localhost:3000
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
DATABASE_URL=postgresql://...-pooler.../neondb?sslmode=require
DATABASE_URL_UNPOOLED=postgresql://.../neondb?sslmode=require
[email protected]
**警告:**如果不设置 ALLOWED_EMAILS,任何拥有 Google 账号的人都可以登录并获得自己的工作区。在部署到任何可访问的位置之前,务必将其设置为以逗号分隔的电子邮件地址允许列表。
3. 运行开发服务器
npm run dev
在浏览器中访问 http://localhost:3000。
开发
脚本
# Start development server
npm run dev
# Build for production
npm run build
# Run production server
npm start
# Run tests
npm run test
npm run test:watch # Watch mode
npm run test:coverage # With coverage
# Linting
npm run lint
npm run lint:fix
# Code formatting
npm run format
npm run format:check
# Type checking
npm run type-check
项目结构
src/
├── app/ # Next.js App Router pages and layouts
├── components/ # React components
├── lib/ # Utilities, hooks, services, and business logic
│ ├── api/ # API response wrappers
│ ├── auth/ # Authentication logic
│ ├── db/ # Database repositories and schemas
│ ├── hooks/ # Custom React hooks
│ ├── services/ # Business logic services
│ └── utils/ # Helper utilities
└── types/ # TypeScript type definitions
tests/
├── unit/ # Unit tests for utilities and hooks
├── integration/ # Integration tests
└── contract/ # API contract tests
代码质量标准
TypeScript 严格模式
- 未经说明,不得使用
any类型 - 所有隐式返回都必须声明类型
- 启用严格空值检查
- 必须启用严格属性初始化
ESLint 规则
- 所有工具函数和钩子的测试覆盖率须达到 80% 以上
- 函数复杂度上限:10 个圈复杂度点
- 生产代码中不得包含 console 语句(仅警告)
- 不得有未使用的变量或导入
测试要求
- 所有工具函数都必须有单元测试
- 所有组件都必须有集成测试
- API 路由必须有契约测试
- 采用 TDD 方法:先编写测试,且在实现前测试必须失败
性能目标
- Core Web Vitals:LCP ≤2.5s、FID ≤100ms、CLS ≤0.1
- 版本创建:<100ms(原子操作)
- 搜索响应:针对 10k 条提示词 <200ms
- API 响应时间(p95):<200ms
- 并发大模型执行:100+ 个并行任务
无障碍
- 符合 WCAG 2.1 AA 标准
- 响应式设计(320px 至 1920px+)
- 支持键盘导航
- 组件便于屏幕阅读器使用
部署
构建
npm run build
环境变量(生产环境)
在部署平台中设置以下变量:
NEXTAUTH_SECRET=<generate-with-: openssl rand -base64 32>
NEXTAUTH_URL=https://your-production-domain.com
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
DATABASE_URL=postgresql://...-pooler.../neondb?sslmode=require
DATABASE_URL_UNPOOLED=postgresql://.../neondb?sslmode=require
[email protected]
**警告:**如果不设置 ALLOWED_EMAILS,任何拥有 Google 账号的人都可以登录并获得自己的工作区。请勿跳过此项。
CI/CD
GitHub Actions 会在推送和拉取请求时自动运行:
- TypeScript 类型检查
- ESLint 代码检查
- Prettier 格式检查
- Jest 测试套件
- Next.js 构建验证
合并到 main 分支之前,测试必须全部通过。
贡献
- 从
001-prompt-platform创建功能分支 - 遵循 TypeScript 严格模式指南
- 先编写测试(采用 TDD 方法)
- 确保所有测试通过:
npm test - 确保代码检查通过:
npm run lint - 提交拉取请求
架构决策
仓库模式
数据库访问仅限于实现 src/lib/db/repositories/types.ts 中接口的仓库类。只有 Server Actions 会调用它们;客户端组件绝不直接访问数据库。
不可变版本
PromptVersions 在设计上不可变——不允许原地编辑。这样可以清晰地保留审计记录和版本历史。
工作区隔离
每位用户都有一个私有工作区,并在首次登录时创建。所有查询都限定在 getCurrentContext() 返回的工作区 id 范围内——绝不使用客户端提供的值。
路线图
- Phase 2:基础设施(数据库、身份验证、API 模式)
- Phase 3:用户故事 1 - 提示词编写与版本控制
- Phase 4:用户故事 2 - 多 LLM 执行与测试
- Phase 5:用户故事 3 - 提示词库与搜索
- Phase 6:用户故事 4 - 协作与共享
- Phase 7:用户故事 5 - 提示词测试与评估
许可证
MIT — 参见 LICENSE。
支持
如有问题或疑问,请联系开发团队。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。