🚀 プロンプトMCPサーバー
プロンプトの管理と提供を行うためのモデルコンテキストプロトコル(MCP)サーバーです。このサーバーを使用すると、ユーザーと大規模言語モデル(LLM)が、YAMLフロントマターをサポートするMarkdownファイルとして保存されたプロンプトテンプレートを簡単に追加、取得、管理できます。
🚀 クイックスタート
npm install -g prompts-mcp-server
{
"mcpServers": {
"prompts-mcp-server": {
"command": "prompts-mcp-server"
}
}
}
✨ 主な機能
- プロンプトの追加: YAMLフロントマター付きのMarkdownファイルとして新しいプロンプトを保存します。
- プロンプトの取得: 名前で特定のプロンプトを取得します。
- プロンプトの一覧表示: メタデータのプレビュー付きで、利用可能なすべてのプロンプトを表示します。
- プロンプトの削除: コレクションからプロンプトを削除します。
- ファイルベースのストレージ: プロンプトは
prompts/
ディレクトリ内のMarkdownファイルとして保存されます。
- リアルタイムキャッシュ: 自動的なファイル変更監視を備えたメモリ内キャッシュです。
- YAMLフロントマター: 構造化されたメタデータ(タイトル、説明、タグなど)をサポートします。
- TypeScript: 包括的な型定義を備えた完全なTypeScript実装です。
- モジュール化アーキテクチャ: 依存性注入による明確な関心事の分離です。
- 包括的なテスト: 95のテストと84.53%のコードカバレッジを持っています。
📦 インストール
オプション1: NPMから(推奨)
NPMからパッケージをグローバルにインストールします。
npm install -g prompts-mcp-server
これにより、prompts-mcp-server
コマンドがシステムで使用可能になります。
インストール後、MCPクライアントを設定して使用する必要があります。MCPクライアントの設定を参照してください。
オプション2: GitHubから(開発用)
git clone https://github.com/tanker327/prompts-mcp-server.git
cd prompts-mcp-server
npm install
npm run build
npm test
オプション3: 直接ダウンロード
- GitHubから最新のリリースをダウンロードします。
- 任意の場所に解凍します。
- オプション2のインストール手順を実行します。
検証
インストール後、サーバーが正常に動作することを確認します。
npm start
npx @modelcontextprotocol/inspector prompts-mcp-server
💻 使用例
MCPクライアントに接続したら、以下のようにツールを使用できます。
方法1: 自動メタデータ付きの迅速なプロンプト作成
add_prompt({
name: "debug_helper",
content: `# Debug Helper
Help me debug this issue by:
1. Analyzing the error message
2. Suggesting potential causes
3. Recommending debugging steps`
})
方法2: 完全なメタデータ制御付きの構造化プロンプト作成
create_structured_prompt({
name: "code_review",
title: "Code Review Assistant",
description: "Helps review code for best practices and potential issues",
category: "development",
tags: ["code", "review", "quality"],
difficulty: "intermediate",
author: "Development Team",
content: `# Code Review Prompt
Please review the following code for:
- Code quality and best practices
- Potential bugs or issues
- Performance considerations
- Security vulnerabilities
## Code to Review
[Insert code here]`
})
方法3: 手動フロントマター(既存のメタデータを保持)
add_prompt({
name: "custom_prompt",
content: `---
title: "Custom Assistant"
category: "specialized"
tags: ["custom", "specific"]
difficulty: "advanced"
---
# Custom Prompt Content
Your specific prompt here...`
})
その他の操作
get_prompt({ name: "code_review" })
list_prompts({})
delete_prompt({ name: "old_prompt" })
📚 ドキュメント
ファイル構造
prompts-mcp-server/
├── src/
│ ├── index.ts # メインサーバーのオーケストレーション
│ ├── types.ts # TypeScriptの型定義
│ ├── cache.ts # ファイル監視を備えたキャッシュシステム
│ ├── fileOperations.ts # ファイル入出力操作
│ └── tools.ts # MCPツールの定義とハンドラー
├── tests/
│ ├── helpers/
│ │ ├── testUtils.ts # テストユーティリティ
│ │ └── mocks.ts # モック実装
│ ├── cache.test.ts # キャッシュモジュールのテスト
│ ├── fileOperations.test.ts # ファイル操作のテスト
│ ├── tools.test.ts # ツールモジュールのテスト
│ └── index.test.ts # 統合テスト
├── prompts/ # プロンプトのMarkdownファイルを保存するディレクトリ
│ ├── code_review.md
│ ├── debugging_assistant.md
│ └── api_design.md
├── dist/ # コンパイルされたJavaScriptの出力
├── CLAUDE.md # 開発ドキュメント
├── package.json
├── tsconfig.json
└── README.md
アーキテクチャ
サーバーは以下のコンポーネントを持つモジュール化アーキテクチャを使用しています。
- PromptCache: chokidarを介したリアルタイムファイル変更監視を備えたメモリ内キャッシュです。
- PromptFileOperations: キャッシュと統合されたファイル入出力操作です。
- PromptTools: MCPツールの定義とリクエストハンドラーです。
- 型システム: すべてのデータ構造に対する包括的なTypeScript型です。
YAMLフロントマターのサポート
プロンプトには、YAMLフロントマターを使用して構造化されたメタデータを含めることができます。
---
title: "Prompt Title"
description: "Brief description of the prompt"
category: "development"
tags: ["tag1", "tag2", "tag3"]
difficulty: "beginner" | "intermediate" | "advanced"
author: "Author Name"
version: "1.0"
---
Your prompt content goes here...
MCPクライアントの設定
このサーバーは、様々なMCP互換アプリケーションで設定できます。以下は、人気のクライアントの設定手順です。
Claude Desktop
Claude Desktopの設定ファイルに以下を追加します。
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"prompts-mcp-server": {
"command": "prompts-mcp-server",
"env": {
"PROMPTS_FOLDER_PATH": "/path/to/your/prompts/directory"
}
}
}
}
Cline (VS Code拡張機能)
VS CodeのCline MCP設定に以下を追加します。
{
"cline.mcp.servers": {
"prompts-mcp-server": {
"command": "prompts-mcp-server",
"env": {
"PROMPTS_FOLDER_PATH": "/path/to/your/prompts/directory"
}
}
}
}
Continue.dev
~/.continue/config.json
に以下を追加します。
{
"mcpServers": [
{
"name": "prompts-mcp-server",
"command": "prompts-mcp-server",
"env": {
"PROMPTS_FOLDER_PATH": "/path/to/your/prompts/directory"
}
}
]
}
Zed Editor
Zedの設定(~/.config/zed/settings.json
)に以下を追加します。
{
"assistant": {
"mcp_servers": {
"prompts-mcp-server": {
"command": "prompts-mcp-server",
"env": {
"PROMPTS_DIR": "/path/to/your/prompts/directory"
}
}
}
}
}
カスタムMCPクライアント
任意のMCP互換アプリケーションでは、以下の接続詳細を使用します。
- プロトコル: モデルコンテキストプロトコル(MCP)
- トランスポート: stdio
- コマンド:
prompts-mcp-server
- 環境変数:
PROMPTS_FOLDER_PATH
: プロンプトを保存するカスタムディレクトリ(オプション、デフォルトは./prompts
)
開発/テスト設定
MCPインスペクターを使用した開発またはテストの場合は、以下の手順を実行します。
npm install -g @modelcontextprotocol/inspector
npx @modelcontextprotocol/inspector prompts-mcp-server
Docker設定
コンテナ化されたデプロイのためにdocker-compose.yml
を作成します。
version: '3.8'
services:
prompts-mcp-server:
build: .
environment:
- PROMPTS_FOLDER_PATH=/app/prompts
volumes:
- ./prompts:/app/prompts
stdin_open: true
tty: true
サーバーの設定
- サーバーは、
prompts/
ディレクトリが存在しない場合は自動的に作成します。
- プロンプトファイルは、安全なファイル名(英数字、ハイフン、アンダースコアのみ)を使用するように自動的にサニタイズされます。
- ファイルの変更はリアルタイムで監視され、キャッシュは自動的に更新されます。
- プロンプトディレクトリは、
PROMPTS_FOLDER_PATH
環境変数を介してカスタマイズできます。
環境変数
変数 |
説明 |
デフォルト |
PROMPTS_FOLDER_PATH |
プロンプトファイルを保存するカスタムディレクトリ(デフォルトを上書き) |
(未設定) |
NODE_ENV |
環境モード |
production |
⚠️ 重要提示
PROMPTS_FOLDER_PATH
が設定されている場合、それがプロンプトディレクトリとして使用されます。設定されていない場合、サーバーはサーバーの場所を基準とした./prompts
をデフォルトとします。
🔧 技術詳細
要件
- Node.js 18.0.0以上
- TypeScript 5.0.0以上
- 依存関係:
- @modelcontextprotocol/sdk ^1.0.0
- gray-matter ^4.0.3 (YAMLフロントマターの解析)
- chokidar ^3.5.3 (ファイル監視)
開発
このプロジェクトには、開発用の包括的なツールが含まれています。
- TypeScript: 厳密な型チェックと最新のESモジュール
- Vitest: 高速なテストフレームワークで、95のテストと84.53%のカバレッジを持っています。
- ESLint: コードのリント(設定されている場合)
- ファイル監視: 開発中のリアルタイムキャッシュ更新
トラブルシューティング
一般的な問題
"Module not found"エラー
npm run build
ls dist/
MCPクライアントが接続できない
- サーバーがエラーなく起動することを確認:
npm start
- クライアント設定で正しいパスが使用されていることを確認
- Node.js 18以上がインストールされていることを確認:
node --version
- MCPインスペクターでテスト:
npx @modelcontextprotocol/inspector prompts-mcp-server
プロンプトディレクトリに対するパーミッションエラー
mkdir -p ./prompts
chmod 755 ./prompts
ファイル監視が機能しない
- Linuxの場合:
inotify-tools
をインストールします。
- macOSの場合: 追加の設定は必要ありません。
- Windowsの場合: Windows Subsystem for Linux (WSL) またはネイティブのNode.jsを使用してください。
デバッグモード
環境変数を設定してデバッグログを有効にします。
DEBUG=* node dist/index.js
DEBUG=prompts-mcp:* node dist/index.js
ヘルプの取得
- GitHubの問題を確認します。
- テストファイルを見て使用例を確認します。
- MCPインスペクターを使用してクライアント接続をデバッグします。
- MCPクライアントのドキュメントを確認して設定詳細を確認します。
パフォーマンスのヒント
- サーバーはメモリ内キャッシュを使用して、迅速なプロンプト取得を行います。
- ファイル監視により、ファイルが変更されるとキャッシュが自動的に更新されます。
- 大規模なプロンプトコレクション(1000ファイル以上)もキャッシュにより効率的に動作します。
- より良いファイル入出力パフォーマンスのために、SSDストレージを使用することを検討してください。
コミュニティバリアントと拡張機能
👉 prompts-mcp-serverをベースに何か素敵なものを作ったら、
issueまたはPRを開いてここに追加してください。他の人もあなたのバリアントを見つけることができます!
📄 ライセンス
MIT