MCP Prompts Server

by sparesparrow
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Supports deployment using Docker and Docker Compose for containerized deployment

  • Built on Node.js with support for Node.js 18 or later

  • Provides integration with PostgreSQL databases for storing prompts, with export/import functionality and synchronization between file storage and database

MCPがサーバーにプロンプトを出す

プロジェクトオーケストレーション機能を備えたプロンプトとテンプレートを管理するためのMCPサーバー。モデルコンテキストプロトコルエコシステムの一部です。

このサーバーは、AI プロンプトのテンプレートを保存、取得、適用する簡単な方法を提供し、AI アプリケーション全体で一貫したプロンプト パターンを維持しやすくなります。

目次

特徴

  • プロンプトを保存および取得する
  • 変数を含むテンプレートを作成して使用する
  • タグでフィルタリングしたリストプロンプト
  • テンプレートに変数を適用する
  • 複数のストレージバックエンド(ファイルシステム、PostgreSQL、MDC形式)
  • Claudeや他のAIアシスタントと簡単に使える
  • プロジェクトオーケストレーション機能
  • ヘルスチェックエンドポイント

インストール

npx の使用(推奨)

npx -y @sparesparrow/mcp-prompts

グローバルインストール

npm install -g @sparesparrow/mcp-prompts

Dockerの使用

docker run -p 3003:3003 -v ~/mcp/data:/app/data sparesparrow/mcp-prompts:latest

インストールの確認

インストール後、次の方法でサーバーが動作していることを確認できます。

  1. クロードデスクトップを開く
  2. チャット入力に「/」と入力して、サーバーからのプロンプトが表示されるかどうかを確認します。
  3. 簡単なツール呼び出しによるテスト:
    use_mcp_tool({ server_name: "prompt-manager", tool_name: "list_prompts", arguments: {} });

構成

サーバーは環境変数を使用して設定できます。

環境変数説明デフォルト
サーバー名サーバー名MCPがサーバーにプロンプトを出す
サーバーバージョンサーバーバージョンpackage.json バージョン
ストレージタイプストレージタイプ: 'file'、'postgres'、または 'mdc'ファイル
プロンプトディレクトリプロンプトを保存するディレクトリ~/mcp/data/プロンプト
バックアップディレクトリバックアップ用のディレクトリ~/mcp/データ/バックアップ
ポートHTTPサーバーのポート3003
ログレベルログレベル情報
HTTP_サーバーHTTPサーバーを有効にする間違い
ホストHTTPサーバーのホスト0.0.0.0

PostgreSQL設定(STORAGE_TYPE=postgresの場合は必須)

環境変数説明デフォルト
PG_ホストPostgreSQLホストローカルホスト
PG_ポートPostgreSQL ポート5432
PG_データベースPostgreSQLデータベース名mcp_prompts
PG_ユーザーPostgreSQLユーザー名ポストグル
PG_パスワードPostgreSQLパスワード
PG_SSLPostgreSQL接続にSSLを使用する間違い
POSTGRES_接続文字列完全な PostgreSQL 接続文字列 (個々の設定を上書きします)

MDC 設定 (STORAGE_TYPE=mdc の場合は必須)

環境変数説明デフォルト
MDC_RULES_DIRMDCルールのディレクトリ./.カーソル/ルール

使用法

クロードと一緒に使う

Claude 3 デスクトップ アプリでは、 claude_desktop_config.jsonで MCP プロンプト サーバーを設定できます。

{ "mcpServers": { "prompts": { "command": "npx", "args": [ "-y", "@sparesparrow/mcp-prompts" ], "env": { "STORAGE_TYPE": "file", "PROMPTS_DIR": "/path/to/your/prompts/directory", "LOG_LEVEL": "debug" } } } }

利用可能なツール

MCP プロンプト サーバーは次のツールを提供します。

  • add_prompt : 新しいプロンプトを追加する
  • get_prompt : IDでプロンプトを取得する
  • update_prompt : 既存のプロンプトを更新する
  • list_prompts : すべてのプロンプトを一覧表示する
  • delete_prompt : IDでプロンプトを削除する
  • apply_template : プロンプトテンプレートに変数を適用する

APIの使用例

利用可能なプロンプトの一覧

利用可能なプロンプトを確認するには:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "list_prompts", arguments: {} });

