Prompt Saver

online.promptsaver由 promptsaver.online 发布官方发布者v1.0.0更新于 Nov 1, 2026

Your versioned prompt library: search, read, save and version prompts from Claude Code.

已验证Streamable HTTP可网页运行效率与工作流知识与记忆

概览

AI 生成的概览

Prompt Saver 的远程 MCP 服务器,让助手在终端中搜索、读取、保存并为已存的 LLM 提示词建立版本。

可以做什么
  • 按标题、描述、内容和标签搜索提示词库,仅返回摘要
  • 按 ID 读取单条提示词的完整正文
  • 创建新提示词并生成首个版本,或就地更新提示词草稿
  • 为已有提示词保存不可变的新版本,可附变更说明
  • 把收藏的提示词作为斜杠命令使用,可附加一段上下文参数
适用场景
当你把可复用的提示词存放在 Prompt Saver,并希望 Claude Code 等客户端直接调取、修改并记录新版本,而不必切换到网页应用时适用。它面向提示词库的维护与跨项目复用,而非通用文件或笔记存储。
运行要求
需要一个 Prompt Saver 账号(在网页端登录),并在设置页生成个人 bearer 令牌,通过 Authorization 请求头传入。服务器是远程 HTTP 端点,无需本地运行时或安装包。闲置后首次请求可能因数据库唤醒而明显变慢。
安装前请注意
bearer 令牌只显示一次且无法找回,请妥善保管,泄露后应吊销。工具可创建、修改提示词并新增版本,但没有删除工具。提示词内容会发送到 Prompt Saver 服务并存入其数据库。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Prompt Saver,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/online.promptsaver%2Fprompt-saver/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "prompt-saver": {
      "type": "http",
      "url": "https://promptsaver.online/api/mcp"
    }
  }
}

README

Prompt Saver - LLM Prompt Intelligence Platform

Live: https://promptsaver.online/

Chrome extension: Add to Chrome — type // in Claude, ChatGPT or Gemini to insert a saved prompt.

