index.htmlโข29.6 kB
<!doctype html>
<html class="default" lang="en" data-base="./">
<head>
<meta charset="utf-8" />
<meta http-equiv="x-ua-compatible" content="IE=edge" />
<title>@sparesparrow/mcp-prompts</title>
<meta name="description" content="Documentation for @sparesparrow/mcp-prompts" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="assets/style.css" />
<link rel="stylesheet" href="assets/highlight.css" />
<script defer src="assets/main.js"></script>
<script async src="assets/icons.js" id="tsd-icons-script"></script>
<script async src="assets/search.js" id="tsd-search-script"></script>
<script async src="assets/navigation.js" id="tsd-nav-script"></script>
</head>
<body>
<script>
document.documentElement.dataset.theme = localStorage.getItem('tsd-theme') || 'os';
document.body.style.display = 'none';
setTimeout(
() => (window.app ? app.showPage() : document.body.style.removeProperty('display')),
500,
);
</script>
<header class="tsd-page-toolbar">
<div class="tsd-toolbar-contents container">
<a href="index.html" class="title">@sparesparrow/mcp-prompts</a>
<div id="tsd-toolbar-links"></div>
<button id="tsd-search-trigger" class="tsd-widget" aria-label="Search">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true">
<use href="assets/icons.svg#icon-search"></use>
</svg>
</button>
<dialog id="tsd-search" aria-label="Search">
<input
role="combobox"
id="tsd-search-input"
aria-controls="tsd-search-results"
aria-autocomplete="list"
aria-expanded="true"
autocapitalize="off"
autocomplete="off"
placeholder="Search the docs"
maxlength="100"
/>
<ul role="listbox" id="tsd-search-results"></ul>
<div id="tsd-search-status" aria-live="polite" aria-atomic="true">
<div>Preparing search index...</div>
</div>
</dialog>
<a
href="#"
class="tsd-widget menu"
id="tsd-toolbar-menu-trigger"
data-toggle="menu"
aria-label="Menu"
><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true">
<use href="assets/icons.svg#icon-menu"></use></svg
></a>
</div>
</header>
<div class="container container-main">
<div class="col-content">
<div class="tsd-page-title"><h1>@sparesparrow/mcp-prompts</h1></div>
<div class="tsd-panel tsd-typography">
<h1 id="mcp-prompts-server-ยท-sparesparrowmcp-prompts" class="tsd-anchor-link">
MCP Prompts Server ยท <code>@sparesparrow/mcp-prompts</code
><a
href="#mcp-prompts-server-ยท-sparesparrowmcp-prompts"
aria-label="Permalink"
class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h1>
<p>
<a href="../../actions"
><img
src="https://github.com/sparesparrow/mcp-prompts/actions/workflows/ci.yml/badge.svg"
alt="CI"
/></a>
<a href="https://www.npmjs.com/package/@sparesparrow/mcp-prompts"
><img src="https://img.shields.io/npm/v/@sparesparrow/mcp-prompts" alt="npm"
/></a>
<a href="https://hub.docker.com/r/sparesparrow/mcp-prompts"
><img
src="https://img.shields.io/docker/pulls/sparesparrow/mcp-prompts"
alt="Docker Pulls"
/></a>
<a href="https://opensource.org/licenses/MIT"
><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"
/></a>
<a href="../../projects/1"
><img
src="https://img.shields.io/badge/Project-Roadmap-5BC0BE?logo=github"
alt="Roadmap"
/></a>
</p>
<p>
<strong>MCP Prompts Server</strong> is a robust solution to the problem of prompt
fragmentation across development teams. It serves as the single source of truth for all
your prompts, templates, and related metadata, enabling effective versioning, testing,
and secure sharing within your organization and with external systems.
</p>
<hr />
<h2 id="table-of-contents" class="tsd-anchor-link">
Table of Contents<a
href="#table-of-contents"
aria-label="Permalink"
class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h2>
<ul>
<li><a href="#why-this-project">Why This Project?</a></li>
<li><a href="#key-features">Key Features</a></li>
<li><a href="#quick-start">Quick Start</a></li>
<li>
<a href="#core-concepts-and-data-structure">Core Concepts and Data Structure</a>
</li>
<li><a href="#architecture-and-roadmap">Architecture and Roadmap</a></li>
<li><a href="#contributing-and-community">Contributing and Community</a></li>
<li><a href="#license">License</a></li>
<li><a href="#support-and-community">Support and Community</a></li>
</ul>
<hr />
<h2 id="๐ฏ-why-this-project-the-problem-it-solves" class="tsd-anchor-link">
๐ฏ Why This Project? (The Problem It Solves)<a
href="#๐ฏ-why-this-project-the-problem-it-solves"
aria-label="Permalink"
class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h2>
<p>
Most teams working with AI struggle with chaos: prompts are stored in code, shared
documents, or lost in chat histories. This project solves the following problems:
</p>
<ul>
<li>
โ <strong>No Versioning:</strong> The inability to track changes and revert to
previous, functional versions of prompts.
</li>
<li>
โ <strong>Difficult Testing:</strong> Complicated A/B testing and evaluation to
determine which prompt version performs better.
</li>
<li>
โ <strong>Security Risks:</strong> Lack of control over who has access to valuable
and sensitive prompts.
</li>
<li>
โ <strong>Inefficient Collaboration:</strong> Developers and team leaders lack a
central place to share and approve prompts.
</li>
</ul>
<hr />
<h2 id="โจ-key-features" class="tsd-anchor-link">
โจ Key Features<a href="#โจ-key-features" aria-label="Permalink" class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h2>
<ul>
<li>
<strong>๐๏ธ Flexible Storage:</strong> Native support for files, PostgreSQL, and
in-memory. Can be extended for Elasticsearch for full-text search.
</li>
<li>
<strong>๐ท๏ธ Categorization and Tagging:</strong> Organize your prompts into
hierarchical categories and assign tags for easy searching.
</li>
<li>
<strong>๐ Versioning:</strong> Track the history of each prompt, similar to Git.
</li>
<li>
<strong>๐ Access Control (RBAC):</strong> Detailed permission management for users
and roles (admin, editor, viewer).
</li>
<li>
<strong>๐ค MCP Ecosystem Integration:</strong> Seamless communication with other MCP
servers like @filesystem and @github.
</li>
<li>
<strong>๐ Automatic Documentation:</strong> Generate OpenAPI specifications directly
from the code.
</li>
<li>
<strong>๐ณ Docker and CLI Support:</strong> Easy deployment with Docker containers and
command-line tools for batch operations.
</li>
<li>
<strong>๐ Auditing and Metrics:</strong> Track all changes and analyze the usage of
individual prompts.
</li>
</ul>
<hr />
<h2 id="๐-quick-start" class="tsd-anchor-link">
๐ Quick Start<a href="#๐-quick-start" aria-label="Permalink" class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h2>
<blockquote>
<p>
โ ๏ธ <strong>Requirements:</strong> Node.js 20+ and npm 10+ (due to npm workspaces
support).
</p>
</blockquote>
<h3 id="1-run-with-npx" class="tsd-anchor-link">
1. Run with NPX<a href="#1-run-with-npx" aria-label="Permalink" class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h3>
<p>Run the server without a permanent installation with a single command:</p>
<pre><code class="bash"><span class="hl-0">npx</span><span class="hl-1"> </span><span class="hl-2">-y</span><span class="hl-1"> </span><span class="hl-3">@sparesparrow/mcp-prompts</span>
</code><button type="button">Copy</button></pre>
<h3 id="2-run-with-docker" class="tsd-anchor-link">
2. Run with Docker<a
href="#2-run-with-docker"
aria-label="Permalink"
class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h3>
<p>For production deployment with persistent storage:</p>
<p><strong>File storage:</strong></p>
<pre><code class="bash"><span class="hl-0">docker</span><span class="hl-1"> </span><span class="hl-3">run</span><span class="hl-1"> </span><span class="hl-2">-d</span><span class="hl-1"> </span><span class="hl-2">--name</span><span class="hl-1"> </span><span class="hl-3">mcp-server</span><span class="hl-1"> </span><span class="hl-4">\</span><br/><span class="hl-1"> </span><span class="hl-2">-p</span><span class="hl-1"> </span><span class="hl-3">3003:3003</span><span class="hl-1"> </span><span class="hl-4">\</span><br/><span class="hl-1"> </span><span class="hl-2">-v</span><span class="hl-1"> $(</span><span class="hl-0">pwd</span><span class="hl-1">)</span><span class="hl-3">/data:/app/data</span><span class="hl-1"> </span><span class="hl-4">\</span><br/><span class="hl-1"> </span><span class="hl-3">sparesparrow/mcp-prompts:latest</span>
</code><button type="button">Copy</button></pre>
<p><strong>Postgres storage:</strong></p>
<pre><code class="bash"><span class="hl-0">docker</span><span class="hl-1"> </span><span class="hl-3">run</span><span class="hl-1"> </span><span class="hl-2">-d</span><span class="hl-1"> </span><span class="hl-2">--name</span><span class="hl-1"> </span><span class="hl-3">mcp-server</span><span class="hl-1"> </span><span class="hl-4">\</span><br/><span class="hl-1"> </span><span class="hl-2">-p</span><span class="hl-1"> </span><span class="hl-3">3003:3003</span><span class="hl-1"> </span><span class="hl-4">\</span><br/><span class="hl-1"> </span><span class="hl-2">-v</span><span class="hl-1"> $(</span><span class="hl-0">pwd</span><span class="hl-1">)</span><span class="hl-3">/data:/app/data</span><span class="hl-1"> </span><span class="hl-4">\</span><br/><span class="hl-1"> </span><span class="hl-2">-e</span><span class="hl-1"> </span><span class="hl-3">"STORAGE_TYPE=postgres"</span><span class="hl-1"> </span><span class="hl-4">\</span><br/><span class="hl-1"> </span><span class="hl-2">-e</span><span class="hl-1"> </span><span class="hl-3">"POSTGRES_URL=your_connection_string"</span><span class="hl-1"> </span><span class="hl-4">\</span><br/><span class="hl-1"> </span><span class="hl-3">sparesparrow/mcp-prompts:latest</span>
</code><button type="button">Copy</button></pre>
<h3 id="3-verify-its-running" class="tsd-anchor-link">
3. Verify It's Running<a
href="#3-verify-its-running"
aria-label="Permalink"
class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h3>
<p>Check that the server is running and accessible:</p>
<pre><code class="bash"><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-3">http://localhost:3003/health</span>
</code><button type="button">Copy</button></pre>
<p>Expected response:</p>
<pre><code class="json"><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-5">"status"</span><span class="hl-1">: </span><span class="hl-3">"ok"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">"version"</span><span class="hl-1">: </span><span class="hl-3">"1.4.0"</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-5">"storage"</span><span class="hl-1">: </span><span class="hl-3">"postgres"</span><br/><span class="hl-1">}</span>
</code><button type="button">Copy</button></pre>
<hr />
<h2 id="๐๏ธ-core-concepts-and-data-structure" class="tsd-anchor-link">
๐๏ธ Core Concepts and Data Structure<a
href="#๐๏ธ-core-concepts-and-data-structure"
aria-label="Permalink"
class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h2>
<table>
<thead>
<tr>
<th>Entity</th>
<th>Attributes</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Prompt</td>
<td>name, content, tags, version, metadata</td>
<td>The basic unit containing the template text.</td>
</tr>
<tr>
<td>Category</td>
<td>name, description, parent_category</td>
<td>Used for hierarchical organization of prompts.</td>
</tr>
<tr>
<td>Template</td>
<td>variables, validation_rules</td>
<td>A special type of prompt with dynamic parts.</td>
</tr>
<tr>
<td>User</td>
<td>username, role</td>
<td>An account with assigned permissions.</td>
</tr>
</tbody>
</table>
<hr />
<h2 id="๐๏ธ-architecture-and-roadmap" class="tsd-anchor-link">
๐๏ธ Architecture and Roadmap<a
href="#๐๏ธ-architecture-and-roadmap"
aria-label="Permalink"
class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h2>
<p>
The project is designed as a modern monorepo with separate packages, which facilitates
maintenance and scaling.
</p>
<table>
<thead>
<tr>
<th>Component</th>
<th>Description</th>
<th>Technology</th>
</tr>
</thead>
<tbody>
<tr>
<td>core</td>
<td>Main application logic, API, and storage mgmt.</td>
<td>Node.js, Express, TypeScript</td>
</tr>
<tr>
<td>catalog</td>
<td>A distributable package with default prompts.</td>
<td>NPM</td>
</tr>
<tr>
<td>contracts</td>
<td>Shared TypeScript types and OpenAPI specs.</td>
<td>OpenAPI, JSON Schema</td>
</tr>
</tbody>
</table>
<p>
๐
<strong
><a href="../../projects/1"
>Track our detailed progress on the GitHub Project Board</a
></strong
>
</p>
<hr />
<h2 id="๐ค-contributing-and-community" class="tsd-anchor-link">
๐ค Contributing and Community<a
href="#๐ค-contributing-and-community"
aria-label="Permalink"
class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h2>
<p>
We welcome community contributions! Whether it's code, documentation, a bug report, or a
new idea, your help is appreciated.
</p>
<p>
Please read our
<strong><a href="media/CONTRIBUTING.md">Contributor Guide</a></strong> to find
everything you need.
</p>
<h3 id="โจ-our-contributors" class="tsd-anchor-link">
โจ Our Contributors<a
href="#โจ-our-contributors"
aria-label="Permalink"
class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h3>
<p>Thank you to all the wonderful people who have contributed to this project!</p>
<p>
<a href="https://github.com/sparesparrow/mcp-prompts/graphs/contributors"
><img
src="https://contrib.rocks/image?repo=sparesparrow/mcp-prompts"
alt="Contributors"
/></a>
</p>
<hr />
<h2 id="๐-license" class="tsd-anchor-link">
๐ License<a href="#๐-license" aria-label="Permalink" class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h2>
<p>This project is licensed under the <a href="media/LICENSE">MIT License</a>.</p>
<hr />
<h2 id="๐-support-and-community" class="tsd-anchor-link">
๐ Support and Community<a
href="#๐-support-and-community"
aria-label="Permalink"
class="tsd-anchor-icon"
><svg viewBox="0 0 24 24" aria-hidden="true">
<use href="assets/icons.svg#icon-anchor"></use></svg
></a>
</h2>
<ul>
<li>๐ <strong>Report a Bug:</strong> <a href="../../issues">GitHub Issues</a></li>
<li>
๐ฌ <strong>Join the Discussion:</strong>
<a href="../../discussions">GitHub Discussions</a>
</li>
<li>
๐ข <strong>Commercial Support & Custom Solutions:</strong>
<a href="mailto:support@sparrowai.tech">Sparrow AI & Tech</a>
</li>
</ul>
<div align="center">
<sub
>Built with โค๏ธ by <a href="https://github.com/sparesparrow">@sparesparrow</a> and the
<a href="https://github.com/sparesparrow/mcp-prompts/graphs/contributors"
>community</a
></sub
>
</div>
</div>
</div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">
<details class="tsd-accordion">
<summary class="tsd-accordion-summary">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true">
<use href="assets/icons.svg#icon-chevronDown"></use>
</svg>
<h3>Settings</h3>
</summary>
<div class="tsd-accordion-details">
<div class="tsd-filter-visibility">
<span class="settings-label">Member Visibility</span>
<ul id="tsd-filter-options">
<li class="tsd-filter-item">
<label class="tsd-filter-input"
><input type="checkbox" id="tsd-filter-protected" name="protected" /><svg
width="32"
height="32"
viewBox="0 0 32 32"
aria-hidden="true"
>
<rect
class="tsd-checkbox-background"
width="30"
height="30"
x="1"
y="1"
rx="6"
fill="none"
></rect>
<path
class="tsd-checkbox-checkmark"
d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25"
stroke="none"
stroke-width="3.5"
stroke-linejoin="round"
fill="none"
></path></svg
><span>Protected</span></label
>
</li>
<li class="tsd-filter-item">
<label class="tsd-filter-input"
><input
type="checkbox"
id="tsd-filter-inherited"
name="inherited"
checked
/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true">
<rect
class="tsd-checkbox-background"
width="30"
height="30"
x="1"
y="1"
rx="6"
fill="none"
></rect>
<path
class="tsd-checkbox-checkmark"
d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25"
stroke="none"
stroke-width="3.5"
stroke-linejoin="round"
fill="none"
></path></svg
><span>Inherited</span></label
>
</li>
<li class="tsd-filter-item">
<label class="tsd-filter-input"
><input type="checkbox" id="tsd-filter-external" name="external" /><svg
width="32"
height="32"
viewBox="0 0 32 32"
aria-hidden="true"
>
<rect
class="tsd-checkbox-background"
width="30"
height="30"
x="1"
y="1"
rx="6"
fill="none"
></rect>
<path
class="tsd-checkbox-checkmark"
d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25"
stroke="none"
stroke-width="3.5"
stroke-linejoin="round"
fill="none"
></path></svg
><span>External</span></label
>
</li>
</ul>
</div>
<div class="tsd-theme-toggle">
<label class="settings-label" for="tsd-theme">Theme</label
><select id="tsd-theme">
<option value="os">OS</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</div>
</div>
</details>
</div>
<details open class="tsd-accordion tsd-page-navigation">
<summary class="tsd-accordion-summary">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true">
<use href="assets/icons.svg#icon-chevronDown"></use>
</svg>
<h3>On This Page</h3>
</summary>
<div class="tsd-accordion-details">
<a href="#mcp-prompts-server-ยท-sparesparrowmcp-prompts"
><span>MCP <wbr />Prompts <wbr />Server ยท @sparesparrow/mcp-<wbr />prompts</span></a
>
<ul>
<li>
<a href="#table-of-contents"
><span>Table of <wbr />Contents</span></a
>
</li>
<li>
<a href="#๐ฏ-why-this-project-the-problem-it-solves"
><span
>๐ฏ <wbr />Why <wbr />This <wbr />Project? (<wbr />The <wbr />Problem
<wbr />It <wbr />Solves)</span
></a
>
</li>
<li>
<a href="#โจ-key-features"
><span>โจ <wbr />Key <wbr />Features</span></a
>
</li>
<li>
<a href="#๐-quick-start"
><span>๐ <wbr />Quick <wbr />Start</span></a
>
</li>
<li>
<ul>
<li>
<a href="#1-run-with-npx"
><span>1. <wbr />Run with <wbr />NPX</span></a
>
</li>
<li>
<a href="#2-run-with-docker"
><span>2. <wbr />Run with <wbr />Docker</span></a
>
</li>
<li>
<a href="#3-verify-its-running"
><span>3. <wbr />Verify <wbr />It's <wbr />Running</span></a
>
</li>
</ul>
</li>
<li>
<a href="#๐๏ธ-core-concepts-and-data-structure"
><span>๐๏ธ <wbr />Core <wbr />Concepts and <wbr />Data <wbr />Structure</span></a
>
</li>
<li>
<a href="#๐๏ธ-architecture-and-roadmap"
><span>๐๏ธ <wbr />Architecture and <wbr />Roadmap</span></a
>
</li>
<li>
<a href="#๐ค-contributing-and-community"
><span>๐ค <wbr />Contributing and <wbr />Community</span></a
>
</li>
<li>
<ul>
<li>
<a href="#โจ-our-contributors"
><span>โจ <wbr />Our <wbr />Contributors</span></a
>
</li>
</ul>
</li>
<li>
<a href="#๐-license"
><span>๐ <wbr />License</span></a
>
</li>
<li>
<a href="#๐-support-and-community"
><span>๐ <wbr />Support and <wbr />Community</span></a
>
</li>
</ul>
</div>
</details>
</div>
<div class="site-menu">
<nav class="tsd-navigation">
<a href="modules.html">@sparesparrow/mcp-prompts</a>
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
<li>Loading...</li>
</ul>
</nav>
</div>
</div>
</div>
<footer>
<p class="tsd-generator">
Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a>
</p>
</footer>
<div class="overlay"></div>
</body>
</html>