Um servidor Model Context Protocol (MCP) para verificação de qualidade de texto usando Vale, permitindo análise de estilo e gramática através de IA.
- ✅ Fazer lint de texto com Vale - Analisar qualidade e estilo de texto
- ✅ Verificar status do Vale - Confirmar se Vale está instalado e configurado
- ✅ Múltiplos estilos de verificação - Google, proselint, alex, WC-Styles
- ✅ Interface Web simples - Interface gráfica para teste
- ✅ API HTTP - Endpoints REST para integração
- ✅ Protocolo MCP nativo - Integração direta com assistentes IA
-
Clone este repositório
-
Instale as dependências:
npm install -
Instale o Vale (verificador de estilo):
-
macOS
brew install vale -
Ubuntu/Debian
sudo apt install vale -
ou baixe de https://github.com/errata-ai/vale/releases
-
-
Compile o projeto:
npm run build
Observação: Para desenvolver, use
npm run devpara modo watch.
Este projeto oferece múltiplas formas de uso para atender diferentes necessidades:
# ⭐ RECOMENDADO: Inicia ambos servidores com um comando
`npm run start-npm`
# Alternativas (mesma funcionalidade):
`npm run start-js` # Versão Node.js
`./start-servers.sh` # Versão Bash (se disponível)
- Terminal 1: Iniciar API HTTP
`npm run http`
- Terminal 2: Iniciar interface web
`npm run web`
- Acesse: `http://localhost:8080/web-interface.html`
`npm start`
- Testar via curl/API calls
```bash
curl -X POST http://localhost:3000/vale/lint \
-H "Content-Type: application/json" \
-d '{"text":"Your text here","fileName":"test.md"}'
```
Se você usa um cliente/CLI chamado "Gemini-CLI" (ou similar) para gerenciar servidores MCP e conectar assistentes, aqui está um guia prático para executar este servidor com o Gemini-CLI. As instruções abaixo são intencionais e genéricas — adapte flags/nomes/paths para o formato exato do Gemini-CLI que você usa.
-
Pré-requisitos
- Tenha o projeto compilado (
npm run build) ou execute em modo standalone (npm start). - Tenha Vale instalado e configurado (veja seção de instalação).
- Tenha o Gemini-CLI instalado e configurado localmente (siga a documentação do CLI que você utiliza).
- Tenha o projeto compilado (
-
Iniciando o servidor MCP localmente (modo stdio / MCP)
-
Modo standalone (stdio MCP):
npm start -
Ou, se preferir usar apenas o MCP server (arquivo compilado):
node ./dist/index.js
-
-
Exemplo de configuração do Gemini-CLI
- Abaixo está um exemplo ilustrativo de um arquivo de configuração JSON que aponta para o servidor MCP deste repositório. Ajuste os caminhos conforme seu ambiente.
{ "mcpServers": { "vale-server": { "command": "node", "args": ["./dist/index.js"], "env": { "VALE_CONFIG_PATH": "./vale.ini" }, "stdin": true, "protocol": "mcp" } } }- Observações:
args: caminho para odist/index.jsgerado pelonpm run build.VALE_CONFIG_PATH: caminho relativo ou absoluto para ovale.ini.stdin/protocol: campos ilustrativos — alguns CLIs usam chaves diferentes para indicar que o processo fala MCP por stdio ou socket; verifique o formato exato do seu Gemini-CLI.
-
Iniciando via Gemini-CLI
-
Com a configuração acima salva (por exemplo
gemini-config.json), um comando típico pode ser:gemini-cli --config ./gemini-config.json run vale-server -
Dependendo do cliente, você pode ter subcomandos diferentes, como
start,run,attachou similar. Consulte a documentação do seu Gemini-CLI para a sintaxe correta.
-
-
Fluxos comuns
-
Fluxo A (CLI gerencia processo):
- Gemini-CLI inicia o
vale-servercom stdio MCP. - O assistente/cliente conecta via MCP e usa as ferramentas (
lint_text,vale_status, etc.).
- Gemini-CLI inicia o
-
Fluxo B (servidor já em execução):
- Você executa
npm startseparadamente. - Configure o Gemini-CLI para se conectar ao processo em
stdin/socket/porta conforme suportado.
- Você executa
-
-
Dicas de troubleshooting
- Se o Gemini-CLI não conectar:
- Verifique se o processo
node ./dist/index.jsestá rodando e não travou com erro. - Confirme
VALE_CONFIG_PATHcorreto e quevale.inie diretóriostyles/existem. - Rode
npm run buildnovamente se os arquivos emdist/estiverem faltando.
- Verifique se o processo
- Se o Vale retornar erros:
- Vale pode retornar código de saída != 0 quando encontra problemas de lint — isso é comportamento esperado. Use a ferramenta
vale_statusouvale --versionpara validar instalação.
- Vale pode retornar código de saída != 0 quando encontra problemas de lint — isso é comportamento esperado. Use a ferramenta
- Logs:
- Ative logs detalhados no Gemini-CLI (se disponível) e no MCP server (ex.: variável de ambiente
DEBUGou flags de verbose) para diagnosticar handshake MCP.
- Ative logs detalhados no Gemini-CLI (se disponível) e no MCP server (ex.: variável de ambiente
- Se o Gemini-CLI não conectar:
-
Exemplo mínimo passo-a-passo
- Build:
npm run build - Criar
gemini-config.json(ajuste caminhos) - Iniciar com o Gemini-CLI:
gemini-cli --config ./gemini-config.json run vale-server - No cliente/assistente, selecione o servidor
vale-servere execute ferramentas comolint_text.
- Build:
Se você me disser qual é o repositório/executável exato do Gemini-CLI que está usando (ou colar o exemplo do config esperado), eu adapto o snippet de configuração e o comando final para o formato exato do seu CLI.
Faz lint de texto usando Vale style checker.
Parâmetros:
text(string): Conteúdo de texto para analisarfileName(string, opcional): Nome do arquivo para o texto (padrão: document.md)
Verifica se Vale está instalado e funcionando corretamente.
Parâmetros: Nenhum
# 🚀 Iniciar tudo (RECOMENDADO)
`npm run start-npm`
# 🧪 Testar funcionalidade
`npm run test-server`
# 🔨 Compilar TypeScript
`npm run build`
# 🌐 Apenas interface web
`npm run web`
# 📡 Apenas API HTTP
`npm run http`
- Interface Web:
http://localhost:8080/web-interface.html - Visual, intuitiva, sem configuração
- MCP Server: Configuração no claude_desktop_config.json
- Melhor para uso regular com Claude
- API HTTP: Endpoints REST para integração
- Ideal para desenvolvimento de outras interfaces
src/
├── index.ts # Servidor MCP principal
├── vale-service.ts # Serviço de integração com Vale
└── test.ts # Testes do servidor- Modo de desenvolvimento (watch)
`npm run dev`
- Build
`npm run build`
- Testes
`npm test`
VALE_CONFIG_PATH: Caminho para o arquivo vale.ini (padrão: ./vale.ini)
- Certifique-se de que o Vale está instalado:
-
macOS
brew install vale -
Ubuntu/Debian
sudo apt install vale -
Windows
choco install vale -
ou baixe de https://github.com/errata-ai/vale/releases
-
- Verifique se o arquivo
vale.iniestá no local correto - Certifique-se de que os estilos necessários estão no diretório
styles/
MIT