タグでフィルタリングするには:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "list_prompts", arguments: { tags: ["development"] } });

特定のプロンプトを取得する

ID で特定のプロンプトを取得するには:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "get_prompt", arguments: { id: "development-workflow" } });

テンプレートプロンプトの使用

テンプレートプロンプトに変数を適用するには:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "apply_template", arguments: { id: "development-system-prompt", variables: { "project_type": "web frontend", "language": "JavaScript/React", "project_name": "TaskManager", "project_goal": "create a task management application with drag-and-drop functionality", "technical_context": "Using React 18, TypeScript, and Material UI" } } });

プロンプトの管理

新しいプロンプトの追加

新しいプロンプトを追加するには:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "add_prompt", arguments: { name: "Bug Report Template", description: "Template for submitting bug reports", content: "## Bug Report\n\n### Description\n{{description}}\n\n### Steps to Reproduce\n{{steps}}\n\n### Expected Behavior\n{{expected}}\n\n### Actual Behavior\n{{actual}}\n\n### Environment\n{{environment}}", isTemplate: true, variables: ["description", "steps", "expected", "actual", "environment"], tags: ["bug", "template", "documentation"] } });

既存のプロンプトの編集

既存のプロンプトを編集するには:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "edit_prompt", arguments: { id: "development-workflow", content: "Updated workflow content here...", tags: ["development", "workflow", "python", "updated"] } });

ワークフローでプロンプトを使用する

開発ワークフローの例

新しい機能の作業を開始するときは、次の点に注意してください。

  1. 開発システムプロンプトテンプレートをリクエストする
  2. テンプレートにプロジェクトの詳細を入力してください
  3. 表示されるシステムプロンプトを使用して、クロードの支援をガイドします。

コードレビューの例

コードをレビューする場合:

  1. コードレビューテンプレートをリクエストする
  2. レビュー対象となるコードを提供する
  3. クロードは体系的なレビューを提供します

プロンプト形式

プロンプトの構造は次のとおりです。

{ "id": "unique-id", "name": "Prompt Name", "description": "Optional description", "content": "The prompt content with {{variables}}", "tags": ["tag1", "tag2"], "isTemplate": true, "variables": ["variable1", "variable2"], "metadata": { "author": "Your Name", "version": "1.0.0" } }

マルチフォーマットプロンプトのサポート

MCP プロンプト サーバーには、プロンプトを複数の形式間で変換できる強力なMutablePromptインターフェイスが含まれています。

  • JSON形式: サーバーが使用する標準内部形式
  • MDC 形式: カーソルルール マークダウン形式 (.mdc ファイル)
  • PGAI フォーマット: PostgreSQL AI の埋め込みをサポートするフォーマット
  • テンプレート形式: 可変プレースホルダーを使用した動的形式

フォーマット間の変換

MutablePrompt インターフェースは、プロンプトを次の形式間で変換するメソッドを提供します。

// Create a mutable prompt const factory = new MutablePromptFactoryImpl(); const prompt = factory.create({ name: "API Design Guide", description: "Template for designing RESTful APIs", content: "# API Design for {{service_name}}\n\n## Endpoints\n\n{{endpoints}}\n\n## Authentication\n\n{{auth_method}}", isTemplate: true, variables: ["service_name", "endpoints", "auth_method"], tags: ["api", "design", "rest", "glob:*.md"] }); // Convert to MDC format const mdcContent = prompt.toMdc({ includeVariables: true }); // Convert to PGAI format with embeddings const pgaiData = prompt.toPgai({ generateEmbeddings: true, collection: "prompts", vectorConfig: { dimension: 1536, metric: "cosine" } }); // Convert to template format with dollar-style variables const templateContent = prompt.toTemplate({ delimiterStyle: "dollar" });

テンプレートの適用

テンプレートプロンプトに変数を簡単に適用できます。

const result = prompt.applyVariables({ service_name: "User Management API", endpoints: "GET /users, POST /users, GET /users/{id}, PUT /users/{id}, DELETE /users/{id}", auth_method: "JWT Bearer Token" });

変数の抽出

テンプレートコンテンツから変数を抽出します。

const variables = prompt.extractVariables(); // Returns ["service_name", "endpoints", "auth_method"]

さまざまな形式から作成する

さまざまな形式からプロンプトを作成することもできます。

