Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Busca e cita o texto oficial de mais de 1,2 milhão de normas brasileiras (ctresb/leis).
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Download the maker’s .mcpb file
The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.
Run this in your terminal
claude mcp add leis -- uvx leis-mcp servePaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"leis": {
"command": "uvx",
"args": [
"leis-mcp",
"serve"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"leis": {
"type": "stdio",
"command": "uvx",
"args": [
"leis-mcp",
"serve"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account mazulo, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.2.0) reached the registry 3 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv), MCPB on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Claude Checkpoint MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
MCP server that checkpoints Claude Code session context to survive crashes and token limits
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Início rápido · Ferramentas · Clientes · Como funciona · Limitações
Clique na imagem para ver a demonstração (25 s, com música).
leis-mcp é um servidor MCP que dá ao Claude Code, ao Claude Desktop, ao Cursor, ao VS Code, ao Codex e a qualquer cliente MCP acesso à legislação brasileira do repositório público ctresb/leis. Em vez de parafrasear de memória, o assistente busca a norma, lê o dispositivo e cita o texto exato, com a fonte oficial e os avisos de revogação.
ler_artigo("8245/1991", "23", inciso="III")
→ "III - restituir o imóvel, finda a locação, no estado em que o recebeu, salvo as deteriorações decorrentes do seu uso normal;"
[!IMPORTANT]
O texto é convertido automaticamente das fontes oficiais e pode conter erros de conversão ou OCR. Ele não substitui a publicação no Diário Oficial. Toda resposta do servidor traz o link
fontee esse aviso.
art. 23, III).normas.leg.br, LexML) e o caminho no acervo.CLT, CDC, LGPD, lei do inquilinato…).[!TIP]
Usa o Claude Desktop e não quer mexer no terminal? Baixe o leis-mcp.mcpb e abra o arquivo. O Claude Desktop mostra a tela de instalação e cuida do resto, inclusive do Python.
Requisito: uv. O ripgrep (rg) é recomendado.
uvx leis-mcp index # baixa o índice pronto (~100 MB, só na primeira vez)
claude mcp add leis -- uvx leis-mcp serve
Pronto. Pergunte ao Claude: *"O inquilino é obrigado a devolver o imóvel como recebeu? Cite a lei."*
[!TIP]
uvx leis-mcp warmpré-carrega as ~40 normas dos apelidos, para quebuscar_textosemnormajá tenha onde procurar.
A partir do código-fonte
git clone https://github.com/mazulo/leis-mcp && cd leis-mcp
uv sync uv run leis-mcp index claude mcp add leis -- uv --directory "$PWD" run leis-mcp serve
| Ferramenta | Para quê |
|---|---|
buscar_norma(referencia?, numero?, ano?, tipo?, esfera?, uf?, limite) | Acha a norma e devolve os metadados do cabeçalho (título, ementa, data, revogada, versao_texto), o caminho, o link do GitHub e a fonte. Aceita "8.245", "8245/1991", "Lei 8.245/91", "Lei nº 8.245, de 18 de outubro de 1991", "LC 123/2006", "DL 5.452" e apelidos. |
ler_artigo(norma, artigo, paragrafo?, inciso?, alinea?, bloco?) | Devolve o texto exato do dispositivo, o caput como contexto, a citação e os avisos. |
buscar_texto(consulta, norma?, esfera?, tipo?, ano?, uf?, limite) | Procura uma palavra ou trecho numa norma (baixada na hora) ou em todas as normas já em cache. Ignora acentos e maiúsculas e indica o artigo de cada ocorrência. |
listar_normas(esfera?, tipo?, ano?, uf?, municipio?, orgao?, limite, offset) | Navegação em níveis: esfera, depois tipo, UF ou órgão, depois ano, depois a lista de normas. |
Recurso leis://apelidos | Lista os apelidos aceitos. |
Exemplo de resposta de ler_artigo("8245/1991", "23", inciso="III")
{
"norma": {"titulo": "Lei nº 8.245 de 18/10/1991", "ementa": "Dispõe sobre as locações dos imóveis urbanos…", "revogada": false, "versao_texto": "compilada (texto vigente)", "caminho": "federal/leis-ordinarias/1991/lei-8245-1991-10-18.md"}, "dispositivo": {"citacao": "art. 23, III", "texto": "III - restituir o imóvel, finda a locação, no estado em que o recebeu, salvo as deteriorações decorrentes do seu uso normal;", "caput": "Art. 23. O locatário é obrigado a:"}, "avisos": [], "fonte": "https://normas.leg.br/?urn=urn:lex:br:federal:lei:1991-10-18;8245", "aviso_legal": "Texto convertido automaticamente das fontes oficiais (…). Não substitui a publicação no Diário Oficial." }
Apelidos aceitos
constituição/CF, ADCTcódigo civil/CC, CPC, código penal/CP, CPP, CLT, CDC, CTN, CTB, código eleitoral, código florestalECA, estatuto do idoso, estatuto da OAB, estatuto da cidade, estatuto do desarmamento, LBIlei do inquilinato, lei dos juizados, LGPD, marco civil da internet, maria da penha, nova lei de licitações, lei de improbidade administrativa, lei de drogas, LEP, lei de falências, LINDB, lei do mandado de segurança, lei da ação civil pública, LAI, LRF, simples nacional, lei anticorrupção, lei de arbitragem, lei de abuso de autoridade| Pergunta ao Claude | O que o servidor faz |
|---|---|
| "O inquilino é obrigado a devolver o imóvel como recebeu? Cite a lei." | ler_artigo("lei do inquilinato", "23", inciso="III") |
| "A caução do aluguel pode ficar em poupança?" | ler_artigo("8245/1991", "38", paragrafo="2") |
| "Serviço mal feito: o que o CDC garante?" | ler_artigo("CDC", "20") |
| "Preciso de advogado no juizado especial?" | ler_artigo("9099/1995", "9") |
| "O que diz o ADCT, art. 10?" | ler_artigo("ADCT", "10") |
| "Onde a CLT fala em grupo econômico?" | buscar_texto("grupo econômico", norma="CLT") |
Funciona em qualquer cliente MCP. Todos rodam o mesmo comando, uvx leis-mcp serve, depois de um uvx leis-mcp index. A maioria aceita esta configuração padrão:
{
"mcpServers": { "leis": { "command": "uvx", "args": ["leis-mcp", "serve"] } } }
[!NOTE]
Apps de interface gráfica no macOS (Claude Desktop, Cursor, Windsurf) nem sempre herdam o
PATHdo terminal. Se o cliente não achar ouvx, troque"uvx"pelo caminho absoluto quewhich uvxmostra.
Claude Code
claude mcp add leis -- uvx leis-mcp serve
Use -s user para disponibilizar em todos os projetos e -s project para gravar em .mcp.json.
Claude Desktop
O jeito mais simples é a extensão: baixe o leis-mcp.mcpb, abra o arquivo e clique em Instalar. Não precisa de terminal, uv nem Python: o Claude Desktop instala tudo. Na primeira pergunta ele baixa o índice (~100 MB), o que leva um ou dois minutos.
Para configurar à mão, use a configuração padrão em claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\). O atalho é *Settings → Developer → Edit Config*. Reinicie o app depois de salvar.
Cursor
Clique no botão Instalar no Cursor acima, ou use a configuração padrão em ~/.cursor/mcp.json (global) ou .cursor/mcp.json (no projeto).
VS Code (GitHub Copilot)
Clique no botão Instalar no VS Code acima, ou rode:
code --add-mcp '{"name":"leis","command":"uvx","args":["leis-mcp","serve"]}'
Para registrar só no projeto, crie .vscode/mcp.json. Repare que a chave aqui é servers:
{
"servers": { "leis": { "type": "stdio", "command": "uvx", "args": ["leis-mcp", "serve"] } } }
Windsurf
Use a configuração padrão em ~/.codeium/windsurf/mcp_config.json, ou pelo painel do Cascade em *MCP Servers → Configure*.
Codex (OpenAI)
codex mcp add leis -- uvx leis-mcp serve
Ou em ~/.codex/config.toml:
[mcp_servers.leis]
command = "uvx" args = ["leis-mcp", "serve"]
Gemini CLI
Use a configuração padrão em ~/.gemini/settings.json (global) ou .gemini/settings.json (no projeto).
GitHub Copilot CLI
Rode /mcp add dentro do Copilot CLI, ou edite ~/.copilot/mcp-config.json:
{
"mcpServers": { "leis": { "type": "local", "command": "uvx", "args": ["leis-mcp", "serve"], "tools": ["*"] } } }
opencode
Em ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json", "mcp": { "leis": { "type": "local", "command": ["uvx"
Only the beginning is shown; read the rest in the repo