PromptDB MCP Server

PromptDB MCP Server

Enables storage, versioning, and retrieval of prompts with rich metadata via MCP tools, supporting stdio and SSE transports.

Category
访问服务器

README

PromptDB MCP Server

<p align="center"> <img src="_assets/banner.gif" alt="banner" width="900" height="350"> </p>

A Model Context Protocol (MCP) server that provides prompt storage and retrieval functionality. Store, version, and manage your prompts with rich metadata and caching for optimal performance.

Features

  • Prompt Storage: Store prompts as individual JSON files with rich metadata
  • Version Management: Automatic versioning with history preservation
  • Caching: In-memory LRU cache for performance optimization
  • Rich Metadata: Tags, descriptions, timestamps, and version tracking
  • MCP Integration: Full compatibility with MCP-enabled applications
  • Dual Transport Support: Both stdio and SSE (Server-Sent Events) transports
  • Cloud Deployment: Ready for deployment to Vercel, Netlify, and other cloud platforms

Pre-populated Prompts

The server comes with a set of pre-populated prompts ready for immediate use. You can retrieve them using the getPrompt tool with the following task names:

  • assistant
  • code-review
  • documentation
  • summarise-paper
  • to-flash-cards

Installation

Global Installation

# Using pnpm (recommended)
pnpm add -g promptdb-mcp-server

# Using npm
npm install -g promptdb-mcp-server

Local Development

# Clone and install dependencies
git clone <repository-url>
cd promptdb-mcp-server
pnpm install

# Build the project
pnpm build

# Start the server
pnpm start

Transport Options

The PromptDB MCP Server supports two transport methods:

1. Stdio Transport (Default)

For local development and MCP clients that support process communication:

# Default stdio transport
promptdb-mcp-server
# or explicitly
promptdb-mcp-server --transport stdio

2. SSE Transport (Server-Sent Events)

For web applications and cloud deployment:

# SSE transport on port 3000
promptdb-mcp-server --transport sse --port 3000

# Using environment variables
export TRANSPORT_TYPE=sse
export PORT=3000
promptdb-mcp-server

MCP Configuration

Stdio Transport Configuration

Add to your MCP client configuration:

{
  "mcpServers": {
    "promptdb": {
      "command": "promptdb-mcp-server",
      "args": []
    }
  }
}

SSE Transport Configuration

For MCP clients that support HTTP/SSE transport:

{
  "mcpServers": {
    "promptdb": {
      "transport": "sse",
      "url": "http://localhost:3000/sse"
    }
  }
}

Cloud Deployment

Vercel Deployment

# Build and deploy
pnpm build
vercel deploy

# Set environment variables in Vercel dashboard:
# TRANSPORT_TYPE=sse
# PORT=3000

Netlify Deployment

# Build and deploy
pnpm build
netlify deploy --prod --dir=dist

# Set TRANSPORT_TYPE=sse in Netlify dashboard

SSE Endpoints

When running in SSE mode, the server provides:

  • SSE Endpoint: http://localhost:3000/sse - MCP communication
  • Health Check: http://localhost:3000/health - Server status
  • Server Info: http://localhost:3000/ - Server metadata

Tools

listPrompts

List all available prompts with their content and versions.

Parameters: None

Returns: Array of prompts with taskname, content, and version

getPrompt

Retrieve a specific prompt by task name.

Parameters:

  • taskname (required): The task name identifier
  • version (optional): Specific version (defaults to latest)

Returns: Full prompt metadata including content, timestamps, tags, and description

setPrompt

Create or update a prompt for a task.

Parameters:

  • taskname (required): The task name identifier
  • content (required): The prompt content
  • description (optional): Human-readable description
  • tags (optional): Array of searchable tags

Returns: Confirmation with version information

Data Model

Prompt Structure

interface PromptMetadata {
  content: string;      // The prompt content
  created: string;      // ISO timestamp of creation
  updated: string;      // ISO timestamp of last update
  version: string;      // Semantic version (1.0, 1.1, etc.)
  tags: string[];       // Searchable tags
  description: string;  // Human-readable description
}

