Skip to main content
Glama
sparesparrow

MCP Prompts Server

MCP 提示服务器

用于管理提示和模板的 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-prompts

使用 Docker

docker run -p 3003:3003 -v ~/mcp/data:/app/data sparesparrow/mcp-prompts:latest

验证安装

安装后,您可以通过以下方式验证服务器是否正常工作:

  1. 打开Claude桌面

  2. 在聊天输入中输入“/”查看是否出现来自服务器的提示

  3. 使用简单的工具调用进行测试:

    use_mcp_tool({
      server_name: "prompt-manager",
      tool_name: "list_prompts",
      arguments: {}
    });

配置

可以使用环境变量来配置服务器:

环境变量

描述

默认

服务器名称

服务器名称

MCP 提示服务器

服务器版本

服务器版本

package.json 版本

存储类型

存储类型:“文件”、“postgres”或“mdc”

文件

PROMPTS_DIR

存储提示的目录

~/mcp/data/提示

备份目录

备份目录

~/mcp/data/备份

港口

HTTP 服务器端口

3003

日志级别

日志级别

信息

HTTP服务器

启用 HTTP 服务器

错误的

主持人

HTTP 服务器的主机

0.0.0.0

PostgreSQL 设置(如果 STORAGE_TYPE=postgres 则需要)

环境变量

描述

默认

PG_HOST

PostgreSQL 主机

本地主机

PG_PORT

PostgreSQL 端口

5432

PG_数据库

PostgreSQL 数据库名称

mcp_提示符

PG_用户

PostgreSQL 用户名

PostgreSQL

PG_密码

PostgreSQL 密码

PG_SSL

使用 SSL 进行 PostgreSQL 连接

错误的

POSTGRES_CONNECTION_STRING

完整的 PostgreSQL 连接字符串(覆盖单独的设置)

MDC 设置(如果 STORAGE_TYPE=mdc 则需要)

环境变量

描述

默认

MDC_RULES_DIR

MDC 规则目录

./.光标/规则

用法

与 Claude 一起使用

在 Claude 3 桌面应用中,您可以在claude_desktop_config.json中配置 MCP Prompts 服务器:

{
  "mcpServers": {
    "prompts": {
      "command": "npx",
      "args": [
        "-y",
        "@sparesparrow/mcp-prompts"
      ],
      "env": {
        "STORAGE_TYPE": "file",
        "PROMPTS_DIR": "/path/to/your/prompts/directory",
        "LOG_LEVEL": "debug"
      }
    }
  }
}

可用工具

MCP Prompts 服务器提供以下工具:

  • 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"]
  }
});

在工作流程中使用提示

开发工作流程示例

当开始开发新功能时:

  1. 请求开发系统提示模板

  2. 在模板中填写您的项目详细信息

  3. 使用系统提示来指导克劳德的协助

代码审查示例

审查代码时:

  1. 请求代码审查模板

  2. 提供需要审核的代码

  3. Claude 将提供结构化审查

提示格式

提示具有以下结构:

