Ir para o conteúdo

Integração MCP (acesso para ferramentas de IA)

O Turbo EA inclui um servidor MCP (Model Context Protocol) integrado que permite que ferramentas de IA — como Claude Desktop, GitHub Copilot, Cursor e VS Code — consultem seus dados de EA diretamente. Os usuários se autenticam através do provedor SSO existente, e cada consulta respeita suas permissões individuais.

Este recurso é opcional e não inicia automaticamente. Requer que o SSO esteja configurado, que o perfil MCP esteja ativado no Docker Compose e que um administrador o ative na interface de configurações.


Como funciona

Ferramenta de IA (Claude, Copilot, etc.)
    │
    │  Protocolo MCP (HTTP + SSE)
    ▼
Servidor MCP do Turbo EA (:8001, interno)
    │
    │  OAuth 2.1 com PKCE
    │  delega ao provedor SSO
    ▼
Backend do Turbo EA (:8000)
    │
    │  RBAC por usuário
    ▼
PostgreSQL
  1. Um usuário adiciona a URL do servidor MCP à sua ferramenta de IA.
  2. Na primeira conexão, a ferramenta abre uma janela do navegador para autenticação SSO.
  3. Após o login, o servidor MCP emite seu próprio token de acesso (respaldado pelo JWT do Turbo EA do usuário).
  4. A ferramenta de IA usa este token para todas as solicitações subsequentes. Os tokens se renovam automaticamente.
  5. Cada consulta passa pelo sistema de permissões normal do Turbo EA — os usuários só veem os dados aos quais têm acesso.

Pré-requisitos

Antes de habilitar o MCP, você deve ter:

  • SSO configurado e funcionando — O MCP delega a autenticação ao seu provedor SSO (Microsoft Entra ID, Google Workspace, Okta ou OIDC genérico). Consulte o guia de Autenticação e SSO.
  • HTTPS com um domínio público — O fluxo OAuth requer uma URI de redirecionamento estável. Implante atrás de um proxy reverso com terminação TLS (Caddy, Traefik, Cloudflare Tunnel, etc.).

Configuração

Passo 1: Iniciar o serviço MCP

O servidor MCP é um perfil opcional do Docker Compose. Adicione --profile mcp ao seu comando de inicialização:

docker compose --profile mcp up --build -d

Isso inicia um container Python leve (porta 8001, apenas interno) junto ao backend e frontend. O Nginx redireciona automaticamente as solicitações /mcp/ para ele.

Passo 2: Configurar variáveis de ambiente

Adicione estas ao seu arquivo .env:

TURBO_EA_PUBLIC_URL=https://seu-dominio.exemplo.com
MCP_PUBLIC_URL=https://seu-dominio.exemplo.com/mcp
Variável Padrão Descrição
TURBO_EA_PUBLIC_URL http://localhost:8920 A URL pública da sua instância Turbo EA
MCP_PUBLIC_URL http://localhost:8920/mcp A URL pública do servidor MCP (usada nas URIs de redirecionamento OAuth)
MCP_PORT 8001 Porta interna do container MCP (raramente precisa de alteração)

Passo 3: Adicionar a URI de redirecionamento OAuth ao seu aplicativo SSO

No registro de aplicativo do seu provedor SSO (o mesmo que você configurou para o login do Turbo EA), adicione esta URI de redirecionamento:

https://seu-dominio.exemplo.com/mcp/oauth/callback

Isso é necessário para o fluxo OAuth que autentica os usuários quando se conectam a partir da ferramenta de IA.

Passo 4: Habilitar MCP nas configurações de administração

  1. Vá para Configurações na área de administração e selecione a aba AI.
  2. Role até a seção Integração MCP (Acesso a ferramentas de IA).
  3. Ative o interruptor para habilitar o MCP.
  4. A interface mostrará a URL do servidor MCP e instruções de configuração para compartilhar com sua equipe.

Warning

O interruptor fica desabilitado se o SSO não estiver configurado. Configure o SSO primeiro.


Conectar ferramentas de IA

Uma vez habilitado o MCP, compartilhe a URL do servidor MCP com sua equipe. Cada usuário a adiciona à sua ferramenta de IA:

Claude Desktop

  1. Abra Configurações > Conectores > Adicionar conector personalizado.
  2. Insira a URL do servidor MCP: https://seu-dominio.exemplo.com/mcp
  3. Clique em Conectar — uma janela do navegador abre para o login SSO.
  4. Após a autenticação, o Claude pode consultar seus dados de EA.

VS Code (GitHub Copilot / Cursor)

Adicione ao .vscode/mcp.json do seu workspace:

{
  "servers": {
    "turbo-ea": {
      "type": "http",
      "url": "https://seu-dominio.exemplo.com/mcp/mcp"
    }
  }
}

