{
  "$schema": "https://modelcontextprotocol.io/schema/server-card.json",
  "name": "BriefApp TechConsult Contability MCP Server",
  "description": "Servidor oficial Model Context Protocol (MCP) do BriefApp TechConsult Contability. Fornece ferramentas autônomas para agentes de IA (Claude, Cursor, Antigravity, Windsurf): pipelines de dados Medallion (Bronze/Silver/Gold), motor de Generative + UI com relatórios ECharts interativos, formulários dinâmicos SQLite com auditoria, RAG contábil via LanceDB e DuckDB OLAP.",
  "version": "2.4.0",
  "protocolVersion": "2024-11-05",
  "homepage": "https://fm.brief.app.br/techconsult/",
  "documentation": "https://fm.brief.app.br/techconsult/docs.php",
  "repository": {
    "type": "git",
    "url": "https://github.com/qweralfredo/tech-consult-contability"
  },
  "publisher": {
    "name": "BriefApp Tecnologia",
    "email": "dev@brief.app.br",
    "url": "https://fm.brief.app.br/techconsult/"
  },
  "transport": {
    "type": "streamable-http",
    "endpoint": "http://localhost:58180/mcp"
  },
  "testing": {
    "status": "supported",
    "sandboxUrl": "https://fm.brief.app.br/techconsult/api/sandbox.php",
    "healthUrl": "https://fm.brief.app.br/techconsult/health.php",
    "mockMode": true,
    "dryRunSupported": true
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    },
    "resources": {
      "subscribe": false,
      "listChanged": false
    }
  },
  "tools": [
    {
      "name": "get_gold_catalog",
      "description": "Retorna o catálogo de tabelas e visões analíticas prontas e homologadas na camada Gold. Invocação mandatória antes de gerar relatórios para evitar reprocessamento de dados brutos.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Identificador único da empresa cliente."
          }
        },
        "required": ["clientId"],
        "additionalProperties": false
      }
    },
    {
      "name": "query_gold_catalog",
      "description": "Executa consulta SQL estritamente SELECT/WITH sobre tabelas da camada Gold.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Identificador da empresa cliente."
          },
          "query": {
            "type": "string",
            "description": "Instrução SQL SELECT/WITH."
          }
        },
        "required": ["clientId", "query"],
        "additionalProperties": false
      }
    },
    {
      "name": "generate_live_report",
      "description": "Generative + UI: Constrói dashboard executivo dinâmico com Apache ECharts com dados ao vivo da camada Gold.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Identificador da empresa cliente."
          },
          "title": {
            "type": "string",
            "description": "Título do relatório executivo."
          },
          "theme": {
            "type": "string",
            "description": "Tema visual do dashboard."
          },
          "charts": {
            "type": "array",
            "items": { "type": "string" },
            "description": "Lista de identificadores de gráficos (ex: waterfall, stacked_bar, line_trend)."
          },
          "enableDrilldown": {
            "type": "boolean",
            "description": "Habilita drilldown analítico por clique."
          }
        },
        "required": ["clientId", "title"],
        "additionalProperties": false
      }
    },
    {
      "name": "generate_report_html",
      "description": "Generative + UI: Gera um relatório HTML snapshot consolidado com tema corporativo injetado.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Identificador da empresa cliente."
          },
          "title": {
            "type": "string",
            "description": "Título do relatório."
          },
          "data": {
            "type": "object",
            "description": "Estrutura de dados contábeis consolidados."
          }
        },
        "required": ["clientId", "title", "data"],
        "additionalProperties": false
      }
    },
    {
      "name": "generate_form",
      "description": "Gera sob demanda um novo formulário de coleta contábil com schema em SQLite com auditoria.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Identificador da empresa cliente."
          },
          "formName": {
            "type": "string",
            "description": "Nome da tabela/formulário a criar."
          },
          "schema": {
            "type": "array",
            "items": { "type": "object" },
            "description": "Lista de definições de campos."
          }
        },
        "required": ["clientId", "formName", "schema"],
        "additionalProperties": false
      }
    },
    {
      "name": "auto_route_file",
      "description": "Analisa o schema de um arquivo contábil bruto para determinar e executar o pipeline Bronze adequado.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Identificador da empresa cliente."
          },
          "filePath": {
            "type": "string",
            "description": "Caminho do arquivo no MinIO."
          }
        },
        "required": ["clientId", "filePath"],
        "additionalProperties": false
      }
    },
    {
      "name": "add_dq_rule",
      "description": "Adiciona uma regra de Data Quality para validação e auditoria da camada Silver.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Identificador da empresa cliente."
          },
          "tableName": {
            "type": "string",
            "description": "Tabela da camada Silver."
          },
          "ruleType": {
            "type": "string",
            "description": "Tipo da regra: not_null, regex, balance_debit_credit, range."
          },
          "columnName": {
            "type": "string",
            "description": "Coluna avaliada."
          }
        },
        "required": ["clientId", "tableName", "ruleType", "columnName"],
        "additionalProperties": false
      }
    },
    {
      "name": "search_financial_data",
      "description": "Busca semântica no acervo documental de extratos e notas fiscais com LanceDB e Apache Tika.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Identificador da empresa cliente."
          },
          "query": {
            "type": "string",
            "description": "Termo de busca em linguagem natural."
          },
          "limit": {
            "type": "integer",
            "description": "Quantidade máxima de fragmentos retornados."
          }
        },
        "required": ["clientId", "query"],
        "additionalProperties": false
      }
    },
    {
      "name": "set_client_theme",
      "description": "Configura a identidade visual white-label da empresa (cores primária/secundária, logotipo, fontes).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Identificador da empresa cliente."
          },
          "theme": {
            "type": "object",
            "description": "Objeto com companyName, primaryColor, secondaryColor, logoUrl, fontFamily."
          }
        },
        "required": ["clientId", "theme"],
        "additionalProperties": false
      }
    },
    {
      "name": "get_system_status",
      "description": "Verifica a integridade operacional de todos os subsistemas do TechConsult: MinIO, LanceDB, SQLite, DuckDB e Tika.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
  ]
}