// From MDC format const mdcContent = `--- description: Template for code reviews globs: ["*.js", "*.ts"] --- # Code Review Template ## Context {{context}} ## Patterns {{patterns}} ## Variables - \`context\`: Description of the code being reviewed - \`patterns\`: Common patterns to look for `; const promptFromMdc = factory.fromMdc(mdcContent); // From PGAI format const pgaiData = { id: "api-design", name: "API Design Guide", content: "# API Design Guide\n\nUse this guide...", metadata: { description: "Comprehensive API design guide", tags: ["api", "rest"], isTemplate: false } }; const promptFromPgai = factory.fromPgai(pgaiData);

ストレージアダプタとの統合

MutablePrompt インターフェースは、既存のストレージ アダプターとシームレスに連携します。

// Save a prompt in MDC format const mdcPrompt = factory.fromMdc(mdcContent); await fileAdapter.savePrompt(mdcPrompt); // Save a prompt to PostgreSQL with PGAI format const pgaiPrompt = factory.fromPgai(pgaiData); await postgresAdapter.savePrompt(pgaiPrompt);

この柔軟な形式の処理により、次のことが可能になります。

  1. クロスプラットフォームの互換性: さまざまなツールやプラットフォームでプロンプトを使用できます
  2. ベクトル検索: セマンティック検索機能にはPGAI形式を使用する
  3. IDE統合:カーソルルールとの直接互換性
  4. テンプレートシステム: さまざまなプログラミング言語で使用するためにテンプレートをエクスポートします

ストレージアダプタ

サーバーは、次の 3 種類のストレージ アダプタをサポートしています。

  1. ファイル アダプター: プロンプトを個別の JSON ファイルとしてディレクトリに保存します。
  2. PostgreSQL アダプタ: プロンプトを PostgreSQL データベースに保存します。
  3. MDC アダプター: プロンプトをカーソル ルール MDC 形式で保存します。

ストレージ タイプは、 STORAGE_TYPE環境変数を使用して設定できます。

STORAGE_TYPE=file # Default STORAGE_TYPE=postgres # Requires PostgreSQL configuration STORAGE_TYPE=mdc # For Cursor Rules format

PostgreSQLのセットアップ

PostgreSQL ストレージを使用する場合は、次の環境変数を構成します。

PG_HOST=localhost PG_PORT=5432 PG_DATABASE=mcp_prompts PG_USER=postgres PG_PASSWORD=your_password PG_SSL=false

または、接続文字列を使用します。

POSTGRES_CONNECTION_STRING=postgresql://user:password@host:port/database

Docker デプロイメント

Docker Compose オーケストレーション

MCP プロンプト サーバーは、さまざまなデプロイメント シナリオに合わせてさまざまな Docker Compose 構成を提供します。

シンプルな導入

docker compose up -d

これにより、ポート 3003 のファイル ストレージを使用して MCP プロンプト サーバーが展開されます。

PostgreSQLのデプロイメント

docker compose -f docker-compose.postgres.yml up -d

これにより、次のものがデプロイされます。

  • PostgreSQLデータベースサーバー
  • PostgreSQL用に構成されたMCPプロンプトサーバー
  • http://localhost:8080のデータベース管理用の管理者

開発環境

docker compose -f docker-compose.dev.yml up -d

ホットリロード機能を備えた開発環境を構築します。ローカルディレクトリからソースコードをマウントし、Adminerもインストールします。

テスト環境

docker compose -f docker-compose.test.yml up --build

これにより、次の専用のテスト環境が作成されます。

  • テストデータを含む一時的なPostgreSQLインスタンス
  • すべてのテストを実行する分離されたテストランナーコンテナ
  • テスト結果は ./test-results ディレクトリに保存されます

Docker管理スクリプト

Docker Compose 操作を簡素化するには、提供されている管理スクリプトを使用します。

# Start development environment ./scripts/docker-manage.sh start dev # Run tests in Docker ./scripts/docker-manage.sh test # View logs from production environment ./scripts/docker-manage.sh logs prod # Clean up test environment ./scripts/docker-manage.sh clean test # Show help ./scripts/docker-manage.sh help

