mcp-luz
Executes Docker Compose actions such as up, down, status, and logs at the detected project root.
Provides an optional Figma integration, exposing Figma tools when FIGMA_API_KEY is configured.
Provides an optional PostgreSQL integration, enabled when all PG_* environment variables are set.
Provides an optional SonarQube integration, enabled with SONARQUBE_TOKEN and SONARQUBE_ORG or SONARQUBE_URL.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-luz what stack is this project using and where's the monorepo root?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-luz
Hub MCP pessoal para centralizar ferramentas de desenvolvimento e contexto de projetos. O servidor funciona por stdio e reúne ferramentas nativas para contexto de monorepos, Docker, Context7 e Nexus, além de encaminhar ferramentas de MCPs externos quando eles estiverem disponíveis.
O que oferece
Detecta a stack atual (
NestJS, React, Angular ou Astro) e a raiz do repositório/monorepo.Executa ações usuais de Docker Compose na raiz identificada do projeto.
Consulta documentação atualizada via Context7.
Pesquisa, consulta, cria rascunhos e lista informações do Nexus local.
Encaminha ferramentas de integrações opcionais, com nomes no formato
<servidor>__<ferramenta>.
Related MCP server: WhenLabs/When
Requisitos
Node.js 20 ou superior.
npm.
Docker, apenas para as ferramentas de Docker e a integração opcional com SonarQube.
Acesso aos serviços configurados nas integrações opcionais.
Instalação
git clone https://github.com/danisluz/mcp-luz.git
cd mcp-luz
npm ci
npm run buildPara configurar integrações, crie seu arquivo local de ambiente a partir do exemplo:
cp .env.example .envO arquivo .env é ignorado pelo Git e não deve ser versionado.
Configuração como servidor MCP
Depois de compilar, registre o servidor no seu cliente MCP usando o executável gerado:
{
"mcp-luz": {
"command": "node",
"args": ["/caminho/absoluto/para/mcp-luz/dist/server.js"]
}
}Substitua o caminho pelo local em que o repositório foi clonado. O servidor usa stdio; logs operacionais são enviados para stderr.
Sincronização com o Codex
Para instalar ou atualizar os recursos locais no Codex, rode:
npm run build
npm run install:codexEsse fluxo:
compila o servidor MCP em
dist/server.js;gera os agentes TOML a partir de
src/agents/*.md;copia os agentes para
.codex/agentse~/.codex/agents;copia as skills de
src/skills/sharedpara~/.codex/skills;garante o registro do MCP
mcp-luzem~/.codex/config.toml.
Depois de adicionar, remover ou alterar agents, skills ou tools MCP, rode esses comandos e abra uma nova sessão do Codex. O Codex carrega o inventário de skills, agents e MCPs no início da sessão; conversas já abertas não recebem hot reload.
Ferramentas nativas
Ferramenta | Descrição |
| Detecta a tecnologia do diretório atual e a raiz do monorepo. |
| Executa |
| Resolve o identificador de uma biblioteca para consulta no Context7. |
| Consulta documentação no Context7 com um |
| Pesquisa ideias, projetos, decisões e propostas no Nexus. |
| Retorna o resumo estruturado de um projeto do Nexus. |
| Cria um rascunho de ideia, briefing ou proposta sem sobrescrever arquivos existentes. |
| Lista os arquivos mais recentemente alterados em projetos do Nexus. |
Integrações opcionais
Integração | Como é habilitada |
Playwright | Disponível por padrão via |
Sequential Thinking | Disponível por padrão via |
Figma | Defina |
PostgreSQL | Preencha todas as variáveis |
Fetch | Crie o ambiente virtual |
SonarQube | Defina |
As ferramentas dessas integrações são expostas somente quando a conexão com o respectivo servidor for bem-sucedida. Seus nomes recebem o prefixo da integração, por exemplo playwright__... e figma__....
Variáveis de ambiente
Consulte .env.example para a lista completa. As variáveis de uso mais comum são:
CONTEXT7_API_KEY: chave usada nas consultas do Context7.FIGMA_API_KEY: habilita a integração do Figma.PG_HOST,PG_PORT,PG_USER,PG_PASSWORDePG_DATABASE: habilitam o MCP PostgreSQL em conjunto.SONARQUBE_TOKENeSONARQUBE_ORGouSONARQUBE_URL: habilitam o MCP SonarQube.MCP_PROJECT_NAME: permite indicar o projeto quando o cliente inicia o Hub fora da pasta do projeto.NEXUS_ROOT: define uma raiz alternativa para o Nexus.PROJECTS_ROOT: altera a raiz de projetos, que por padrão é/home/danisluz/projects.
Desenvolvimento
npm run devEsse comando recompila o TypeScript em modo observação. Para validar uma compilação única:
npm run buildArquitetura
src/server.ts: inicializa o servidor MCP, registra ferramentas e integrações filhas.src/lib/: contém as regras de contexto de projeto, carregamento de ambiente, ponte de MCPs externos, Context7 e Nexus.src/agents/: personas para clientes compatíveis que leem agentes em Markdown diretamente.src/skills/: habilidades compartilhadas, também consumidas diretamente pelo cliente.
Available Tools
33 toolscontext7__query_docsC
Consulta documentação atual no Context7 usando um libraryId resolvido.
Inputs: query (required), libraryId (required).
context7__resolve_library_idA
Resolve uma biblioteca para um ID compatível do Context7 antes de consultar documentação.
Inputs: query (required), libraryName (required).
detectar_stack_atualA
Detecta automaticamente a tecnologia da pasta (NestJS/React/Angular) e a raiz do monorepo Docker.
Inputs: no named parameters.
gerenciar_docker_monorepoB
Executa comandos docker-compose (up, down, ps, logs) subindo automaticamente até a raiz do Monorepo.
Inputs: acao (required).
nexus_create_draftA
Cria um rascunho de ideia, briefing ou proposta no Nexus, sem sobrescrever rascunhos existentes.
Inputs: tipo (required), titulo (required), conteudo (required), projeto.
nexus_get_projectA
Devolve o resumo estruturado de um projeto do Nexus a partir do slug da pasta.
Inputs: slug (required).
nexus_list_recentA
Lista os arquivos modificados mais recentemente em projects/ no Nexus.
Inputs: limit.
nexus_searchB
Busca um termo nas ideias, projetos, decisões e propostas versionados no Nexus.
Inputs: query (required), limit.
playwright__browser_clickCDestructive
[playwright] Perform click on a web page
Inputs: target (required), button, element, modifiers, +1 more.
playwright__browser_closeCDestructive
[playwright] Close the page
Inputs: no named parameters.
playwright__browser_console_messagesCRead-only
[playwright] Returns all console messages
Inputs: level (required), all, filename.
playwright__browser_dragCDestructive
[playwright] Perform drag and drop between two elements
Inputs: endTarget (required), startTarget (required), endElement, startElement.
playwright__browser_dropADestructive
[playwright] Drop files or MIME-typed data onto an element, as if dragged from outside the page. At least one of "paths" or "data" must be provided.
Inputs: target (required), data, paths, element.
playwright__browser_evaluateBDestructive
[playwright] Evaluate JavaScript expression on page or element
Inputs: function (required), target, element, filename.
playwright__browser_file_uploadCDestructive
[playwright] Upload one or multiple files
Inputs: paths.
playwright__browser_fill_formCDestructive
[playwright] Fill multiple form fields
Inputs: fields (required).
playwright__browser_findARead-only
[playwright] Search the accessibility snapshot of the current page for text or a regular expression. Returns matching snapshot nodes with a few lines of surrounding context (like search snippets), each shown under its path from the root of the tree, which is cheaper than capturing the whole snapshot when you only need to locate an element and its ref.
Inputs: text, regex.
playwright__browser_handle_dialogCDestructive
[playwright] Handle a dialog
Inputs: accept (required), promptText.
playwright__browser_hoverCDestructive
[playwright] Hover over element on page
Inputs: target (required), element.
playwright__browser_network_requestARead-only
[playwright] Returns full details (headers and body) of a single network request, or a single part if part is set. Use the number from browser_network_requests.
Inputs: index (required), part, filename.
playwright__browser_network_requestsARead-only
[playwright] Returns a numbered list of network requests since loading the page. Use browser_network_request with the number to get full details.
Inputs: static (required), filter, filename.
playwright__browser_press_keyBDestructive
[playwright] Press a key on the keyboard
Inputs: key (required).
playwright__browser_resizeBDestructive
[playwright] Resize the browser window
Inputs: width (required), height (required).
playwright__browser_run_code_unsafeADestructive
[playwright] Run a Playwright code snippet. Unsafe: executes arbitrary JavaScript in the Playwright server process and is RCE-equivalent.
Inputs: code, filename.
playwright__browser_select_optionBDestructive
[playwright] Select an option in a dropdown
Inputs: target (required), values (required), element.
playwright__browser_snapshotARead-only
[playwright] Capture accessibility snapshot of the current page, this is better than screenshot
Inputs: boxes, depth, target, filename.
playwright__browser_tabsADestructive
[playwright] List, create, close, or select a browser tab.
Inputs: action (required), url, index.
playwright__browser_take_screenshotARead-only
[playwright] Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions.
Inputs: scale (required), type, target, element, +2 more.
playwright__browser_typeBDestructive
[playwright] Type text into editable element
Inputs: text (required), target (required), slowly, submit, +1 more.
playwright__browser_wait_forBRead-only
[playwright] Wait for text to appear or disappear or a specified time to pass
Inputs: text, time, textGone.
sequential-thinking__sequentialthinkingSequential ThinkingARead-onlyIdempotent
[sequential-thinking] A detailed tool for dynamic and reflective problem-solving through thoughts. This tool helps analyze problems through a flexible thinking process that can adapt and evolve. Each thought can build on, question, or revise previous insights as understanding deepens.
When to use this tool:
Breaking down complex problems into steps
Planning and design with room for revision
Analysis that might need course correction
Problems where the full scope might not be clear initially
Problems that require a multi-step solution
Tasks that need to maintain context over multiple steps
Situations where irrelevant information needs to be filtered out
Key features:
You can adjust total_thoughts up or down as you progress
You can question or revise previous thoughts
You can add more thoughts even after reaching what seemed like the end
You can express uncertainty and explore alternative approaches
Not every thought needs to build linearly - you can branch or backtrack
Generates a solution hypothesis
Verifies the hypothesis based on the Chain of Thought steps
Repeats the process until satisfied
Provides a correct answer
Parameters explained:
thought: Your current thinking step, which can include:
Regular analytical steps
Revisions of previous thoughts
Questions about previous decisions
Realizations about needing more analysis
Changes in approach
Hypothesis generation
Hypothesis verification
nextThoughtNeeded: True if you need more thinking, even if at what seemed like the end
thoughtNumber: Current number in sequence (can go beyond initial total if needed)
totalThoughts: Current estimate of thoughts needed (can be adjusted up/down)
isRevision: A boolean indicating if this thought revises previous thinking
revisesThought: If is_revision is true, which thought number is being reconsidered
branchFromThought: If branching, which thought number is the branching point
branchId: Identifier for the current branch (if any)
needsMoreThoughts: If reaching end but realizing more thoughts needed
You should:
Start with an initial estimate of needed thoughts, but be ready to adjust
Feel free to question or revise previous thoughts
Don't hesitate to add more thoughts if needed, even at the "end"
Express uncertainty when present
Mark thoughts that revise previous thinking or branch into new paths
Ignore information that is irrelevant to the current step
Generate a solution hypothesis when appropriate
Verify the hypothesis based on the Chain of Thought steps
Repeat the process until satisfied with the solution
Provide a single, ideally correct answer as the final output
Only set nextThoughtNeeded to false when truly done and a satisfactory answer is reached
Inputs: thought (required), thoughtNumber (required), totalThoughts (required), nextThoughtNeeded (required), +5 more. Returns: branches, thoughtNumber, totalThoughts, nextThoughtNeeded, +1 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 33 tools
The tools are mostly grouped by clear domains (Playwright, Context7, Nexus, Docker) and each action targets a distinct resource or operation. A few pairs like browser_type vs browser_fill_form, browser_evaluate vs browser_run_code_unsafe, and browser_close vs browser_tabs could cause minor hesitation, but the descriptions are explicit enough to resolve the ambiguity.
The tool names mix conventions: some use namespaced prefixes (playwright__browser_*, context7__*, sequential-thinking__*), while others are unnamespaced Portuguese verbs (detectar_stack_atual, gerenciar_docker_monorepo) or have a bare domain prefix (nexus_search, nexus_get_project). All names are snake_case and generally readable, but the inconsistent prefix style and English/Portuguese mixing keep it from being cohesive.
With 33 tools spanning browser automation, knowledge management, documentation lookup, Docker orchestration, and reasoning, this is a heavy and multi-purpose surface. Each sub-suite is individually reasonable, but the aggregate feels bloated for a single MCP server without a clearly defined unified scope.
Core workflows are well covered: browser automation includes navigation, input, snapshots, network inspection, and tab management; Context7 has resolve+query; Docker has up/down/ps/logs; Nexus has search/get/list/create. The main gaps are write-side Nexus operations like updating or deleting drafts and a few browser edge-case actions, but these are workable gaps rather than dead ends.
Maintenance
Related MCP Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
Manage CloudPepper servers, Odoo instances, backups, and deployments over MCP.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA unified MCP server with composable tools for GitHub operations, file management, shell execution, kanban boards, Discord messaging, and package management. Features role-based security, HTTP/stdio transports, and a web-based development UI.GPL 3.0
- AlicenseAqualityDmaintenanceA unified developer toolkit for AI-assisted workflows. Task timing, doc drift detection, env validation, secret scanning, port conflict resolution, AI context generation, and license auditing — one MCP server, one install.74MIT
- -licenseNot gradedqualityNot gradedmaintenanceLocal-first MCP server for repo-scoped development tasks like inspection, testing, documentation, and patching, designed to complement Cline with a structured local execution layer.-
- AlicenseNot gradedqualityCmaintenanceMCP server and CLI for host and container operations, enabling Docker and Compose control, SSH, host inspection, logs, ZFS, and safe file transfer. It exposes flux and scout MCP tools with parity from the original TypeScript server.2AGPL 3.0