This Prompts MCP Server is a Model Context Protocol endpoint for managing prompt templates stored as markdown files with YAML frontmatter support. You can:
Add Prompts: Store new prompts as markdown files with optional or structured metadata
Retrieve Prompts: Fetch specific prompts by name
List Prompts: View all available prompts with metadata previews
Delete Prompts: Remove prompts by name
Key features include:
File-based Storage: Prompts stored in a configurable directory (default:
prompts/)Real-time Caching: In-memory cache with automatic updates on file changes
Metadata Support: YAML frontmatter for structured data (title, description, tags, etc.)
Client Integration: Compatible with MCP applications like Claude Desktop, Cline, Continue.dev, and Zed Editor
Supports containerized deployment of the prompts MCP server with volume mounting for prompt storage
Mentioned as an available code linting tool for development of the MCP server
Provides installation directly from the GitHub repository, with access to releases, issues, and documentation
Provides specific configuration path for Claude Desktop integration on macOS
Stores prompts as markdown files with YAML frontmatter for structured metadata
Runs the MCP server using Node.js with specific version requirements (18.0.0+)
Implemented fully in TypeScript with comprehensive type definitions and strict type checking
Uses Vitest as the testing framework with watch mode for development
Supports structured metadata using YAML frontmatter in prompt files
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Prompts MCP Serveradd a prompt named 'email_writer' for drafting professional emails"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Prompts MCP Server
A Model Context Protocol (MCP) server for managing and providing prompts. This server allows users and LLMs to easily add, retrieve, and manage prompt templates stored as markdown files with YAML frontmatter support.
Quick Start
# 1. Install from NPM
npm install -g prompts-mcp-server
# 2. Add to your MCP client config (e.g., Claude Desktop)
# Add this to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"prompts-mcp-server": {
"command": "prompts-mcp-server"
}
}
}
# 3. Restart your MCP client and start using the tools!Related MCP server: RT-Prompt-MCP
Features
Add Prompts: Store new prompts as markdown files with YAML frontmatter
Retrieve Prompts: Get specific prompts by name
List Prompts: View all available prompts with metadata preview
Delete Prompts: Remove prompts from the collection
File-based Storage: Prompts are stored as markdown files in the
prompts/directoryReal-time Caching: In-memory cache with automatic file change monitoring
YAML Frontmatter: Support for structured metadata (title, description, tags, etc.)
TypeScript: Full TypeScript implementation with comprehensive type definitions
Modular Architecture: Clean separation of concerns with dependency injection
Comprehensive Testing: 95 tests with 84.53% code coverage
Installation
Option 1: From NPM (Recommended)
Install the package globally from NPM:
npm install -g prompts-mcp-serverThis will make the prompts-mcp-server command available in your system.
After installation, you need to configure your MCP client to use it. See MCP Client Configuration.
Option 2: From GitHub (for development)
# Clone the repository
git clone https://github.com/tanker327/prompts-mcp-server.git
cd prompts-mcp-server
# Install dependencies
npm install
# Build the TypeScript code
npm run build
# Test the installation
npm testOption 3: Direct Download
Download the latest release from GitHub
Extract to your desired location
Run installation steps from Option 2.
Verification
After installation, verify the server works:
# Start the server (should show no errors)
npm start
# Or test with MCP Inspector
npx @modelcontextprotocol/inspector prompts-mcp-serverTesting
Run the comprehensive test suite:
npm testRun tests with coverage:
npm run test:coverageWatch mode for development:
npm run test:watchMCP Tools
The server provides the following tools:
add_prompt
Add a new prompt to the collection. If no YAML frontmatter is provided, default metadata will be automatically added.
name (string): Name of the prompt
content (string): Content of the prompt in markdown format with optional YAML frontmatter
create_structured_prompt
Create a new prompt with guided metadata structure and validation.
name (string): Name of the prompt
title (string): Human-readable title for the prompt
description (string): Brief description of what the prompt does
category (string, optional): Category (defaults to "general")
tags (array, optional): Array of tags for categorization (defaults to ["general"])
difficulty (string, optional): "beginner", "intermediate", or "advanced" (defaults to "beginner")
author (string, optional): Author of the prompt (defaults to "User")
content (string): The actual prompt content (markdown)
get_prompt
Retrieve a prompt by name.
name (string): Name of the prompt to retrieve
list_prompts
List all available prompts with metadata preview. No parameters required.
delete_prompt
Delete a prompt by name.
name (string): Name of the prompt to delete
Usage Examples
Once connected to an MCP client, you can use the tools like this:
Method 1: Quick prompt creation with automatic metadata
// Add a prompt without frontmatter - metadata will be added automatically
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`
})
// This automatically adds default frontmatter with title "Debug Helper", category "general", etc.Method 2: Structured prompt creation with full metadata control
// Create a prompt with explicit metadata using the structured tool
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]`
})Method 3: Manual frontmatter (preserves existing metadata)
// Add a prompt with existing frontmatter - no changes made
add_prompt({
name: "custom_prompt",
content: `---
title: "Custom Assistant"
category: "specialized"
tags: ["custom", "specific"]
difficulty: "advanced"
---
# Custom Prompt Content
Your specific prompt here...`
})Other operations
// Get a prompt
get_prompt({ name: "code_review" })
// List all prompts (shows metadata preview)
list_prompts({})
// Delete a prompt
delete_prompt({ name: "old_prompt" })File Structure
prompts-mcp-server/
├── src/
│ ├── index.ts # Main server orchestration
│ ├── types.ts # TypeScript type definitions
│ ├── cache.ts # Caching system with file watching
│ ├── fileOperations.ts # File I/O operations
│ └── tools.ts # MCP tool definitions and handlers
├── tests/
│ ├── helpers/
│ │ ├── testUtils.ts # Test utilities
│ │ └── mocks.ts # Mock implementations
│ ├── cache.test.ts # Cache module tests
│ ├── fileOperations.test.ts # File operations tests
│ ├── tools.test.ts # Tools module tests
│ └── index.test.ts # Integration tests
├── prompts/ # Directory for storing prompt markdown files
│ ├── code_review.md
│ ├── debugging_assistant.md
│ └── api_design.md
├── dist/ # Compiled JavaScript output
├── CLAUDE.md # Development documentation
├── package.json
├── tsconfig.json
└── README.mdArchitecture
The server uses a modular architecture with the following components:
PromptCache: In-memory caching with real-time file change monitoring via chokidar
PromptFileOperations: File I/O operations with cache integration
PromptTools: MCP tool definitions and request handlers
Type System: Comprehensive TypeScript types for all data structures
YAML Frontmatter Support
Prompts can include structured metadata using YAML frontmatter:
---
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"
---
# Prompt Content
Your prompt content goes here...MCP Client Configuration
This server can be configured with various MCP-compatible applications. Here are setup instructions for popular clients:
Claude Desktop
Add this to your Claude Desktop configuration file:
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 Extension)
Add to your Cline MCP settings in VS Code:
{
"cline.mcp.servers": {
"prompts-mcp-server": {
"command": "prompts-mcp-server",
"env": {
"PROMPTS_FOLDER_PATH": "/path/to/your/prompts/directory"
}
}
}
}Continue.dev
In your ~/.continue/config.json:
{
"mcpServers": [
{
"name": "prompts-mcp-server",
"command": "prompts-mcp-server",
"env": {
"PROMPTS_FOLDER_PATH": "/path/to/your/prompts/directory"
}
}
]
}Zed Editor
In your Zed settings (~/.config/zed/settings.json):
{
"assistant": {
"mcp_servers": {
"prompts-mcp-server": {
"command": "prompts-mcp-server",
"env": {
"PROMPTS_DIR": "/path/to/your/prompts/directory"
}
}
}
}
}Custom MCP Client
For any MCP-compatible application, use these connection details:
Protocol: Model Context Protocol (MCP)
Transport: stdio
Command:
prompts-mcp-serverEnvironment Variables:
PROMPTS_FOLDER_PATH: Custom directory for storing prompts (optional, defaults to./prompts)
Development/Testing Setup
For development or testing with the MCP Inspector:
# Install MCP Inspector
npm install -g @modelcontextprotocol/inspector
# Run the server with inspector
npx @modelcontextprotocol/inspector prompts-mcp-serverDocker Configuration
Create a docker-compose.yml for containerized deployment:
version: '3.8'
services:
prompts-mcp-server:
build: .
environment:
- PROMPTS_FOLDER_PATH=/app/prompts
volumes:
- ./prompts:/app/prompts
stdin_open: true
tty: trueServer Configuration
The server automatically creates the
prompts/directory if it doesn't existPrompt files are automatically sanitized to use safe filenames (alphanumeric characters, hyphens, and underscores only)
File changes are monitored in real-time and cache is updated automatically
Prompts directory can be customized via the
PROMPTS_FOLDER_PATHenvironment variable
Environment Variables
Variable | Description | Default |
| Custom directory to store prompt files (overrides default) | (not set) |
| Environment mode |
|
Note: If
PROMPTS_FOLDER_PATHis set, it will be used as the prompts directory. If not set, the server defaults to./promptsrelative to the server location.
Requirements
Node.js 18.0.0 or higher
TypeScript 5.0.0 or higher
Dependencies:
@modelcontextprotocol/sdk ^1.0.0
gray-matter ^4.0.3 (YAML frontmatter parsing)
chokidar ^3.5.3 (file watching)
Development
The project includes comprehensive tooling for development:
TypeScript: Strict type checking and modern ES modules
Vitest: Fast testing framework with 95 tests and 84.53% coverage
ESLint: Code linting (if configured)
File Watching: Real-time cache updates during development
Troubleshooting
Common Issues
"Module not found" errors
# Ensure TypeScript is built
npm run build
# Check that dist/ directory exists and contains .js files
ls dist/MCP client can't connect
Verify the server starts without errors:
npm startCheck the correct path is used in client configuration
Ensure Node.js 18+ is installed:
node --versionTest with MCP Inspector:
npx @modelcontextprotocol/inspector prompts-mcp-server
Permission errors with prompts directory
# Ensure the prompts directory is writable
mkdir -p ./prompts
chmod 755 ./promptsFile watching not working
On Linux: Install
inotify-toolsOn macOS: No additional setup needed
On Windows: Ensure Windows Subsystem for Linux (WSL) or native Node.js
Debug Mode
Enable debug logging by setting environment variables:
# Enable debug mode
DEBUG=* node dist/index.js
# Or with specific debug namespace
DEBUG=prompts-mcp:* node dist/index.jsGetting Help
Check the GitHub Issues
Review the test files for usage examples
Use MCP Inspector for debugging client connections
Check your MCP client's documentation for configuration details
Performance Tips
The server uses in-memory caching for fast prompt retrieval
File watching automatically updates the cache when files change
Large prompt collections (1000+ files) work efficiently due to caching
Consider using SSD storage for better file I/O performance
Community Variants & Extensions
Project | Maintainer | Extra Features |
GitHub-hosted prompt libraries, advanced search & composition, richer TypeScript types, etc. |
👉 Have you built something cool on top of prompts-mcp-server?
Open an issue or PR to add it here so others can discover your variant!
License
MIT