MCP Prompts Server

by sparesparrow
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Supports deployment using Docker and Docker Compose for containerized deployment

  • Built on Node.js with support for Node.js 18 or later

  • Provides integration with PostgreSQL databases for storing prompts, with export/import functionality and synchronization between file storage and database

Servidor de avisos MCP

Un servidor MCP para gestionar solicitudes y plantillas con capacidades de orquestación de proyectos. Forma parte del ecosistema del Protocolo de Contexto de Modelo.

Este servidor proporciona una forma sencilla de almacenar, recuperar y aplicar plantillas para indicaciones de IA, lo que facilita mantener patrones de indicaciones consistentes en todas sus aplicaciones de IA.

Tabla de contenido

Características

  • Almacenar y recuperar indicaciones
  • Crear y utilizar plantillas con variables
  • Lista de indicaciones con filtrado por etiquetas
  • Aplicar variables a las plantillas
  • Múltiples backends de almacenamiento (sistema de archivos, PostgreSQL y formato MDC)
  • Fácil de usar con Claude y otros asistentes de IA.
  • Capacidades de orquestación de proyectos
  • Puntos finales de comprobación de estado

Instalación

Usando npx (recomendado)

npx -y @sparesparrow/mcp-prompts

Instalación global

npm install -g @sparesparrow/mcp-prompts

Usando Docker

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

Verificación de la instalación

Después de la instalación, puedes verificar que el servidor esté funcionando:

  1. Abriendo Claude Desktop
  2. Escribir "/" en la entrada del chat para ver si aparecen mensajes del servidor
  3. Prueba con una simple llamada a herramienta:
    use_mcp_tool({ server_name: "prompt-manager", tool_name: "list_prompts", arguments: {} });

Configuración

El servidor se puede configurar mediante variables de entorno:

Variable de entornoDescripciónPor defecto
NOMBRE DEL SERVIDORNombre del servidorServidor de avisos MCP
VERSIÓN DEL SERVIDORVersión del servidorversión package.json
TIPO DE ALMACENAMIENTOTipo de almacenamiento: 'archivo', 'postgres' o 'mdc'archivo
DIRECTORIO DE INSTRUCCIONESDirectorio para almacenar indicaciones~/mcp/datos/avisos
DIRECCIÓN DE COPIAS DE SEGURIDADDirectorio para copias de seguridad~/mcp/datos/copias de seguridad
PUERTOPuerto para servidor HTTP3003
NIVEL DE REGISTRONivel de registroinformación
Servidor HTTPHabilitar servidor HTTPFALSO
ANFITRIÓNHost para servidor HTTP0.0.0.0

Configuración de PostgreSQL (obligatoria si STORAGE_TYPE=postgres)

Variable de entornoDescripciónPor defecto
PG_HOSTHost de PostgreSQLhost local
PG_PORTPuerto PostgreSQL5432
BASE DE DATOS PGNombre de la base de datos PostgreSQLindicaciones mcp
PG_USERNombre de usuario de PostgreSQLpostgres
CONTRASEÑA PGContraseña de PostgreSQL
PG_SSLUtilice SSL para la conexión PostgreSQLFALSO
CADENA DE CONEXIÓN DE POSTGRESCadena de conexión PostgreSQL completa (anula las configuraciones individuales)

Configuración de MDC (obligatoria si STORAGE_TYPE=mdc)

Variable de entornoDescripciónPor defecto
DIRECTORIO DE REGLAS MDCDirectorio de normas del MDC./.cursor/reglas

Uso

Usando con Claude

En la aplicación de escritorio Claude 3, puedes configurar el servidor de indicaciones de MCP en tu claude_desktop_config.json :

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

Herramientas disponibles

El servidor MCP Prompts proporciona las siguientes herramientas:

  • add_prompt : Agregar un nuevo mensaje
  • get_prompt : Obtener un mensaje por ID
  • update_prompt : Actualizar un mensaje existente
  • list_prompts : Lista todos los mensajes
  • delete_prompt : eliminar un mensaje por ID
  • apply_template : Aplicar variables a una plantilla de solicitud

Ejemplos de uso de API

Listado de indicaciones disponibles

Para ver qué indicaciones están disponibles:

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

Para filtrar por etiquetas:

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

Obtener una indicación específica

Para recuperar un mensaje específico por ID:

use_mcp_tool({ server_name: "prompt-manager", tool_name: "get_prompt", arguments: { id: "development-workflow" } });

Uso de una plantilla de solicitud

Para aplicar variables a una solicitud de plantilla:

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

Administrar indicaciones

Agregar un nuevo mensaje

Para agregar un nuevo mensaje:

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

Editar un mensaje existente

Para editar un mensaje existente:

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

Uso de indicaciones en su flujo de trabajo

Ejemplo de flujo de trabajo de desarrollo

Al comenzar a trabajar en una nueva función:

  1. Solicitar la plantilla de solicitud del sistema de desarrollo
  2. Complete la plantilla con los detalles de su proyecto
  3. Utilice el mensaje del sistema resultante para guiar la asistencia de Claude.

Ejemplo de revisión de código

Al revisar el código:

  1. Solicitar la plantilla de revisión de código
  2. Proporcione el código para ser revisado
  3. Claude proporcionará una revisión estructurada

Formato de solicitud

Un mensaje tiene la siguiente estructura:

{ "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" } }

Soporte de indicaciones multiformato

El servidor de indicaciones MCP incluye una potente interfaz MutablePrompt que permite convertir las indicaciones entre múltiples formatos:

  • Formato JSON : formato interno estándar utilizado por el servidor
  • Formato MDC : formato Markdown de reglas de cursor (archivos .mdc)
  • Formato PGAI : formato con soporte de incrustación para PostgreSQL AI
  • Formato de plantilla : formato dinámico con marcadores de posición variables

Conversión entre formatos

La interfaz MutablePrompt proporciona métodos para convertir indicaciones entre estos formatos:

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

Aplicación de plantillas

Puede aplicar variables fácilmente a las indicaciones de la plantilla:

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

Extracción de variables

Extraer variables del contenido de la plantilla:

const variables = prompt.extractVariables(); // Returns ["service_name", "endpoints", "auth_method"]

Creando desde diferentes formatos

También puedes crear indicaciones en varios formatos:

// 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);

Integración con adaptadores de almacenamiento

La interfaz MutablePrompt funciona perfectamente con los adaptadores de almacenamiento existentes:

// 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);

Este manejo flexible de formatos permite:

  1. Compatibilidad entre plataformas : utilice indicaciones en diferentes herramientas y plataformas
  2. Búsqueda vectorial : utilice el formato PGAI para funciones de búsqueda semántica
  3. Integración IDE : compatibilidad directa con las reglas del cursor
  4. Sistemas de plantillas : Exporte plantillas para usar en varios lenguajes de programación

Adaptadores de almacenamiento

El servidor admite tres tipos de adaptadores de almacenamiento:

  1. Adaptador de archivos : almacena las indicaciones como archivos JSON individuales en un directorio.
  2. Adaptador de PostgreSQL : almacena indicaciones en una base de datos PostgreSQL.
  3. Adaptador MDC : almacena indicaciones en formato MDC de reglas de cursor.

Los tipos de almacenamiento se pueden configurar utilizando la variable de entorno STORAGE_TYPE :

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

Configuración de PostgreSQL

Al utilizar el almacenamiento PostgreSQL, configure las siguientes variables de entorno:

PG_HOST=localhost PG_PORT=5432 PG_DATABASE=mcp_prompts PG_USER=postgres PG_PASSWORD=your_password PG_SSL=false

Alternativamente, utilice una cadena de conexión:

POSTGRES_CONNECTION_STRING=postgresql://user:password@host:port/database

Implementación de Docker

Orquestación de Docker Compose

El servidor de indicaciones de MCP ofrece varias configuraciones de Docker Compose para diferentes escenarios de implementación:

Implementación simple

docker compose up -d

Esto implementará el servidor MCP Prompts utilizando el almacenamiento de archivos en el puerto 3003.

Implementación de PostgreSQL

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

Esto implementa:

  • Un servidor de base de datos PostgreSQL
  • El servidor MCP Prompts configurado para PostgreSQL
  • Administrador para la gestión de bases de datos en http://localhost:8080

Entorno de desarrollo

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

Esto configura un entorno de desarrollo con recarga en caliente. Monta el código fuente desde el directorio local e incluye Adminer.

Entorno de prueba

docker compose -f docker-compose.test.yml up --build