O duplo /mcp/mcp é intencional — o primeiro /mcp/ é o caminho do proxy Nginx, o segundo é o endpoint do protocolo MCP.


Teste local (modo stdio)

Para desenvolvimento local ou testes sem SSO/HTTPS, você pode executar o servidor MCP em modo stdio — o Claude Desktop o inicia diretamente como processo local.

1. Instalar o pacote do servidor MCP:

pip install ./mcp-server

2. Adicionar à configuração do Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "turbo-ea": {
      "command": "python",
      "args": ["-m", "turbo_ea_mcp", "--stdio"],
      "env": {
        "TURBO_EA_URL": "http://localhost:8000",
        "TURBO_EA_EMAIL": "seu@email.com",
        "TURBO_EA_PASSWORD": "sua-senha"
      }
    }
  }
}

Neste modo, o servidor se autentica com email/senha e renova o token automaticamente em segundo plano.


Capacidades disponíveis

O servidor MCP fornece acesso somente leitura aos dados de EA. Ele não pode criar, modificar ou excluir nada.

Ferramentas

Ferramenta Descrição
search_cards Pesquisar e filtrar cards por tipo, status ou texto livre
get_card Obter detalhes completos de um card por UUID
get_card_relations Obter todas as relações conectadas a um card
get_card_hierarchy Obter ancestrais e filhos de um card
list_card_types Listar todos os tipos de card no metamodelo
get_relation_types Listar tipos de relação, opcionalmente filtrados por tipo de card
get_dashboard Obter dados do painel de KPIs (contagens, qualidade de dados, aprovações)
get_landscape Obter cards agrupados por um tipo relacionado

Recursos

URI Descrição
turbo-ea://types Todos os tipos de card no metamodelo
turbo-ea://relation-types Todos os tipos de relação
turbo-ea://dashboard KPIs do painel e estatísticas resumidas

Prompts guiados

Prompt Descrição
analyze_landscape Análise em várias etapas: visão geral do painel, tipos, relações
find_card Pesquisar um card por nome, obter detalhes e relações
explore_dependencies Mapear as dependências de um card

Permissões

Papel Acesso
Administrador Configurar ajustes MCP (permissão admin.mcp)
Todos os usuários autenticados Consultar dados de EA através do servidor MCP (respeita suas permissões existentes no nível de card e aplicação)

A permissão admin.mcp controla quem pode gerenciar as configurações de MCP. Está disponível apenas para o papel de Administrador por padrão. Papéis personalizados podem receber esta permissão através da página de administração de Papéis.

O acesso a dados através do MCP segue o mesmo modelo RBAC da interface web — não há permissões de dados específicas do MCP.


Segurança

  • Autenticação delegada por SSO: Os usuários se autenticam através do provedor SSO corporativo. O servidor MCP nunca vê ou armazena senhas.
  • OAuth 2.1 com PKCE: O fluxo de autenticação utiliza Proof Key for Code Exchange (S256) para prevenir a interceptação de códigos de autorização.
  • RBAC por usuário: Cada consulta MCP é executada com as permissões do usuário autenticado. Sem contas de serviço compartilhadas.
  • Acesso somente leitura: O servidor MCP só pode ler dados. Não pode criar, atualizar ou excluir cards, relações ou quaisquer outros recursos.
  • Rotação de tokens: Tokens de acesso expiram após 1 hora. Tokens de renovação duram 30 dias. Códigos de autorização são de uso único e expiram após 10 minutos.
  • Porta apenas interna: O container MCP expõe a porta 8001 apenas na rede Docker interna. Todo acesso externo passa pelo proxy reverso Nginx.

Solução de problemas

Problema Solução
O interruptor MCP está desabilitado nas configurações O SSO deve ser configurado primeiro. Vá para Configurações > aba Autenticação e configure um provedor SSO.
«host not found» nos logs do Nginx O serviço MCP não está em execução. Inicie-o com docker compose --profile mcp up -d. A configuração do Nginx lida com isso de forma elegante (resposta 502, sem queda).
O callback OAuth falha Verifique se adicionou https://seu-dominio.exemplo.com/mcp/oauth/callback como URI de redirecionamento no registro do aplicativo SSO.
A ferramenta de IA não consegue conectar Verifique se MCP_PUBLIC_URL corresponde à URL acessível a partir da máquina do usuário. Certifique-se de que o HTTPS está funcionando.
O usuário obtém resultados vazios O MCP respeita as permissões RBAC. Se um usuário tem acesso restrito, verá apenas os cards que seu papel permite.
A conexão cai após 1 hora A ferramenta de IA deveria lidar com a renovação de tokens automaticamente. Caso contrário, reconecte.