[Typing // in an AI chat opens the Prompt Saver picker; Enter inserts the prompt]

A prompt management tool for saving, versioning, and searching LLM prompts. Built with Next.js, Neon Postgres, and a warm stone/teal design system.

Features (MVP - Phase 1)

  • Prompt Authoring: Create and edit prompts with automatic versioning
  • Multi-LLM Testing: Execute prompts against multiple LLM providers from a single interface
  • Prompt Library: Full-text search and intelligent categorization of prompts
  • Workspace-Based Organization: Organize prompts within dedicated workspaces

MCP Server (Claude Code Integration)

Prompt Saver runs a remote MCP server at /api/mcp, so a Claude Code session can search, read, and save your prompts without leaving the terminal.

Connect

  1. Sign in at https://promptsaver.online/, then click Settings and generate a token. The raw token is shown exactly once — copy it immediately. Only its SHA-256 hash is stored, so a lost token can't be recovered; revoke it on the same page and create a new one.

  2. The tokens page shows the registration command with your token filled in. It looks like:

    bash
    claude mcp add --transport http prompt-saver --scope user \  https://promptsaver.online/api/mcp \  --header "Authorization: Bearer ps_..."

    --scope user registers the server once for every project rather than just the current one.

Tools

Once connected, Claude Code can call five tools against your prompt library:

  • search_prompts(query, limit?) — searches title, description, content and tags. Returns summaries only (id, title, description, tags, updated_at) — never full bodies. limit defaults to 20 and is capped at 50.
  • get_prompt(id) — fetches the full text of one prompt.
  • create_prompt(title, content, description?, tags?) — saves a new prompt along with its first version.
  • update_prompt(id, ...) — updates a prompt's draft in place, without creating a new version.
  • save_version(id, content, change_summary?) — saves an immutable new version of an existing prompt.

There is no delete tool.

Favourite prompts as slash commands

Any prompt marked as a favourite (the star in the web app) is also registered as a slash command, named from its title — "Daily Planning" becomes /mcp__prompt-saver__daily-planning. Archived favourites are excluded. Each command takes one optional context argument, appended to the prompt body:

/mcp__prompt-saver__daily-planning auth refactor

Favourites are read once, when the session connects. Starring a prompt does not add its slash command to a session that's already running — open a new session, or run /mcp to reconnect, to pick up newly starred prompts.

Cold starts

The database backing this app (Neon Postgres) scales its compute to zero when idle. The first MCP request after a period of inactivity may take noticeably longer while it wakes back up; subsequent requests are fast.

Chrome extension

The Chrome extension lives in extension/. It lets users save prompts from any webpage or AI chat interface.

Setup and development

bash
cd extensionnpm installnpm run dev

The development build is unpacked and ready to load into Chrome. Configuration requires the web app's NEXT_PUBLIC_EXTENSION_IDS environment variable to contain the extension's ID (visible in chrome://extensions/ when unpacked). Set it to * to allow any well-formed extension ID. That's useful while unpacked IDs change, but any extension can then ask a signed-in user to connect (the connect page shows the requesting ID), so use an explicit list in production.

API

The extension calls these endpoints on the web app's /api/v1/prompts route:

MethodPathPurposeHeaders
GET/api/v1/promptsList prompts. Accepts ?q=<query>&limit=<n> (limit ≤200).Authorization: Bearer ps_<token>
POST/api/v1/promptsCreate a new prompt.Authorization: Bearer ps_<token>
GET/api/v1/prompts/:idFetch a single prompt by ID.Authorization: Bearer ps_<token>
PATCH/api/v1/prompts/:idUpdate a prompt.Authorization: Bearer ps_<token>

All endpoints require a bearer token prefixed with ps_.

For privacy details, see /privacy.

Technology Stack

  • Frontend: Next.js 16, React 18, TypeScript (strict mode)
  • Styling: Tailwind CSS (WCAG 2.1 AA accessible)
  • Storage: Neon Postgres via Drizzle ORM (server-side, per-user isolated)
  • Authentication: Google OAuth via NextAuth.js
  • Testing: Jest + React Testing Library
  • Code Quality: ESLint, Prettier, TypeScript strict mode

Prerequisites

  • Node.js 18.17+ or 20.x
  • npm 9+ (or use npm ci with --legacy-peer-deps)

Setup

1. Clone and Install

bash
git clone <repository-url>cd prompt-savernpm install --legacy-peer-deps

2. Configure Environment Variables

Create .env.local based on .env.example:

bash
cp .env.example .env.local

Required variables:

env
NEXTAUTH_SECRET=your-secret-key-hereNEXTAUTH_URL=http://localhost:3000GOOGLE_CLIENT_ID=your-google-client-idGOOGLE_CLIENT_SECRET=your-google-client-secretDATABASE_URL=postgresql://...-pooler.../neondb?sslmode=requireDATABASE_URL_UNPOOLED=postgresql://.../neondb?sslmode=require[email protected]

Warning: leaving ALLOWED_EMAILS unset lets anyone with a Google account sign in and get their own workspace. Always set it to a comma-separated allowlist of emails before deploying anywhere reachable.

3. Run Development Server

bash
npm run dev

Visit http://localhost:3000 in your browser.

Development

Scripts

bash
# Start development servernpm run dev
# Build for productionnpm run build
# Run production servernpm start
# Run testsnpm run testnpm run test:watch    # Watch modenpm run test:coverage # With coverage
# Lintingnpm run lintnpm run lint:fix
# Code formattingnpm run formatnpm run format:check
# Type checkingnpm run type-check

Project Structure

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

Code Quality Standards

TypeScript Strict Mode

  • No any types without justification
  • All implicit returns must be typed
  • Strict null checking enabled
  • Strict property initialization required

ESLint Rules

  • 80%+ test coverage for all utilities and hooks
  • Maximum function complexity: 10 cyclomatic points
  • No console statements in production code (warning only)
  • No unused variables or imports

Testing Requirements

  • All utilities must have unit tests
  • All components must have integration tests
  • API routes must have contract tests
  • TDD approach: write tests first, must fail before implementation

Performance Targets

  • Core Web Vitals: LCP ≤2.5s, FID ≤100ms, CLS ≤0.1
  • Version creation: <100ms (atomic)
  • Search response: <200ms for 10k prompts
  • API response time (p95): <200ms
  • Concurrent LLM executions: 100+ parallel

Accessibility

  • WCAG 2.1 AA compliance
  • Responsive design (320px to 1920px+)
  • Keyboard navigation support
  • Screen reader friendly components

Deployment

Build

bash
npm run build

Environment Variables (Production)

Set these in your deployment platform:

env
NEXTAUTH_SECRET=<generate-with-: openssl rand -base64 32>NEXTAUTH_URL=https://your-production-domain.comGOOGLE_CLIENT_ID=your-google-client-idGOOGLE_CLIENT_SECRET=your-google-client-secretDATABASE_URL=postgresql://...-pooler.../neondb?sslmode=requireDATABASE_URL_UNPOOLED=postgresql://.../neondb?sslmode=require[email protected]

Warning: leaving ALLOWED_EMAILS unset lets anyone with a Google account sign in and get their own workspace. Do not skip it.

CI/CD

GitHub Actions automatically runs on push and pull requests:

  • TypeScript type checking
  • ESLint linting
  • Prettier formatting
  • Jest test suite
  • Next.js build verification

Tests must pass before merging to main branch.

Contributing

  1. Create a feature branch from 001-prompt-platform
  2. Follow the TypeScript strict mode guidelines
  3. Write tests first (TDD approach)
  4. Ensure all tests pass: npm test
  5. Ensure linting passes: npm run lint
  6. Submit a pull request

Architecture Decisions

Repository Pattern

Database access is confined to repository classes implementing the interfaces in src/lib/db/repositories/types.ts. Server Actions are the only callers; client components never touch the database.

Immutable Versions

PromptVersions are immutable by design - no in-place edits allowed. This enables clean audit trails and version history.

Workspace Isolation

Every user gets one private workspace, created on first sign-in. All queries are scoped to the workspace id returned by getCurrentContext() — never to a value supplied by the client.

Roadmap

  • Phase 2: Foundational infrastructure (database, auth, API patterns)
  • Phase 3: User Story 1 - Prompt Authoring & Versioning
  • Phase 4: User Story 2 - Multi-LLM Execution & Testing
  • Phase 5: User Story 3 - Prompt Library & Search
  • Phase 6: User Story 4 - Collaboration & Sharing
  • Phase 7: User Story 5 - Prompt Testing & Evaluation

License

MIT — see LICENSE.

Support

For issues or questions, please contact the development team.

来源:README.md,提交 7b8352a

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v1.0.0最新Nov 1, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分