Smart Prompts MCP Server
Obtiene y gestiona prompts de repositorios de GitHub con funciones inteligentes de descubrimiento y composición.
Documentación
Servidor Smart Prompts MCP
Un servidor MCP (Model Context Protocol) mejorado que obtiene prompts de repositorios de GitHub con funciones inteligentes de descubrimiento, composición y gestión. Este es un fork mejorado de prompts-mcp-server con integración de GitHub y funciones avanzadas.
🌟 Características Principales
Capacidades Principales
- 🔄 Integración con GitHub: Obtén prompts directamente de repositorios de GitHub (públicos/privados)
- 🔍 Descubrimiento Inteligente: Búsqueda avanzada con filtrado por categoría y etiquetas
- 🔗 Composición de Prompts: Combina múltiples prompts en flujos de trabajo
- 📊 Seguimiento de Uso: Analíticas sobre patrones de uso de prompts
- ⚡ Actualizaciones en Tiempo Real: Sincronización automática con GitHub
- 🤖 Guía de IA: Descripciones de herramientas mejoradas y recomendaciones de flujos de trabajo
Soporte del Protocolo MCP
- Herramientas: 7 herramientas especializadas para la gestión de prompts
- Recursos: Más de 13 endpoints de recursos para navegar y descubrir
- Prompts: Plantillas dinámicas con soporte de Handlebars
📋 Requisitos Previos
Antes de la instalación, asegúrate de tener:
- Node.js 18+ instalado
- Gestor de paquetes npm o yarn
- Git instalado y configurado
- Cuenta de GitHub (para la integración con GitHub)
- Token de Acceso Personal de GitHub (para repositorios privados o para evitar límites de tasa)
🚀 Instalación
Paso 1: Clonar e Instalar
# Clone the repository
git clone https://github.com/jezweb/smart-prompts-mcp.git
cd smart-prompts-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Verify installation
./verify-install.sh
Paso 2: Configurar el Entorno
Crea un archivo .env en la raíz del proyecto:
# Required: GitHub Configuration
GITHUB_OWNER=your-username # Your GitHub username or org
GITHUB_REPO=your-prompts-repo # Repository containing prompts
GITHUB_BRANCH=main # Branch to use (default: main)
GITHUB_PATH= # Subdirectory path (optional)
GITHUB_TOKEN=ghp_xxxxx # Personal access token (recommended)
# Optional: Cache Configuration
CACHE_TTL=300000 # Cache time-to-live in ms (default: 5 min)
CACHE_REFRESH_INTERVAL=60000 # Auto-refresh interval in ms (default: 1 min)
# Optional: Feature Flags
ENABLE_SEMANTIC_SEARCH=true # Advanced search features
ENABLE_PROMPT_COMPOSITION=true # Prompt combination features
ENABLE_USAGE_TRACKING=true # Track prompt usage
Paso 3: Configuración del Cliente MCP
Para Claude Desktop (macOS)
Añade a ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"smart-prompts": {
"command": "node",
"args": ["/absolute/path/to/smart-prompts-mcp/dist/index.js"],
"env": {
"GITHUB_OWNER": "your-username",
"GITHUB_REPO": "your-prompts-repo",
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}
Para Roo Cline (VS Code)
Añade a la configuración MCP de Roo Cline:
"smart-prompts": {
"command": "node",
"args": ["/absolute/path/to/smart-prompts-mcp/dist/index.js"],
"env": {
"GITHUB_OWNER": "your-username",
"GITHUB_REPO": "your-prompts-repo",
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
📁 Mejores Prácticas de Organización de Prompts
Estructura de Carpetas Recomendada
your-prompts-repo/
├── README.md # Repository overview
├── ai-prompts/ # AI and meta-prompts
│ ├── meta-prompt-builder.md
│ └── prompt-engineer.md
├── development/ # Development prompts
│ ├── backend/
│ │ ├── api-design.md
│ │ └── database-schema.md
│ ├── frontend/
│ │ ├── react-component.md
│ │ └── vue-composition.md
│ └── testing/
│ ├── unit-test-writer.md
│ └── e2e-test-suite.md
├── content-creation/ # Content prompts
│ ├── blog-post-writer.md
│ └── youtube-metadata.md
├── business/ # Business prompts
│ ├── proposal-generator.md
│ └── email-templates.md
└── INDEX.md # Optional: Category index
Convenciones de Nomenclatura
- Archivos: Usa kebab-case (por ejemplo,
api-documentation-generator.md) - Nombres de Prompts: Usa snake_case en el frontmatter (por ejemplo,
api_documentation_generator) - Categorías: Usa minúsculas con guiones (por ejemplo,
content-creation) - Mantén los nombres descriptivos pero concisos
📝 Formato de Archivo de Prompt
---
name: api_documentation_generator
title: REST API Documentation Generator
description: Generate comprehensive API documentation with examples
category: documentation
tags: [api, rest, documentation, openapi, swagger]
difficulty: intermediate
author: jezweb
version: 1.0
arguments:
- name: api_spec
description: The API specification or endpoint details
required: true
- name: format
description: Output format (markdown, openapi, etc)
required: false
default: markdown
---
# API Documentation Generator
Generate comprehensive documentation for {{api_spec}} in {{format}} format.
Include:
- Endpoint descriptions
- Request/response examples
- Authentication details
- Error codes
- Rate limiting information
🛠️ Herramientas Disponibles
- 🔍
search_prompts- ¡Empieza siempre aquí! Busca por palabra clave, categoría o etiquetas - 📋
list_prompt_categories- Explora las categorías disponibles con recuentos - 📖
get_prompt- Recupera un prompt específico (usa el nombre exacto de la búsqueda) - ✨
create_github_prompt- Crea nuevos prompts en GitHub - 🔗
compose_prompts- Combina múltiples prompts - ❓
prompts_help- Obtén ayuda contextual y orientación - ✅
check_github_status- Verifica la conexión con GitHub
Flujo de Trabajo Recomendado
1. search_prompts → Find existing prompts
2. get_prompt → View full content
3. compose_prompts → Combine if needed
4. create_github_prompt → Only if nothing exists
🔧 Solución de Problemas
Problemas Comunes
1. Error de "Acceso a GitHub fallido"
# Check your token has repo scope
# Verify token in .env file
GITHUB_TOKEN=ghp_your_actual_token
# Test GitHub access
GITHUB_TOKEN=your_token node test-server.js
2. Error de "Límite de tasa excedido"
- Añade un token de GitHub para aumentar los límites de tasa
- Reduce el intervalo de actualización de caché
- Usa
CACHE_TTLpara almacenar en caché durante más tiempo
3. "No se encontraron prompts"
- Verifica que la estructura del repositorio coincida con el formato esperado
- Comprueba GITHUB_PATH si usas un subdirectorio
- Asegúrate de que los archivos .md tengan frontmatter YAML
4. El Cliente MCP No Se Conecta
- Usa rutas absolutas en la configuración
- Comprueba que Node.js esté en el PATH
- Verifica todas las variables de entorno
- Revisa los registros:
tail -f ~/.claude/logs/mcp.log
5. Rendimiento Lento
- Aumenta
CACHE_TTLpara actualizaciones menos frecuentes - Reduce el tamaño del repositorio (archiva prompts antiguos)
- Usa categorías para limitar el alcance de la búsqueda
📈 Consideraciones de Escalado
Limitaciones Actuales
-
Límites de Tasa de la API de GitHub
- 60 solicitudes/hora (sin autenticación)
- 5,000 solicitudes/hora (autenticado)
- Cada obtención de directorio = 1 solicitud
-
Limitaciones de Búsqueda
- Sin búsqueda semántica nativa en GitHub
- Búsqueda lineal a través de todos los archivos
- El rendimiento se degrada con más de 100 prompts
Estrategias de Escalado
Para 50-200 Prompts
- ✅ La implementación actual funciona bien
- Usa categorías y etiquetas para la organización
- Implementa caché local
- Añade un token de GitHub para límites de tasa más altos
Para 200-1000 Prompts
- 🔄 Implementar Archivo de Índice
# INDEX.md in repo root prompts: - name: api_generator path: development/api-generator.md category: development tags: [api, codegen] - 📊 Añadir Índice de Búsqueda
- Genera un índice de búsqueda en la compilación
- Almacena en
search-index.json - Actualiza mediante GitHub Actions
Para Más de 1000 Prompts
- 🗄️ Capa de Base de Datos
- SQLite para caché local
- Capacidades de búsqueda de texto completo
- Sincronización periódica con GitHub
- 🔍 Integración con Elasticsearch/Algolia
- Infraestructura de búsqueda adecuada
- Búsqueda facetada
- Clasificación por relevancia
Funciones de Escalado Futuras (Hoja de Ruta)
-
Generación de Índice de Búsqueda
- GitHub Action para construir el índice
- Descargar un único archivo de índice
- Búsqueda semántica local
-
Carga Perezosa
- Obtener categorías bajo demanda
- Mejora progresiva
- Desplazamiento virtual para listas grandes
-
Soporte de CDN
- Almacenar prompts en caché en el borde
- Reducir llamadas a la API de GitHub
- Acceso global más rápido
🚀 Ideas Futuras de Servidores MCP
Basándose en el patrón de integración con GitHub, aquí hay posibles servidores MCP:
1. Servidor MCP de Fragmentos de Código
Almacena y gestiona fragmentos de código reutilizables en GitHub
- Organización específica por lenguaje
- Resaltado de sintaxis
- Gestión de dependencias
- Historial de versiones
2. MCP de Plantillas de Documentación
Biblioteca de plantillas de documentación basada en GitHub
- Generadores de README
- Plantillas de documentación de API
- Documentación de proyectos
- Generación automática a partir del código
3. Servidor MCP de Personas de IA
Gestiona configuraciones de personalidad de IA
- Definiciones de experiencia
- Estilos de comunicación
- Rasgos de comportamiento
- Compartir en equipo
4. MCP de Andamiaje de Proyectos
Gestión completa de plantillas de proyectos
- Pilas tecnológicas
- Código repetitivo
- Mejores prácticas
- Ajustes preestablecidos de configuración
5. MCP de Recursos de Aprendizaje
Contenido educativo seleccionado
- Tutoriales y guías
- Ejemplos de código
- Seguimiento de progreso
- Recomendaciones basadas en habilidades
6. MCP de Gestor de Configuración
Configuraciones de aplicaciones controladas por versiones
- Gestión de entornos
- Manejo de secretos
- Sincronización de equipos
- Soporte de reversión
7. MCP de Automatización de Flujos de Trabajo
Integración con GitHub Actions
- Plantillas de flujos de trabajo
- Pipelines de CI/CD
- Scripts de automatización
- Orquestación entre repositorios
8. MCP de Base de Conocimientos
Gestión del conocimiento del equipo
- Pares de preguntas y respuestas
- Guías de solución de problemas
- Mejores prácticas
- Wiki buscable
🧪 Pruebas
El servidor incluye pruebas exhaustivas para garantizar fiabilidad y rendimiento.
Características del Conjunto de Pruebas
- 100% de cobertura de pruebas de la funcionalidad crítica
- Benchmarks de rendimiento con métricas detalladas
- Informes de prueba visuales con gráficos interactivos
- CI/CD automatizado mediante GitHub Actions
Ejecutar Pruebas
# Run full test suite
npm test
# Watch mode for development
npm run test:watch
# Generate coverage report
npm run test:coverage
# Run performance benchmark
npm run test:perf
# Verify installation
npm run test:verify
Informes de Pruebas
Los resultados de las pruebas se generan automáticamente en múltiples formatos:
- JSON: Resultados detallados para análisis (
test-results/latest.json) - Markdown: Informes legibles para humanos (
test-results/latest.md) - HTML: Informes visuales interactivos (
test-results/latest.html)
Consulta los últimos resultados de las pruebas:
🧪 Desarrollo
# Development mode with hot reload
npm run dev
# Build for production
npm run build
# Start production server
npm start
🤝 Contribuciones
¡Damos la bienvenida a las contribuciones! Consulta CONTRIBUTING.md para las pautas.
Áreas Prioritarias
-
Mejoras de Búsqueda
- Implementar búsqueda difusa
- Añadir clasificación de resultados de búsqueda
- Soporte para patrones regex
-
Optimización del Rendimiento
- Implementar agrupación de conexiones
- Añadir procesamiento por lotes de solicitudes
- Optimizar estrategias de caché
-
UI/Visualización
- Interfaz web para navegar
- Herramienta de vista previa de prompts
- Panel de analíticas de uso
📄 Licencia
Licencia MIT: consulta el archivo LICENSE para más detalles.
🙏 Agradecimientos
- prompts-mcp-server original de @tanker327
- Model Context Protocol de Anthropic
- Construido con inspiración de la comunidad MCP
📞 Soporte
- Problemas: GitHub Issues
- Discusiones: GitHub Discussions
- Ejemplos: jezweb/prompts
Hecho con ❤️ para la comunidad MCP