Esto crea un entorno de prueba dedicado con:

  • Una instancia temporal de PostgreSQL con datos de prueba
  • Un contenedor de ejecución de pruebas aislado que ejecuta todas las pruebas
  • Resultados de la prueba guardados en el directorio ./test-results

Script de administración de Docker

Para simplificar las operaciones de Docker Compose, utilice el script de administración proporcionado:

# 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

El script de administración admite los siguientes comandos:

  • start : Iniciar contenedores Docker
  • stop : Detener los contenedores Docker
  • restart : Reiniciar los contenedores Docker
  • logs : Mostrar registros de los contenedores
  • clean : eliminar contenedores, redes y volúmenes
  • build : Construir imágenes de Docker
  • test : Ejecutar pruebas en contenedores Docker

Y los siguientes entornos:

  • dev : entorno de desarrollo (predeterminado)
  • test : entorno de prueba
  • prod : Entorno de producción

Configuraciones personalizadas

Puede crear su propia configuración personalizada de Docker Compose ampliando las configuraciones base:

# custom-compose.yml version: '3.8' include: - docker-compose.yml services: mcp-prompts: environment: - CUSTOM_ENV=value

Luego ejecútalo con:

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

Desarrollo

Flujo de trabajo de desarrollo

Configuración del entorno de desarrollo

  1. Clonar el repositorio
    git clone https://github.com/user/mcp-prompt-manager.git cd mcp-prompt-manager
  2. Instalar dependencias
    npm install
  3. Configurar variables de entorno Cree un archivo .env con la configuración necesaria.

Comandos de desarrollo

  • Iniciar el servidor de desarrollo con recarga en caliente
    npm run dev
  • Construir el proyecto
    npm run build
  • Ejecutar pruebas unitarias
    npm test
  • Ejecutar pruebas de integración
    npm run test:integration
  • Proceso de construcción de pruebas
    npm run test:build
  • Prueba de compilación de Docker
    npm run test:docker
  • Crear una imagen de Docker
    npm run docker:build

Proceso de construcción

El proceso de construcción incluye varios pasos importantes:

  1. Compilación de TypeScript
    npm run build
  2. Hacer que el punto de entrada sea ejecutable
    chmod +x dist/index.js

Pruebas

Ejecutar las pruebas:

npm test

Ejecute el Inspector MCP para realizar pruebas:

npm run test:inspector

Guiones de prueba completos

Para opciones de prueba más avanzadas, utilice el script de prueba proporcionado:

# 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

Pruebas de estado del contenedor Docker

Para probar el estado de los contenedores Docker:

# Run the Docker health check tests TEST_DOCKER_HEALTH=true npm test -- tests/integration/docker-health.integration.test.ts

Esta prueba verifica que el punto final de verificación de estado funciona correctamente cuando el servidor MCP-Prompts se ejecuta en un contenedor Docker.

Estructura del directorio

El proyecto sigue una organización estructurada para mantener una clara separación de preocupaciones:

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

Proceso de liberación

Lista de verificación previa al lanzamiento

  • Se han resuelto todos los errores de TypeScript
  • El análisis de código se realiza sin errores
  • El código está formateado correctamente según los estándares del proyecto.
  • Las pruebas unitarias pasan
  • Las pruebas de integración pasan
  • Las pruebas de compilación pasan
  • La prueba de compilación de Docker pasa
  • La prueba de instalación del paquete pasa
  • README está actualizado con las últimas funciones y cambios
  • El REGISTRO DE CAMBIOS se actualiza con todos los cambios notables

Actualización de la versión

  • Actualizar la versión en package.json según el control de versiones semántico
  • Asegúrese de que las dependencias estén actualizadas
  • Actualice cualquier referencia de versión en la documentación

Publicación

  • Crea una etiqueta git para la nueva versión
  • Enviar cambios y etiquetas a GitHub
  • Publicar en npm ( npm publish )
  • Construir y enviar una imagen de Docker

Verificación posterior al lanzamiento

  • Verificar la instalación desde npm
  • Verificar que el paquete se pueda ejecutar con npx
  • Verificar que la imagen de Docker funcione como se espera
  • Verificar la integración con Claude Desktop

Registro de cambios

[1.2.20] - 14 de marzo de 2025

  • Aumento de versión automatizado

[1.2.19] - 16 de marzo de 2024

