Pular para o conteúdo principal

Workspace Tools (Automação e MCP)

O workspace Tools fornece a espinha dorsal de automação para o projeto Elo Orgânico. Ele centraliza servidores especializados de Model Context Protocol (MCP) e scripts de infraestrutura projetados para aumentar a produtividade dos desenvolvedores, garantir a paridade de ambiente por meio de compilações Docker multi-stage e permitir fluxos de trabalho de engenharia AI-native seguros e de alto contexto.

Ecossistema Model Context Protocol (MCP)

O monorepo Elo Orgânico apresenta um ecossistema MCP especializado e conteinerizado. Ele expõe capacidades de desenvolvimento estruturadas e contextos da base de código para clientes LLM (como o Antigravity CLI ou agentes externos) por meio de uma rede de gateway segura e de alto desempenho.

Adaptadores TypeScript Zero-Dependency

Servidores MCP padrão baseados em CLI se comunicam via fluxos de entrada/saída padrão (stdio). Para expô-los com segurança pela rede, cada serviço é empacotado com um wrapper TypeScript personalizado (sse-adapter.ts) executado no Fastify v5. Este adaptador implementa dois protocolos de rede distintos:

  • Server-Sent Events (SSE) Tradicional: Estabelece um fluxo unidirecional persistente via GET /sse e aceita mensagens do cliente via POST /messages, direcionando eventos diretamente para a entrada padrão (stdin) do subprocesso subjacente.
  • HTTP Streamable Stateless (POST /sse): Um adaptador transacional personalizado que simula requisição-resposta sem estado. Ele armazena as linhas de stdout do processo filho, extrai payloads JSON-RPC e resolve a requisição HTTP apenas quando captura o id da resposta JSON-RPC específico correspondente à requisição. Notificações (requisições sem um id) recebem uma resposta imediata 204 No Content.

Servidores de Contexto Integrados

Servidor MCP do GitHub
Visão Geral e Utilidade do Projeto

O servidor MCP do GitHub conecta nosso ambiente de desenvolvimento conteinerizado diretamente à API do GitHub. Ele permite que agentes de IA coordenem tarefas de controle de versão, gerenciem ciclos de vida de issues e realizem pesquisas de código ou revisões automatizadas de pull requests.

  • Upstream: http://elo-mcp-github:3001/github/sse
Registro de Ferramentas e Capacidades
  • search_repositories: Pesquisar repositórios que correspondam a uma consulta.
  • create_repository: Criar um novo repositório no GitHub.
  • search_code: Pesquisar trechos de código em repositórios.
  • search_issues: Pesquisar issues e pull requests.
  • search_commits: Pesquisar históricos de commits.
  • create_branch: Criar um novo branch no Git.
  • list_branches: Recuperar a lista de todos os branches no repositório.
  • update_pull_request_branch: Atualizar um branch de pull request para mantê-lo em sincronia com o base.
  • get_commit: Recuperar informações detalhadas para um commit específico.
  • list_commits: Listar commits em um branch.
  • get_tag: Obter detalhes de metadados para uma tag Git.
  • list_tags: Listar todas as tags em um repositório.
  • get_file_contents: Recuperar o conteúdo de um arquivo ou diretório específico.
  • create_or_update_file: Gravar ou atualizar um arquivo no repositório.
  • delete_file: Excluir um arquivo de um branch.
  • push_files: Commit e push de múltiplos arquivos em uma única transação.
  • issue_read: Visualizar detalhes de uma issue específica.
  • issue_write: Criar ou atualizar uma issue.
  • sub_issue_write: Adicionar relações de sub-issue.
  • add_issue_comment: Adicionar um comentário a uma issue ou pull request.
  • list_issues: Listar issues no repositório.
  • list_issue_types: Listar tipos de issues suportados.
  • pull_request_read: Visualizar detalhes de um pull request específico.
  • create_pull_request: Abrir um novo pull request.
  • update_pull_request: Atualizar metadados de um pull request.
  • list_pull_requests: Listar pull requests no repositório.
  • merge_pull_request: Fazer o merge de um pull request usando o método de merge especificado.
  • add_comment_to_pending_review: Adicionar comentários a uma revisão de pull request pendente.
  • add_reply_to_pull_request_comment: Responder a um comentário inline em uma revisão de pull request.
  • pull_request_review_write: Enviar uma revisão de pull request.
  • request_copilot_review: Solicitar uma revisão do GitHub Copilot.
  • assign_copilot_to_issue: Atribuir o GitHub Copilot para resolver uma issue.
  • get_latest_release: Obter a última release publicada.
  • get_release_by_tag: Recuperar uma release pela sua tag Git.
  • list_releases: Listar releases no repositório.
  • get_label: Obter informações sobre uma label de repositório.
  • list_repository_collaborators: Listar colaboradores de um repositório.
  • get_me: Obter informações sobre o usuário autenticado.
  • get_teams: Listar equipes na organização.
  • get_team_members: Listar membros de uma equipe específica.
  • fork_repository: Criar um fork de um repositório na sua conta.