{
  "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 Prompts 服务器包含一个强大的MutablePrompt接口,允许提示在多种格式之间转换:

  • JSON 格式:服务器使用的标准内部格式

  • MDC 格式:光标规则 Markdown 格式(.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);

这种灵活的格式处理可以实现:

  1. 跨平台兼容性:在不同的工具和平台中使用提示

  2. 矢量搜索:使用 PGAI 格式实现语义搜索功能

  3. IDE 集成:与 Cursor Rules 直接兼容

  4. 模板系统:导出用于各种编程语言的模板

存储适配器

该服务器支持三种类型的存储适配器:

  1. 文件适配器:将提示作为单独的 JSON 文件存储在目录中。

  2. PostgreSQL 适配器:将提示存储在 PostgreSQL 数据库中。

  3. MDC 适配器:以光标规则 MDC 格式存储提示。

可以使用STORAGE_TYPE环境变量配置存储类型:

STORAGE_TYPE=file      # Default
STORAGE_TYPE=postgres  # Requires PostgreSQL configuration
STORAGE_TYPE=mdc       # For Cursor Rules format

PostgreSQL 设置

使用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/database

Docker 部署

Docker Compose 编排

MCP Prompts Server 针对不同的部署场景提供了各种 Docker Compose 配置:

简单部署

docker compose up -d

这将使用端口 3003 上的文件存储部署 MCP Prompts 服务器。

PostgreSQL 部署

docker compose -f docker-compose.postgres.yml up -d

这将部署:

  • PostgreSQL 数据库服务器

  • 为 PostgreSQL 配置的 MCP Prompts 服务器

  • 数据库管理管理员: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

发展

开发工作流程

设置开发环境

  1. 克隆存储库

    git clone https://github.com/user/mcp-prompt-manager.git
    cd mcp-prompt-manager
  2. 安装依赖项

    npm install
  3. 设置环境变量创建一个具有必要配置的.env文件。

开发命令

  • 使用热重载启动开发服务器

    npm run dev
  • 构建项目

    npm run build
  • 运行单元测试

    npm test
  • 运行集成测试

    npm run test:integration
  • 测试构建过程

    npm run test:build
  • 测试 Docker 构建

    npm run test:docker
  • 构建 Docker 镜像

    npm run docker:build

构建过程

构建过程包括几个重要步骤:

  1. TypeScript 编译

    npm run build
  2. 使入口点可执行

    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 --clean

Docker容器健康测试

测试 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-03-14

  • 自动化版本升级

[1.2.19] - 2024-03-16

固定的

  • 修复了 PostgresAdapter 实现中的 TypeScript 错误

  • 增强了 savePrompt 方法,以正确返回创建的提示

  • 向 PostgresAdapter 添加了 updatePrompt 方法

  • 修复了 StorageAdapter 接口,使其包含 listPrompts 和 clearAll 方法

  • 改进了 database-tools.ts 中 clearAll 方法的错误处理

  • 增强的健康检查端点,提供更详细的信息

额外

  • 为健康检查端点添加了更好的文档和错误处理

[1.2.18] - 2024-03-14

额外

  • 添加了具有健康检查端点的 HTTP 服务器

  • 添加了 Docker 容器健康检查

  • 增加了对 Node.js 18-23+ 的 ESM 模块兼容性

  • 增强的数据库工具,具有更好的错误处理能力

已更改

  • 通过多阶段构建改进 Docker 构建过程

  • 简化的配置管理

  • 优化 PostgreSQL 适配器连接处理

  • 已将依赖项更新至最新版本

固定的

  • 修复了某些文件系统上的文件适配器问题

  • 改进错误消息以便更好地调试

  • 固定模板变量提取

[1.2.0] - 2025-03-14

已更改

  • 重新组织代码库结构以提高可维护性

  • 将 Docker 相关文件移至docker/目录

  • 将构建脚本移至scripts/build/目录

  • 将测试脚本移至scripts/test/目录

  • 更新了 GitHub 工作流程以使用新的文件路径

  • 更新了 Docker Compose 配置以使用新的文件路径

  • 添加了全面的开发文档

额外

  • 创建包含详细说明的开发文档

  • 创建发布准备清单

  • 添加了 CHANGELOG.md 来跟踪更改

已移除

  • 删除重复和冗余文件

  • 删除了不完整的脚本

[1.1.0] - 2024-03-01

额外

  • 用于语义提示发现的 PGAI 向量搜索

  • 支持 PostgreSQL 中的嵌入

  • 使用专业模板改进提示收集

  • 批量处理能力,方便快速收集

已更改

  • 增强提示处理流程

  • 改进的命令行界面,提供更多选项

  • 更好的错误处理和验证

[1.0.0] - 2024-02-15

额外

  • MCP Prompts 服务器的初始版本

  • 基本提示管理功能(添加、编辑、获取、列出、删除)

  • 模板变量替换

  • 基于标签的组织

  • 基于文件的存储

  • 导入/导出功能

  • MCP 协议兼容性

最佳实践

  1. 使用标签进行组织:使用标签对提示进行分类,以便于检索

  2. 使用模板:创建带有变量的可重复使用模板,以实现一致的提示

  3. 包括元数据:添加作者、版本和其他元数据以便更好地组织

  4. 定期备份:如果管理关键提示,请使用备份功能

  5. 优化大型集合:检索大型提示集合时使用分页

  6. 使用一致的命名:清晰一致地命名提示,以便于发现

  7. 有效标记:使用标签按目的、项目或上下文组织提示

  8. 模板化可重复使用的提示:使用变量为常用提示创建模板

  9. 定期更新:随着需求的变化,保持提示的更新

  10. 与团队分享:与您的团队分享有效的提示,以实现持续的互动

执照

麻省理工学院

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
3wRelease cycle
6Releases (12mo)
Issues opened vs closed

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sparesparrow/mcp-prompts'

If you have feedback or need assistance with the MCP directory API, please join our Discord server