管理スクリプトは次のコマンドをサポートしています。

  • start : Dockerコンテナを起動する
  • stop : Dockerコンテナを停止する
  • restart : Dockerコンテナを再起動する
  • logs :コンテナからのログを表示する
  • clean : コンテナ、ネットワーク、ボリュームを削除します
  • build : Dockerイメージをビルドする
  • test : Dockerコンテナでテストを実行する

そして次の環境:

  • dev : 開発環境(デフォルト)
  • test : テスト環境
  • prod : 本番環境

カスタム構成

基本構成を拡張することで、独自のカスタム Docker Compose 構成を作成できます。

# custom-compose.yml version: '3.8' include: - docker-compose.yml services: mcp-prompts: environment: - CUSTOM_ENV=value

次に次のコマンドで実行します:

docker compose -f custom-compose.yml up -d

発達

開発ワークフロー

開発環境の設定

  1. リポジトリをクローンする
    git clone https://github.com/user/mcp-prompt-manager.git cd mcp-prompt-manager
  2. 依存関係をインストールする
    npm install
  3. 環境変数を設定する必要な構成を含む.envファイルを作成します。

開発コマンド

  • ホットリロードで開発サーバーを起動する
    npm run dev
  • プロジェクトを構築する
    npm run build
  • ユニットテストを実行する
    npm test
  • 統合テストを実行する
    npm run test:integration
  • テストビルドプロセス
    npm run test:build
  • Dockerビルドのテスト
    npm run test:docker
  • Dockerイメージをビルドする
    npm run docker:build

ビルドプロセス

ビルド プロセスにはいくつかの重要なステップが含まれます。

  1. TypeScriptコンパイル
    npm run build
  2. エントリポイントを実行可能にする
    chmod +x dist/index.js

テスト

テストを実行します。

npm test

テストのために MCP Inspector を実行します。

npm run test:inspector

包括的なテストスクリプト

より高度なテスト オプションについては、提供されているテスト スクリプトを使用します。

# Run all tests (unit and integration) ./scripts/run-tests.sh # Run only unit tests ./scripts/run-tests.sh --unit # Run only integration tests ./scripts/run-tests.sh --integration # Generate test coverage report ./scripts/run-tests.sh --coverage # Run tests in Docker ./scripts/run-tests.sh --docker # Clean up Docker resources after testing ./scripts/run-tests.sh --docker --clean

Dockerコンテナのヘルステスト

Docker コンテナの健全性をテストするには:

# Run the Docker health check tests TEST_DOCKER_HEALTH=true npm test -- tests/integration/docker-health.integration.test.ts

このテストでは、MCP-Prompts サーバーが Docker コンテナで実行されているときに、ヘルスチェック エンドポイントが正しく動作していることを確認します。

ディレクトリ構造

このプロジェクトは、明確な関心の分離を維持するために構造化された組織に従います。

mcp-prompt-manager/ ├── .github/workflows/ # CI/CD workflow configurations ├── dist/ # Built files ├── src/ # Source code │ ├── adapters.ts # Storage adapters │ ├── interfaces.ts # Core types and interfaces │ └── index.ts # Main entry point ├── scripts/ # Maintenance and utility scripts ├── package.json # Project metadata and scripts └── README.md # Project documentation

リリースプロセス

リリース前のチェックリスト

  • すべてのTypeScriptエラーが解決されました
  • コードリンティングはエラーなしで合格しました
  • コードはプロジェクト標準に従って適切にフォーマットされている
  • ユニットテストに合格
  • 統合テストに合格
  • ビルドテストに合格
  • Dockerビルドテストに合格
  • パッケージインストールテストに合格
  • READMEは最新の機能と変更を反映しています
  • CHANGELOG はすべての注目すべき変更点とともに更新されます

バージョンアップデート

  • セマンティックバージョニングに従ってpackage.jsonのバージョンを更新する
  • 依存関係が最新であることを確認する
  • ドキュメント内のバージョン参照を更新する

出版

  • 新しいバージョンのgitタグを作成する
  • 変更とタグをGitHubにプッシュする
  • npm に公開する ( npm publish )
  • Dockerイメージをビルドしてプッシュする

リリース後の検証

  • npmからインストールを確認する
  • パッケージがnpxで実行できることを確認する
  • Dockerイメージが期待通りに動作することを確認する
  • Claude Desktopとの統合を確認する

変更履歴

[1.2.20] - 2025年3月14日

  • 自動バージョンアップ

