MCPatterns

Um servidor para armazenar e recuperar padrões de codificação personalizados de um arquivo JSONL local.

Documentação

MCPatterns

MCPatterns é um servidor Model Context Protocol (MCP) que permite aos usuários salvar e recuperar padrões de codificação personalizados. Ele ajuda LLMs a aprender como um indivíduo codifica, armazenando padrões estruturados categorizados por tecnologia, caso de uso e estilo.

🧠 Propósito

Este servidor atua como uma camada de memória persistente para agentes LLM, permitindo que eles referenciem os estilos, padrões e convenções de codificação preferidos do usuário. Ele suporta:

  • Geração de código personalizada com base em padrões armazenados
  • Refatoração consistente seguindo as preferências do usuário
  • Sugestões conscientes de estilo usando padrões familiares
  • Memória de longo prazo de práticas de codificação entre sessões

🧩 Integração MCP

MCPatterns segue a especificação Model Context Protocol, fornecendo ferramentas para criar, ler, atualizar e excluir padrões de codificação. Ele usa armazenamento JSONL (JSON delimitado por nova linha) para operações atômicas e consistência de dados.

🗂 Esquema de Padrão

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
}

Exemplo de Padrão

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

🔧 Ferramentas Disponíveis

MCPatterns fornece as seguintes ferramentas MCP:

create_patterns

Crie vários novos padrões de codificação no banco de dados.

Entrada:

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

add_code_examples

Adicione novos exemplos de código a padrões existentes.

Entrada:

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

delete_patterns

Exclua vários padrões pelo nome.

Entrada:

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

delete_code_examples

Remova exemplos de código específicos de padrões.

Entrada:

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

read_patterns

Recupere todos os padrões armazenados.

Entrada: Nenhuma

search_patterns

Pesquise padrões por consulta em todos os campos.

Entrada:

{
  "query": "search term"
}

open_patterns

Recupere padrões específicos pelo nome.

Entrada:

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

🗄 Armazenamento

MCPatterns usa formato JSONL (JSON delimitado por nova linha) para armazenamento de dados:

  • Localização do arquivo: Configurável via variável de ambiente PATTERNS_FILE_PATH
  • Localização padrão: patterns.json no diretório do servidor
  • Formato: Cada linha contém um objeto JSON com type: "pattern"
  • Operações atômicas: Reescrita completa do arquivo garante consistência dos dados

🚀 Primeiros Passos

Instalação

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

Desenvolvimento

pnpm run dev

Compilação

pnpm run build

Execução

pnpm start
# or
mcpatterns

🔧 Configuração

Variáveis de Ambiente

  • PATTERNS_FILE_PATH: Caminho personalizado para o arquivo do banco de dados de padrões
    • Pode ser um caminho absoluto ou relativo ao diretório do script
    • O padrão é patterns.json no diretório do servidor

Integração com Claude Desktop

Adicione ao seu claude_desktop_config.json:

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

Com Caminho de Armazenamento Personalizado

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

Integração com VS Code

Adicione às configurações do seu VS Code (settings.json):

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

💡 Dicas de Uso

Para Agentes LLM

MCPatterns funciona melhor quando integrado ao seu fluxo de trabalho de IA com prompts 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.

Organização de Padrões

  • Use nomes descritivos que identifiquem claramente o propósito do padrão
  • Agrupe padrões relacionados com nomenclatura de categoria consistente
  • Inclua casos de uso abrangentes para melhorar a capacidade de pesquisa
  • Forneça exemplos em vários idiomas quando aplicável

Melhores Práticas

  • Padrões atômicos: Armazene padrões focados e de propósito único
  • Metadados ricos: Inclua casos de uso detalhados e tags de tecnologia
  • Exemplos versionados: Mantenha exemplos de código atualizados com as práticas atuais
  • Amigável para pesquisa: Use linguagem descritiva em descrições e casos de uso

📜 Licença

MIT