Prompt Saver

online.promptsaverPublished by promptsaver.onlineOfficial publisherv1.0.0Updated Nov 1, 2026

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

VerifiedStreamable HTTPWeb executableProductivity & WorkflowKnowledge & Memory

Overview

AI-generated overview

Remote MCP server for Prompt Saver that lets an assistant search, read, save and version your stored LLM prompts from the terminal.

What you can do
  • Search your prompt library by title, description, content and tags, returning summaries only
  • Read the full text of a single prompt by its ID
  • Create new prompts with an initial version, and update a prompt's draft in place
  • Save immutable new versions of an existing prompt with an optional change summary
  • Use favourited prompts as slash commands that take an optional context argument
When to use it
Useful when you keep reusable prompts in Prompt Saver and want Claude Code or another client to pull them up, refine them, and record new versions without switching to the web app. It fits prompt-library maintenance and reuse across projects rather than general file or note storage.
Requirements
A Prompt Saver account signed in at the web app, plus a personal bearer token generated in Settings and passed in the Authorization header. The server is a remote HTTP endpoint; no local runtime or package is needed. The first request after idle time may be slow while the database wakes up.
Before you install
The bearer token is shown only once and cannot be recovered; store it safely and revoke it if exposed. Tools can create and modify prompts and add versions, though there is no delete tool. Prompt content is sent to the Prompt Saver service and stored in its database.

Installation

In SourceWeft

  1. Open Prompt Saver in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/online.promptsaver%2Fprompt-saver/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "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.

Source: README.md at commit 7b8352a

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v1.0.0LatestNov 1, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts