mcpField
P
Prompt Saver

Prompt Saver

远程服务
promptsaver.onlineAI 与智能体03 天前更新

关于 Prompt Saver

Prompt Saver 是用于保存、版本管理和搜索 LLM 提示词的工具,面向 Claude Code 用户及提示词整理者。其远程 MCP 服务可在终端中检索、读取和保存提示词,并支持收藏提示词作为斜杠命令。

主要功能

  1. 01创建提示词并自动记录版本
  2. 02全文搜索与分类提示词
  3. 03按工作区组织提示词
  4. 04通过 MCP 搜索、读取和保存
  5. 05收藏提示词转换为斜杠命令

适用场景

  1. 01在 Claude Code 中查找并读取提示词
  2. 02为现有提示词保存不可变版本
  3. 03将常用提示词插入 AI 聊天

MCP 相关

提供远程 MCP 服务,Claude Code 可使用搜索、读取、创建、更新和保存版本等工具。连接需要在 Prompt Saver 生成令牌并通过 Bearer 认证。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://promptsaver.online/api/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://promptsaver.online/api/mcp需要授权

工具

详细介绍

Prompt Saver - LLM 提示词智能平台

在线体验: https://promptsaver.online/

Chrome 扩展: 添加到 Chrome — 在 Claude、ChatGPT 或 Gemini 中输入 //,即可插入已保存的提示词。

在 AI 聊天中输入 // 会打开 Prompt Saver 选择器;按 Enter 即可插入提示词

一款用于保存、管理版本和搜索 LLM 提示词的管理工具。使用 Next.js、Neon Postgres 和温暖的石色/青绿色设计系统构建。

功能(MVP - 第 1 阶段)

  • 提示词编写:创建和编辑提示词,并自动管理版本
  • 多 LLM 测试:通过单一界面,使用多个 LLM 提供商执行提示词
  • 提示词库:对提示词进行全文搜索和智能分类
  • 基于工作区的组织管理:在专用工作区中整理提示词

MCP 服务(Claude Code 集成)

Prompt Saver 在 /api/mcp 上运行远程 MCP 服务, 因此 Claude Code 会话无需离开终端,即可搜索、读取和保存你的提示词。

连接
  1. 登录 https://promptsaver.online/,然后点击 设置 并生成令牌。原始令牌只会显示一次——请立即复制。 系统只存储其 SHA-256 哈希,因此令牌丢失后无法恢复; 请在同一页面撤销令牌并创建新令牌。

  2. 令牌页面会显示已填入令牌的注册命令。 命令如下:

    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 分支之前,测试必须全部通过。

贡献

  1. 从 001-prompt-platform 创建功能分支
  2. 遵循 TypeScript 严格模式指南
  3. 先编写测试(采用 TDD 方法)
  4. 确保所有测试通过:npm test
  5. 确保代码检查通过:npm run lint
  6. 提交拉取请求

架构决策

仓库模式

数据库访问仅限于实现 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。

支持

如有问题或疑问,请联系开发团队。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。