[1.2.19] - 2024年3月16日

修理済み

  • PostgresAdapter実装におけるTypeScriptエラーを修正しました
  • 作成されたプロンプトを適切に返すように savePrompt メソッドを拡張しました
  • PostgresAdapterにupdatePromptメソッドを追加しました
  • StorageAdapter インターフェースを修正し、listPrompts および clearAll メソッドを追加しました
  • clearAll メソッドの database-tools.ts におけるエラー処理の改善
  • より詳細な情報を備えた強化されたヘルスチェックエンドポイント

追加した

  • ヘルスチェックエンドポイントのドキュメントとエラー処理を改善しました

[1.2.18] - 2024年3月14日

追加した

  • ヘルスチェックエンドポイントを備えたHTTPサーバーを追加しました
  • Dockerコンテナのヘルスチェックを追加
  • Node.js 18-23+ の ESM モジュール互換性を追加しました
  • エラー処理を改善した強化されたデータベースツール

変更

  • マルチステージビルドによる Docker ビルドプロセスの改善
  • 合理化された構成管理
  • 最適化されたPostgreSQLアダプタ接続処理
  • 依存関係を最新バージョンに更新しました

修理済み

  • 特定のファイルシステム上のファイルアダプタの問題を修正しました
  • デバッグを向上させるためのエラーメッセージの改善
  • テンプレート変数の抽出を修正

[1.2.0] - 2025年3月14日

変更

  • 保守性を向上させるためにコードベース構造を再編成しました
  • Docker関連のファイルをdocker/ディレクトリに移動しました
  • ビルドスクリプトをscripts/build/ディレクトリに移動しました
  • テストスクリプトをscripts/test/ディレクトリに移動しました
  • 新しいファイルパスを使用するように GitHub ワークフローを更新しました
  • 新しいファイルパスを使用するようにDocker Compose構成を更新しました
  • 包括的な開発ドキュメントを追加

追加した

  • 詳細な手順を記載した開発ドキュメントを作成した
  • リリース準備のためのリリースチェックリストを作成しました
  • 変更を追跡するためのCHANGELOG.mdを追加しました

削除されました

  • 重複ファイルと冗長ファイルを削除しました
  • 不完全なスクリプトを削除しました

[1.1.0] - 2024年3月1日

追加した

  • 意味プロンプト発見のためのPGAIベクトル検索
  • PostgreSQLの埋め込みのサポート
  • プロフェッショナルなテンプレートによるプロンプトコレクションの改善
  • 迅速な収集のためのバッチ処理機能

変更

  • 強化されたプロンプト処理パイプライン
  • より多くのオプションを備えた改善されたコマンドラインインターフェース
  • より優れたエラー処理と検証

[1.0.0] - 2024年2月15日

追加した

  • MCPプロンプトサーバーの初期リリース
  • 基本的なプロンプト管理機能(追加、編集、取得、リスト、削除)
  • テンプレート変数の置換
  • タグベースの組織
  • ファイルベースのストレージ
  • インポート/エクスポート機能
  • MCPプロトコルの互換性

ベストプラクティス

  1. タグで整理: タグを使用してプロンプトを分類し、簡単に検索できるようにします。
  2. テンプレートの使用: 変数を使用して再利用可能なテンプレートを作成し、一貫したプロンプトを表示します。
  3. メタデータを含める: 作成者、バージョン、その他のメタデータを追加して整理しやすくします
  4. 定期的なバックアップ: 重要なプロンプトを管理する場合はバックアップ機能を使用します
  5. 大規模なコレクションの最適化: 大規模なプロンプトコレクションを取得するときにページ区切りを使用します
  6. 一貫した命名を使用する: プロンプトに明確かつ一貫した名前を付けて、簡単に見つけられるようにします。
  7. 効果的なタグ付け: タグを使用して、目的、プロジェクト、またはコンテキストごとにプロンプトを整理します。
  8. 再利用可能なプロンプトのテンプレート化: 変数を使用して頻繁に使用するプロンプトのテンプレートを作成します。
  9. 定期的に更新: ニーズの変化に応じてプロンプトを最新の状態に保ちます
  10. チームと共有: 効果的なプロンプトをチームと共有して、一貫性のあるやり取りを実現します。

ライセンス

マサチューセッツ工科大学

ID: i0z4f3pr82