refactor-mcp
Refatore código usando busca e substituição baseada em regex.
Documentação
refactor-mcp
Um servidor Model Context Protocol (MCP) que fornece ferramentas poderosas de refatoração para Agentes de Codificação. Ele pode ser executado em dois modos:
- Modo Servidor MCP (padrão): Integra-se com clientes compatíveis com MCP, como Claude Code
- Modo CLI: Uso direto via linha de comando para tarefas de refatoração autônomas
Recursos
Este servidor MCP implementa duas ferramentas principais para auxiliar na refatoração de código:
🔧 code_refactor
Realiza operações de busca e substituição baseadas em regex em arquivos, com recursos avançados de filtragem.
Parâmetros:
search_pattern(string) - Padrão de expressão regular para buscareplace_pattern(string) - Padrão de substituição (suporta grupos de captura como $1, $2)context_pattern(string, opcional) - Substituir apenas correspondências dentro deste contextofile_pattern(string, opcional) - Padrão glob para limitar arquivos (ex.:*.js,src/**/*.ts)
Exemplo:
// Replace foo() calls with bar() calls
code_refactor("foo\\((.+)\\)", "bar($1)")
// Before: let k = foo(1,2,3);
// After: let k = bar(1,2,3);
Refatoração com consciência de contexto:
// Only replace "legacy_sdk" within import statements
code_refactor("legacy_sdk", "brand_new_sdk", "import")
🔍 code_search
Busca padrões de regex e retorna localizações de arquivos com números de linha precisos.
Parâmetros:
search_pattern(string) - Padrão de expressão regular para buscacontext_pattern(string, opcional) - Filtrar correspondências pelo contexto ao redorfile_pattern(string, opcional) - Padrão glob para limitar o escopo da busca
Exemplo:
code_search("foo\\(.+\\)")
// Result:
// ./src/utils.js (line: 15)
// ./src/helpers.ts (lines: 23-27)
Instalação
Início Rápido
Modo Servidor MCP (para Claude Code e outros clientes MCP):
# Install globally for MCP integration
npm install -g @myuon/refactor-mcp
# Or use with npx (recommended for MCP clients)
npx @myuon/refactor-mcp@latest
Modo CLI (para uso direto via linha de comando):
# Search for patterns
npx @myuon/refactor-mcp@latest cli search -p "function.*\(" -f "src/**/*.js"
# Refactor with preview
npx @myuon/refactor-mcp@latest cli refactor -s "const (\w+)" -r "let \$1" --dry-run
Para Desenvolvimento
# Clone and install dependencies
git clone https://github.com/myuon/refactor-mcp.git
cd refactor-mcp
npm install
Uso
Modo CLI
Você pode usar as ferramentas de refatoração diretamente da linha de comando adicionando cli após o comando principal:
# Search for patterns
refactor-mcp cli search -p "function (.*) \{" -f "src/**/*.ts"
# Search with matched content display
refactor-mcp cli search -p "function (.*) \{" -f "src/**/*.ts" --print
# Refactor with dry-run (preview changes)
refactor-mcp cli refactor -s "const (\w+) = " -r "let \$1 = " --dry-run
# Refactor with matched content display
refactor-mcp cli refactor -s "const (\w+) = " -r "let \$1 = " --print --dry-run
# Refactor with file pattern
refactor-mcp cli refactor -s "old_function" -r "new_function" -f "src/**/*.js"
# Context-aware refactoring
refactor-mcp cli refactor -s "legacy_sdk" -r "new_sdk" -c "import" -f "src/**/*.ts"
Comandos CLI:
search- Buscar padrões de código-p, --pattern <pattern>- Padrão de expressão regular para busca-c, --context <context>- Padrão de contexto opcional para filtrar correspondências-f, --files <files>- Padrão glob de arquivos opcional para limitar o escopo da busca--print- Imprimir conteúdo correspondente na saída padrão--matched- Mostrar apenas o texto correspondente com grupos de captura
refactor- Refatorar código com substituição por regex-s, --search <search>- Padrão de expressão regular para busca-r, --replace <replace>- Padrão de substituição (suporta $1, $2, etc.)-c, --context <context>- Padrão de contexto opcional para filtrar correspondências-f, --files <files>- Padrão glob de arquivos opcional para limitar o escopo da busca--dry-run- Visualizar alterações sem modificar arquivos--print- Imprimir conteúdo correspondente e substituições na saída padrão
Notas Importantes:
- Ao usar grupos de captura em padrões de substituição na linha de comando, escape o cifrão:
\$1,\$2, etc. - Exemplo:
refactor-mcp cli refactor -s "const (\w+) = " -r "let \$1 = " --dry-run - Isso evita que o shell interprete
$1como uma variável de shell
Modo Servidor MCP (Padrão)
Por padrão, refactor-mcp é executado como um servidor MCP via transporte stdio:
# Run as MCP server (default mode)
refactor-mcp
# Or explicitly with npx
npx @myuon/refactor-mcp@latest
Desenvolvimento
npm run dev # Run server in development mode
npm run dev:cli # Run CLI in development mode with arguments
npm run cli # Run CLI directly (for testing)
npm run build # Build for production
npm start # Run built server (MCP mode)
Qualidade de Código
npm run check # Run all quality checks
npm run lint # Run ESLint
npm run format # Format code with Prettier
npm test # Run tests
Integração MCP
Este servidor usa o Model Context Protocol para se comunicar com clientes compatíveis. Ele é executado via transporte stdio e pode ser integrado em qualquer ambiente compatível com MCP.
Integração com Claude Code
Para usuários do Claude Code, você pode adicionar facilmente este servidor MCP com:
claude mcp add refactor npx @myuon/refactor-mcp@latest
Configuração Manual
Adicione à configuração do seu cliente MCP:
{
"mcpServers": {
"refactor-mcp": {
"command": "npx",
"args": ["@myuon/refactor-mcp@latest"]
}
}
}
Configuração Alternativa (Instalação Local)
{
"mcpServers": {
"refactor-mcp": {
"command": "refactor-mcp"
}
}
}
Arquitetura
- Framework: Model Context Protocol SDK para TypeScript
- Runtime: Node.js com módulos ES
- Validação: Esquemas Zod para validação de entrada com segurança de tipos
- Operações de Arquivo: Módulo fs nativo com correspondência de padrões glob
- Testes: Vitest com cobertura abrangente de testes
Contribuindo
- Instale as dependências:
npm install - Execute os testes:
npm test - Verifique a qualidade do código:
npm run check - Compile:
npm run build
Licença
MIT