🚀 Prompts MCP Server
Prompts MCP Server 是一個用於管理和提供提示詞的模型上下文協議(MCP)服務器。該服務器允許用戶和大語言模型(LLMs)輕鬆添加、檢索和管理以 Markdown 文件形式存儲的提示詞模板,並支持 YAML 元數據。
🚀 快速開始
npm install -g prompts-mcp-server
{
"mcpServers": {
"prompts-mcp-server": {
"command": "prompts-mcp-server"
}
}
}
✨ 主要特性
- 添加提示詞:將新的提示詞以帶有 YAML 元數據的 Markdown 文件形式存儲。
- 檢索提示詞:按名稱獲取特定的提示詞。
- 列出提示詞:查看所有可用提示詞及其元數據預覽。
- 刪除提示詞:從集合中移除提示詞。
- 基於文件的存儲:提示詞以 Markdown 文件形式存儲在
prompts/
目錄中。
- 實時緩存:內存緩存,可自動監控文件更改。
- 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
💻 使用示例
基礎用法
方法 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" })
📚 詳細文檔
MCP 工具
服務器提供以下工具:
add_prompt
向集合中添加一個新的提示詞。如果未提供 YAML 元數據,將自動添加默認元數據。
- name(字符串):提示詞的名稱
- content(字符串):提示詞的內容,採用 Markdown 格式,可包含可選的 YAML 元數據
create_structured_prompt
創建一個帶有引導式元數據結構和驗證的新提示詞。
- name(字符串):提示詞的名稱
- title(字符串):提示詞的可讀標題
- description(字符串):提示詞功能的簡要描述
- category(字符串,可選):類別(默認為 "general")
- tags(數組,可選):用於分類的標籤數組(默認為 ["general"])
- difficulty(字符串,可選):"beginner"、"intermediate" 或 "advanced"(默認為 "beginner")
- author(字符串,可選):提示詞的作者(默認為 "User")
- content(字符串):實際的提示詞內容(Markdown 格式)
get_prompt
按名稱檢索提示詞。
list_prompts
列出所有可用提示詞及其元數據預覽。無需參數。
delete_prompt
按名稱刪除提示詞。
文件結構
prompts-mcp-server/
├── src/
│ ├── index.ts # 主服務器編排
│ ├── types.ts # TypeScript 類型定義
│ ├── cache.ts # 帶有文件監控的緩存系統
│ ├── fileOperations.ts # 文件 I/O 操作
│ └── 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:與緩存集成的文件 I/O 操作。
- 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 Inspector 進行開發或測試:
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 Inspector 進行測試:
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 Inspector 調試客戶端連接
- 查看 MCP 客戶端的文檔以獲取配置詳細信息
性能提示
- 服務器使用內存緩存以實現快速提示詞檢索。
- 文件監控會在文件更改時自動更新緩存。
- 由於緩存機制,大型提示詞集合(1000+ 文件)也能高效工作。
- 考慮使用 SSD 存儲以獲得更好的文件 I/O 性能。
社區變體與擴展
👉 您是否基於 prompts-mcp-server 構建了很酷的東西?
請打開一個問題或拉取請求將其添加到這裡,以便其他人可以發現您的變體!
📄 許可證
本項目採用 MIT 許可證。