Servidor MCP Context7
Visão Geral e Utilidade do Projeto

O servidor MCP Context7 faz a interface com a API Context7 para fornecer pesquisas de documentação em tempo real. Este é um mecanismo de contexto crítico para os agentes de IA consultarem as sintaxes de API mais recentes, padrões de uso e alterações de versão das nossas dependências principais (React 19, Fastify 5, Three.js) sem depender de dados de treinamento de modelo desatualizados.

  • Upstream: http://elo-mcp-context7:3002/context7/sse
Registro de Ferramentas e Capacidades
  • resolve-library-id: Resolve o nome de um pacote ou biblioteca para um ID exclusivo compatível com o Context7.
  • query-docs: Recupera seções de documentação atualizadas, métodos de API e exemplos de código para um ID de biblioteca resolvido.
Servidor MCP do Navegador (Playwright)
Visão Geral e Utilidade do Projeto

O servidor MCP do Navegador é uma instância do Google Chrome headless gerenciada via Playwright. Ele permite que os agentes de IA interajam diretamente com as interfaces web do projeto, viabilizando verificações de regressão visual, auditoria de erros no console, inspeção da árvore de acessibilidade e análise de requisições de rede em um sandbox totalmente conteinerizado.

  • Upstream: http://elo-mcp-browser:3003/browser/sse
  • Roteamento Host-para-Container: Reescreve automaticamente as URLs de destino apontando para localhost ou 127.0.0.1 para host.docker.internal para rotear as requisições com sucesso do container bridge para a máquina host (ex: acessando o Docusaurus na porta 3002 ou a app React na porta 5173).
Registro de Ferramentas e Capacidades
  • browser_navigate: Navegar para uma URL específica.
  • browser_navigate_back: Navegar de volta para a página anterior no histórico.
  • browser_wait_for: Pausar a execução até que um seletor específico ou estado da página seja resolvido.
  • browser_click: Simular o clique em um elemento DOM correspondente a um seletor.
  • browser_hover: Passar o ponteiro do mouse sobre um elemento específico.
  • browser_type: Digitar texto em um campo de entrada.
  • browser_fill_form: Preencher múltiplos campos de entrada em um formulário.
  • browser_select_option: Selecionar opções em um elemento select dropdown.
  • browser_press_key: Simular o pressionamento de uma tecla específica do teclado.
  • browser_drag: Arrastar um elemento e soltá-lo sobre outro elemento.
  • browser_drop: Soltar um arquivo ou elemento no local de destino.
  • browser_file_upload: Fazer o upload de um arquivo para um elemento de entrada de arquivo.
  • browser_take_screenshot: Capturar e salvar um screenshot do viewport da página atual.
  • browser_snapshot: Capturar um instantâneo do DOM da página ou da árvore de acessibilidade.
  • browser_console_messages: Recuperar logs e erros emitidos pelo console do navegador.
  • browser_network_requests: Listar todas as requisições de rede iniciadas pela página.
  • browser_network_request: Recuperar detalhes de uma requisição/resposta de rede específica.
  • browser_tabs: Listar abas ativas do navegador.
  • browser_handle_dialog: Aceitar, dispensar ou responder a popups de diálogo nativos do navegador.
  • browser_evaluate: Executar código JavaScript personalizado no contexto da página.
  • browser_run_code_unsafe: Executar código Node.js arbitrário dentro do sandbox do container.
  • browser_close: Fechar a instância do navegador.
  • browser_resize: Redimensionar as dimensões do viewport.
Servidor MCP Docker Hub
Visão Geral e Utilidade do Projeto

O servidor MCP do Docker Hub gerencia interações com o registro do Docker Hub. Ele permite que o sistema descubra imagens, verifique tags e inspecione metadados de repositórios de containers, garantindo que nossa infraestrutura de monorepo permaneça alinhada com as imagens de containers upstream.

  • Upstream: http://elo-mcp-dockerhub:3004/dockerhub/sse
Registro de Ferramentas e Capacidades
  • search: Pesquisar repositórios no Docker Hub.
  • getRepositoryInfo: Recuperar informações de metadados para um repositório específico.
  • updateRepositoryInfo: Atualizar detalhes de metadados de um repositório.
  • checkRepository: Verificar se um repositório existe no Docker Hub.
  • listRepositoryTags: Recuperar a lista de todas as tags de um repositório.
  • getRepositoryTag: Obter metadados detalhados para uma tag de imagem específica.
  • checkRepositoryTag: Verificar se existe uma tag de imagem específica.
  • listNamespaces: Listar namespaces acessíveis pelo usuário.
  • getPersonalNamespace: Obter o namespace pessoal do usuário autenticado.
  • listAllNamespacesMemberOf: Listar todas as organizações/namespaces dos quais o usuário é membro.
  • dockerHardenedImages: Buscar uma lista de imagens base recomendadas com segurança reforçada.