Fijado

  • Se corrigieron errores de TypeScript en la implementación de PostgresAdapter
  • Método savePrompt mejorado para devolver correctamente el mensaje creado
  • Se agregó el método updatePrompt al PostgresAdapter
  • Se arregló la interfaz StorageAdapter para incluir los métodos listPrompts y clearAll
  • Manejo de errores mejorado en database-tools.ts para el método clearAll
  • Punto final de control de salud mejorado con información más detallada

Agregado

  • Se agregó mejor documentación y manejo de errores para el punto final de verificación de estado.

[1.2.18] - 14 de marzo de 2024

Agregado

  • Se agregó un servidor HTTP con punto final de verificación de estado
  • Se agregaron comprobaciones del estado del contenedor Docker
  • Se agregó compatibilidad del módulo ESM para Node.js 18-23+
  • Herramientas de base de datos mejoradas con mejor manejo de errores

Cambió

  • Proceso de compilación de Docker mejorado con compilaciones de varias etapas
  • Gestión de configuración optimizada
  • Manejo optimizado de la conexión del adaptador PostgreSQL
  • Dependencias actualizadas a las últimas versiones

Fijado

  • Se solucionaron problemas con el adaptador de archivos en ciertos sistemas de archivos
  • Mensajes de error mejorados para una mejor depuración
  • Extracción de variables de plantilla fija

[1.2.0] - 14/03/2025

Cambió

  • Estructura de base de código reorganizada para una mejor capacidad de mantenimiento
  • Se movieron los archivos relacionados con Docker al directorio docker/
  • Se movieron los scripts de compilación al directorio scripts/build/
  • Se movieron los scripts de prueba al directorio scripts/test/
  • Flujos de trabajo de GitHub actualizados para usar nuevas rutas de archivos
  • Configuración de Docker Compose actualizada para usar nuevas rutas de archivos
  • Se agregó documentación de desarrollo completa

Agregado

  • Se creó documentación de desarrollo con instrucciones detalladas.
  • Se creó una lista de verificación de lanzamiento para la preparación del lanzamiento.
  • Se agregó CHANGELOG.md para rastrear los cambios

Remoto

  • Se eliminaron archivos duplicados y redundantes.
  • Se eliminaron los scripts incompletos

[1.1.0] - 01-03-2024

Agregado

  • Búsqueda vectorial PGAI para el descubrimiento de indicaciones semánticas
  • Compatibilidad con incrustaciones en PostgreSQL
  • Colección de indicaciones mejorada con plantillas profesionales
  • Capacidades de procesamiento por lotes para cobros rápidos

Cambió

  • Canal de procesamiento rápido mejorado
  • Interfaz de línea de comandos mejorada con más opciones
  • Mejor manejo y validación de errores

[1.0.0] - 15/02/2024

Agregado

  • Versión inicial de MCP Prompts Server
  • Funciones básicas de gestión de indicaciones (agregar, editar, obtener, enumerar, eliminar)
  • Sustitución de variables de plantilla
  • Organización basada en etiquetas
  • Almacenamiento basado en archivos
  • Funcionalidad de importación/exportación
  • Compatibilidad del protocolo MCP

Mejores prácticas

  1. Organizar con etiquetas : utilice etiquetas para categorizar sus indicaciones y facilitar su recuperación.
  2. Usar plantillas : crea plantillas reutilizables con variables para obtener indicaciones consistentes
  3. Incluir metadatos : agregue autor, versión y otros metadatos para una mejor organización
  4. Copias de seguridad periódicas : utilice la función de copia de seguridad si gestiona indicaciones críticas
  5. Optimizar colecciones grandes : utilice la paginación al recuperar colecciones de indicaciones grandes
  6. Utilice nombres consistentes : nombre las solicitudes de forma clara y consistente para facilitar su descubrimiento.
  7. Etiquetar eficazmente : utilice etiquetas para organizar las indicaciones por propósito, proyecto o contexto
  8. Crear plantillas de indicaciones reutilizables : cree plantillas para indicaciones de uso frecuente con variables
  9. Actualice periódicamente : mantenga sus indicaciones actualizadas a medida que cambian sus necesidades
  10. Compartir con el equipo : comparta indicaciones efectivas con su equipo para interacciones consistentes

Licencia

Instituto Tecnológico de Massachusetts (MIT)

ID: i0z4f3pr82