File Organization

  • Latest version: prompts/{taskname}.json
  • Historical versions: prompts/{taskname}_v{version}.json
  • Automatic archiving of previous versions

Version Management

  • New prompts start at version 1.0
  • Content updates increment minor version (1.01.11.2)
  • Previous versions are automatically archived
  • Latest version is always accessible without specifying version

Usage Examples

Storing a Prompt

{
  "tool": "setPrompt",
  "arguments": {
    "taskname": "code-review",
    "content": "Review this code for best practices, security issues, and performance optimizations...",
    "description": "Comprehensive code review prompt",
    "tags": ["code", "review", "security", "performance"]
  }
}

Retrieving a Prompt

{
  "tool": "getPrompt",
  "arguments": {
    "taskname": "code-review"
  }
}

Listing All Prompts

{
  "tool": "listPrompts",
  "arguments": {}
}

Development

Project Structure

promptdb-mcp-server/
├── src/
│   ├── index.ts              # Main entry point
│   ├── server.ts             # MCP server setup
│   ├── tools/                # Tool implementations
│   ├── storage/              # File system operations
│   ├── cache/                # In-memory caching
│   └── utils/                # Validation helpers
├── prompts/                  # Prompt storage directory
├── package.json
├── tsconfig.json
└── vite.config.ts

Development Commands

# Install dependencies
pnpm install

# Build project
pnpm build

# Development with watch mode
pnpm dev

# Start server (stdio transport)
pnpm start

# Start with SSE transport
pnpm start:sse

# Development with SSE transport
pnpm dev:sse

# Clean build artifacts
pnpm clean

Testing

Use the MCP Inspector or any MCP-compatible client to test the server:

  1. Start the server: pnpm start
  2. Connect via MCP Inspector
  3. Test the available tools

Performance

Caching Strategy

  • Cache Hit: Immediate return from memory
  • Cache Miss: Load from file system, cache result
  • Cache Invalidation: Automatic on prompt updates
  • Memory Management: LRU eviction at 100 items

File System Optimization

  • Asynchronous file operations throughout
  • On-demand directory creation
  • Robust error handling
  • Concurrent access safety

Error Handling

The server handles various error conditions gracefully:

  • File system permission errors
  • Invalid JSON parsing
  • Concurrent access conflicts
  • Cache consistency issues
  • Input validation errors

Troubleshooting

Common Issues

  1. Server not starting: Check Node.js version (18+) and dependencies
  2. Tool not found: Verify server is properly connected to MCP client
  3. Directory creation errors:
    • Error: ENOENT: no such file or directory, mkdir '/prompts'
    • Solution: The server creates a prompts directory in the current working directory. Ensure the MCP client has write permissions to the directory where it's running.
    • Alternative: The server will automatically create the directory with proper permissions
  4. File permissions: Ensure write access to prompts directory
  5. JSON parsing errors: Validate prompt file format

SSE Transport Issues

  1. Port already in use:

    # Find process using port
    lsof -i :3000
    # Kill process
    kill -9 <PID>
    
  2. CORS errors: The server includes CORS headers by default for cross-origin requests

  3. Connection timeout: Check firewall settings and ensure the port is accessible

  4. Build errors: Ensure all dependencies are installed with pnpm install

  5. Cloud deployment issues:

    • Verify environment variables are set correctly
    • Check build logs for errors
    • Ensure dist/ directory is included in deployment

Testing SSE Transport

# Test health endpoint
curl http://localhost:3000/health

# Test server info
curl http://localhost:3000/

# Test SSE connection
curl -N http://localhost:3000/sse

Directory Configuration

The server creates prompts in the current working directory by default:

  • When run locally: ./prompts/ in the project directory
  • When installed globally: ./prompts/ in the directory where the MCP client runs
  • The server automatically creates the directory if it doesn't exist

Validation Errors

  • Task names must be alphanumeric with hyphens/underscores only
  • Content cannot be empty
  • Version format must be X.Y (e.g., 1.0, 2.1)

License

MIT License - see LICENSE file for details

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

Support

For issues and questions:

  • Create an issue on GitHub
  • Check the documentation
  • Review the implementation plan

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选