MCPがサーバーにプロンプトを出す
プロジェクトオーケストレーション機能を備えたプロンプトとテンプレートを管理するためのMCPサーバー。モデルコンテキストプロトコルエコシステムの一部です。
このサーバーは、AI プロンプトのテンプレートを保存、取得、適用する簡単な方法を提供し、AI アプリケーション全体で一貫したプロンプト パターンを維持しやすくなります。
目次
Related MCP server: PromptLab MCP Server
特徴
プロンプトを保存および取得する
変数を含むテンプレートを作成して使用する
タグでフィルタリングしたリストプロンプト
テンプレートに変数を適用する
複数のストレージバックエンド(ファイルシステム、PostgreSQL、MDC形式)
Claudeや他のAIアシスタントと簡単に使える
プロジェクトオーケストレーション機能
ヘルスチェックエンドポイント
インストール
npx の使用(推奨)
npx -y @sparesparrow/mcp-promptsグローバルインストール
npm install -g @sparesparrow/mcp-promptsDockerの使用
docker run -p 3003:3003 -v ~/mcp/data:/app/data sparesparrow/mcp-prompts:latestインストールの確認
インストール後、次の方法でサーバーが動作していることを確認できます。
クロードデスクトップを開く
チャット入力に「/」と入力して、サーバーからのプロンプトが表示されるかどうかを確認します。
簡単なツール呼び出しによるテスト:
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_SSL | PostgreSQL接続にSSLを使用する | 間違い |
POSTGRES_接続文字列 | 完全な PostgreSQL 接続文字列 (個々の設定を上書きします) |
MDC 設定 (STORAGE_TYPE=mdc の場合は必須)
環境変数 | 説明 | デフォルト |
MDC_RULES_DIR | MDCルールのディレクトリ | ./.カーソル/ルール |
使用法
クロードと一緒に使う
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"]
}
});ワークフローでプロンプトを使用する
開発ワークフローの例
新しい機能の作業を開始するときは、次の点に注意してください。
開発システムプロンプトテンプレートをリクエストする
テンプレートにプロジェクトの詳細を入力してください
表示されるシステムプロンプトを使用して、クロードの支援をガイドします。
コードレビューの例
コードをレビューする場合:
コードレビューテンプレートをリクエストする
レビュー対象となるコードを提供する
クロードは体系的なレビューを提供します
プロンプト形式
プロンプトの構造は次のとおりです。
{
"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);この柔軟な形式の処理により、次のことが可能になります。
クロスプラットフォームの互換性: さまざまなツールやプラットフォームでプロンプトを使用できます
ベクトル検索: セマンティック検索機能にはPGAI形式を使用する
IDE統合:カーソルルールとの直接互換性
テンプレートシステム: さまざまなプログラミング言語で使用するためにテンプレートをエクスポートします
ストレージアダプタ
サーバーは、次の 3 種類のストレージ アダプタをサポートしています。
ファイル アダプター: プロンプトを個別の JSON ファイルとしてディレクトリに保存します。
PostgreSQL アダプタ: プロンプトを PostgreSQL データベースに保存します。
MDC アダプター: プロンプトをカーソル ルール MDC 形式で保存します。
ストレージ タイプは、 STORAGE_TYPE環境変数を使用して設定できます。
STORAGE_TYPE=file # Default
STORAGE_TYPE=postgres # Requires PostgreSQL configuration
STORAGE_TYPE=mdc # For Cursor Rules formatPostgreSQLのセットアップ
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/databaseDocker デプロイメント
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発達
開発ワークフロー
開発環境の設定
リポジトリをクローンする
git clone https://github.com/user/mcp-prompt-manager.git cd mcp-prompt-manager依存関係をインストールする
npm install環境変数を設定する必要な構成を含む
.envファイルを作成します。
開発コマンド
ホットリロードで開発サーバーを起動する
npm run devプロジェクトを構築する
npm run buildユニットテストを実行する
npm test統合テストを実行する
npm run test:integrationテストビルドプロセス
npm run test:buildDockerビルドのテスト
npm run test:dockerDockerイメージをビルドする
npm run docker:build
ビルドプロセス
ビルド プロセスにはいくつかの重要なステップが含まれます。
TypeScriptコンパイル
npm run buildエントリポイントを実行可能にする
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 --cleanDockerコンテナのヘルステスト
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プロトコルの互換性
ベストプラクティス
タグで整理: タグを使用してプロンプトを分類し、簡単に検索できるようにします。
テンプレートの使用: 変数を使用して再利用可能なテンプレートを作成し、一貫したプロンプトを表示します。
メタデータを含める: 作成者、バージョン、その他のメタデータを追加して整理しやすくします
定期的なバックアップ: 重要なプロンプトを管理する場合はバックアップ機能を使用します
大規模なコレクションの最適化: 大規模なプロンプトコレクションを取得するときにページ区切りを使用します
一貫した命名を使用する: プロンプトに明確かつ一貫した名前を付けて、簡単に見つけられるようにします。
効果的なタグ付け: タグを使用して、目的、プロジェクト、またはコンテキストごとにプロンプトを整理します。
再利用可能なプロンプトのテンプレート化: 変数を使用して頻繁に使用するプロンプトのテンプレートを作成します。
定期的に更新: ニーズの変化に応じてプロンプトを最新の状態に保ちます
チームと共有: 効果的なプロンプトをチームと共有して、一貫性のあるやり取りを実現します。
ライセンス
マサチューセッツ工科大学