MCPatterns

Un servidor para almacenar y recuperar patrones de codificación personalizados desde un archivo JSONL local.

Documentación

MCPatterns

MCPatterns es un servidor de Model Context Protocol (MCP) que permite a los usuarios guardar y recuperar patrones de codificación personalizados. Ayuda a los LLMs a aprender cómo codifica un individuo almacenando patrones estructurados categorizados por tecnología, caso de uso y estilo.

🧠 Propósito

Este servidor actúa como una capa de memoria persistente para agentes LLM, permitiéndoles hacer referencia a los estilos, patrones y convenciones de codificación preferidos de un usuario. Soporta:

  • Generación de código personalizada basada en patrones almacenados
  • Refactorización consistente siguiendo las preferencias del usuario
  • Sugerencias conscientes del estilo utilizando patrones familiares
  • Memoria a largo plazo de prácticas de codificación entre sesiones

🧩 Integración MCP

MCPatterns sigue la especificación Model Context Protocol, proporcionando herramientas para crear, leer, actualizar y eliminar patrones de codificación. Utiliza almacenamiento JSONL (JSON delimitado por líneas) para operaciones atómicas y consistencia de datos.

🗂 Esquema de Patrones

interface Pattern {
  name: string;                              // Unique identifier
  category: string;                          // e.g., "Backend", "Frontend", "Database"
  description: string;                       // What this pattern does
  use_cases: string[];                       // When to use this pattern
  technologies: string[];                    // Languages, frameworks, libraries
  code_examples: { [language: string]: string }; // Code samples by language
}

Ejemplo de Patrón

{
  "name": "Error Handling Middleware",
  "category": "Backend",
  "description": "Express middleware for consistent error handling with structured responses",
  "use_cases": ["API development", "Middleware composition", "Error standardization"],
  "technologies": ["Node.js", "Express", "TypeScript"],
  "code_examples": {
    "JavaScript": "app.use((err, req, res, next) => {\n  console.error(err.stack);\n  res.status(500).json({ error: 'Something went wrong!' });\n});",
    "TypeScript": "app.use((err: Error, req: Request, res: Response, next: NextFunction) => {\n  console.error(err.stack);\n  res.status(500).json({ error: 'Something went wrong!' });\n});"
  }
}

🔧 Herramientas Disponibles

MCPatterns proporciona las siguientes herramientas MCP:

create_patterns

Crea múltiples patrones de codificación nuevos en la base de datos.

Entrada:

{
  "patterns": [Pattern, ...]
}

add_code_examples

Añade nuevos ejemplos de código a patrones existentes.

Entrada:

{
  "additions": [
    {
      "patternName": "string",
      "examples": { "language": "code" }
    }
  ]
}

delete_patterns

Elimina múltiples patrones por nombre.

Entrada:

{
  "patternNames": ["pattern1", "pattern2"]
}

delete_code_examples

Elimina ejemplos de código específicos de los patrones.

Entrada:

{
  "deletions": [
    {
      "patternName": "string",
      "languages": ["JavaScript", "TypeScript"]
    }
  ]
}

read_patterns

Recupera todos los patrones almacenados.

Entrada: Ninguna

search_patterns

Busca patrones por consulta en todos los campos.

Entrada:

{
  "query": "search term"
}

open_patterns

Recupera patrones específicos por nombre.

Entrada:

{
  "names": ["pattern1", "pattern2"]
}

🗄 Almacenamiento

MCPatterns utiliza el formato JSONL (JSON delimitado por líneas) para el almacenamiento de datos:

  • Ubicación del archivo: Configurable mediante la variable de entorno PATTERNS_FILE_PATH
  • Ubicación predeterminada: patterns.json en el directorio del servidor
  • Formato: Cada línea contiene un objeto JSON con type: "pattern"
  • Operaciones atómicas: La reescritura completa del archivo garantiza la consistencia de los datos

🚀 Primeros Pasos

Instalación

git clone https://github.com/nicholasrubright/mcpatterns.git
cd mcpatterns
pnpm install

Desarrollo

pnpm run dev

Compilación

pnpm run build

Ejecución

pnpm start
# or
mcpatterns

🔧 Configuración

Variables de Entorno

  • PATTERNS_FILE_PATH: Ruta personalizada para el archivo de base de datos de patrones
    • Puede ser una ruta absoluta o relativa al directorio del script
    • Por defecto es patterns.json en el directorio del servidor

Integración con Claude Desktop

Añade a tu claude_desktop_config.json:

{
  "mcpServers": {
    "mcpatterns": {
      "command": "npx",
      "args": ["-y", "@mcpatterns/server"]
    }
  }
}

Con Ruta de Almacenamiento Personalizada

{
  "mcpServers": {
    "mcpatterns": {
      "command": "npx",
      "args": ["-y", "@mcpatterns/server"],
      "env": {
        "PATTERNS_FILE_PATH": "/path/to/custom/patterns.json"
      }
    }
  }
}

Integración con VS Code

Añade a la configuración de VS Code (settings.json):

{
  "mcp": {
    "servers": {
      "mcpatterns": {
        "command": "npx",
        "args": ["-y", "@mcpatterns/server"]
      }
    }
  }
}

💡 Consejos de Uso

Para Agentes LLM

MCPatterns funciona mejor cuando se integra en tu flujo de trabajo de IA con indicaciones como:

Before generating code, search my patterns for relevant examples using the technologies I'm working with. Use my established patterns and coding style preferences when creating new code.

Organización de Patrones

  • Utiliza nombres descriptivos que identifiquen claramente el propósito del patrón
  • Agrupa patrones relacionados con nombres de categoría consistentes
  • Incluye casos de uso completos para mejorar la capacidad de búsqueda
  • Proporciona ejemplos en múltiples lenguajes cuando sea aplicable

Mejores Prácticas

  • Patrones atómicos: Almacena patrones enfocados y de propósito único
  • Metadatos enriquecidos: Incluye casos de uso detallados y etiquetas de tecnología
  • Ejemplos versionados: Mantén los ejemplos de código actualizados con las prácticas vigentes
  • Amigable para búsquedas: Utiliza lenguaje descriptivo en descripciones y casos de uso

📜 Licencia

MIT