{
  "$schema": "https://webmachinelearning.github.io/webmcp/schema/catalog.json",
  "protocol": "WebMCP/1.0",
  "version": "1.0.0",
  "name": "Leque de Números - Gabinete de Contabilidade e Consultoria Fiscal (Matosinhos / Porto)",
  "description": "Catálogo estático de ferramentas e ações WebMCP da Leque de Números (NIF 509102352). Permite a agentes de IA e crawlers descobrir e executar simulações fiscais, validações de NIF e consultas sem necessidade de execução de scripts de página.",
  "authentication": {
    "type": "none",
    "required": false,
    "posture": "public",
    "description": "Acesso público aberto sem autenticação. Não são exigidas chaves de API nem credenciais OAuth."
  },
  "security": [],
  "public": true,
  "provider": {
    "name": "Leque de Números, Lda.",
    "brand": "Leque Contabilidade",
    "nif": "509102352",
    "occLicence": "Membro da Ordem dos Contabilistas Certificados",
    "address": "Praceta D. Nuno Álvares Pereira, 20, 4450-218 Matosinhos, Portugal",
    "phone": "+351 915 911 010",
    "email": "geral@lequedenumeros.pt",
    "website": "https://www.lequedenumeros.pt"
  },
  "tools": [
    {
      "name": "validate_nif",
      "description": "Valida matematicamente se um NIF ou NIPC português de 9 dígitos é autêntico através do algoritmo oficial de Módulo 11 da Autoridade Tributária.",
      "inputSchema": {
        "type": "object",
        "required": ["nif"],
        "properties": {
          "nif": {
            "type": "string",
            "description": "Número de 9 dígitos numéricos a validar (ex: 509102352)"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "validar_nif_portugues",
      "description": "Valida se um Número de Identificação Fiscal (NIF/NIPC) em Portugal é matematicamente autêntico através do algoritmo oficial de Módulo 11 da AT.",
      "inputSchema": {
        "type": "object",
        "required": ["nif"],
        "properties": {
          "nif": {
            "type": "string",
            "description": "Número de identificação fiscal com 9 dígitos numéricos"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "validate_portuguese_nif",
      "description": "Validates whether a 9-digit Portuguese tax number (NIF/NIPC) is mathematically valid under official Tax Authority Modulo 11 check.",
      "inputSchema": {
        "type": "object",
        "required": ["nif"],
        "properties": {
          "nif": {
            "type": "string",
            "description": "The 9-digit Portuguese tax ID number to validate"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "simulate_salary",
      "description": "Calcula o salário líquido mensal em Portugal para 2026, retenção na fonte de IRS, Segurança Social do trabalhador (11%) e encargo patronal (TSU 23,75%).",
      "inputSchema": {
        "type": "object",
        "required": ["grossMonthlySalary"],
        "properties": {
          "grossMonthlySalary": {
            "type": "number",
            "description": "Vencimento bruto mensal base em euros"
          },
          "maritalStatus": {
            "type": "string",
            "enum": ["solteiro", "casado_1_titular", "casado_2_titulares"],
            "description": "Estado civil fiscal do trabalhador"
          },
          "dependents": {
            "type": "integer",
            "description": "Número total de dependentes a cargo"
          },
          "mealAllowancePerDay": {
            "type": "number",
            "description": "Montante diário do subsídio de alimentação em euros"
          },
          "mealAllowanceType": {
            "type": "string",
            "enum": ["cartao", "numerario"],
            "description": "Modalidade do subsídio de alimentação: cartão ou numerário"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "simular_salario_liquido",
      "description": "Simula o salário líquido em Portugal (2026), retenção na fonte de IRS, Segurança Social (11% trabalhador) e custo total da empresa (TSU 23.75%).",
      "inputSchema": {
        "type": "object",
        "required": ["grossMonthlySalary"],
        "properties": {
          "grossMonthlySalary": {
            "type": "number",
            "description": "Salário bruto base mensal em euros"
          },
          "maritalStatus": {
            "type": "string",
            "enum": ["solteiro", "casado_1_titular", "casado_2_titulares"],
            "description": "Estado civil e número de titulares de rendimentos"
          },
          "dependents": {
            "type": "number",
            "description": "Número de dependentes a cargo"
          },
          "mealAllowancePerDay": {
            "type": "number",
            "description": "Valor diário do subsídio de refeição em euros"
          },
          "mealAllowanceType": {
            "type": "string",
            "enum": ["cartao", "numerario"],
            "description": "Modalidade: em cartão ou numerário"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "simulate_employee_salary",
      "description": "Simula o salário líquido de um trabalhador em Portugal e o custo real total suportado pela empresa (IRS, TSU 11%, TSU 23.75%, subsídio alimentação).",
      "inputSchema": {
        "type": "object",
        "required": ["grossMonthlySalary"],
        "properties": {
          "grossMonthlySalary": {
            "type": "number",
            "description": "Salário bruto base mensal em euros"
          },
          "maritalStatus": {
            "type": "string",
            "enum": ["solteiro", "casado_1_titular", "casado_2_titulares"],
            "description": "Estado civil fiscal"
          },
          "dependents": {
            "type": "number",
            "description": "Número de dependentes a cargo"
          },
          "mealAllowancePerDay": {
            "type": "number",
            "description": "Valor diário do subsídio de alimentação"
          },
          "mealAllowanceType": {
            "type": "string",
            "enum": ["cartao", "numerario"],
            "description": "Modalidade de pagamento do subsídio de alimentação"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "calculate_vat",
      "description": "Calcula o IVA em Portugal discriminando base líquida, montante de IVA e valor bruto pelas taxas legais (23%, 13%, 6% ou Isenção).",
      "inputSchema": {
        "type": "object",
        "required": ["amount"],
        "properties": {
          "amount": {
            "type": "number",
            "description": "Montante monetário em euros"
          },
          "vatRate": {
            "type": "number",
            "enum": [23, 13, 6, 0],
            "description": "Taxa percentual de IVA aplicável (23, 13, 6 ou 0)"
          },
          "isGross": {
            "type": "boolean",
            "description": "True se o montante fornecido já inclui IVA, False se for base tributável"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "simular_iva_portugal",
      "description": "Calcula o IVA em Portugal (Taxa Normal 23%, Intermédia 13%, Reduzida 6% ou Isenção), desdobrando valor líquido, imposto e total bruto.",
      "inputSchema": {
        "type": "object",
        "required": ["amount"],
        "properties": {
          "amount": {
            "type": "number",
            "description": "Montante em euros a calcular"
          },
          "vatRate": {
            "type": "number",
            "enum": [23, 13, 6, 0],
            "description": "Taxa de IVA percentual aplicável em Portugal Continental"
          },
          "isGross": {
            "type": "boolean",
            "description": "Indica se o montante fornecido já inclui o imposto"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "simulate_vat_calculation",
      "description": "Calcula o imposto sobre o valor acrescentado (IVA) discriminando base líquida, taxa e montante de imposto apurado.",
      "inputSchema": {
        "type": "object",
        "required": ["amount"],
        "properties": {
          "amount": {
            "type": "number",
            "description": "Valor monetário em euros"
          },
          "vatRate": {
            "type": "number",
            "description": "Taxa de IVA percentual aplicável (ex: 23, 13, 6, 0)"
          },
          "isGross": {
            "type": "boolean",
            "description": "Se o valor fornecido inclui IVA"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "simulate_freelancer_taxes",
      "description": "Simula o rendimento líquido anual e os encargos de IRS e Segurança Social para trabalhadores independentes e freelancers (Recibos Verdes).",
      "inputSchema": {
        "type": "object",
        "required": ["annualRevenue"],
        "properties": {
          "annualRevenue": {
            "type": "number",
            "description": "Faturação anual estimada em euros"
          },
          "activityType": {
            "type": "string",
            "enum": ["servicos_151", "outros_servicos", "vendas"],
            "description": "Classificação da atividade no CIRS"
          },
          "firstYearActivity": {
            "type": "boolean",
            "description": "Indica se se trata do primeiro ano de início de atividade"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "simular_recibos_verdes",
      "description": "Simula o rendimento líquido, retenção de IRS e contribuições para a Segurança Social de um Trabalhador Independente (Recibos Verdes / ENI) em Portugal.",
      "inputSchema": {
        "type": "object",
        "required": ["annualRevenue"],
        "properties": {
          "annualRevenue": {
            "type": "number",
            "description": "Faturação bruta anual estimada em euros"
          },
          "activityType": {
            "type": "string",
            "enum": ["servicos_151", "outros_servicos", "vendas"],
            "description": "Tipo de atividade (coeficiente 75%, 35% ou 15%)"
          },
          "firstYearActivity": {
            "type": "boolean",
            "description": "Se está no 1.º ano de início de atividade"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "get_company_profile",
      "description": "Devolve a identificação oficial completa da Leque de Números, NIF 509102352, acreditação OCC, morada em Matosinhos, contactos e serviços.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "obter_perfil_empresa",
      "description": "Obter perfil institucional, licença OCC, morada, contactos oficiais e áreas de atuação da Leque de Números - Gabinete de Contabilidade em Matosinhos e Porto.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "get_fiscal_calendar",
      "description": "Consulta as datas e prazos legais das obrigações fiscais e contributivas de Portugal para 2026 (SAF-T, IVA, IRC Modelo 22, IES, TSU).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "taxType": {
            "type": "string",
            "description": "Filtro opcional por tipo de imposto (ex: IVA, IRC, SAFT, TSU)"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "obter_calendario_fiscal",
      "description": "Consultar as datas e prazos das obrigações fiscais e declarativas oficiais em Portugal (SAF-T, IVA, TSU, Segurança Social, IRC Modelo 22, IES).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "taxType": {
            "type": "string",
            "description": "Filtrar por imposto (ex: IVA, IRC, SAF-T, Segurança Social, IRS)"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "list_accounting_services",
      "description": "Lista todos os serviços oficiais de contabilidade organizada, consultoria fiscal, processamento salarial e criação de empresas.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": ["all", "empresas", "freelancers", "fiscalidade", "rh", "setores", "startups"],
            "description": "Categoria específica de serviço a filtrar"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "listar_servicos_contabilidade",
      "description": "Listar todos os serviços de contabilidade certificada, fiscalidade, salários, constituição de empresas e consultoria disponíveis na Leque de Números.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "enum": ["all", "empresas", "freelancers", "fiscalidade", "rh", "setores", "startups"],
            "description": "Filtrar por categoria específica de serviço"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "estimate_monthly_retainer",
      "description": "Estima o valor indicativo de avença mensal de contabilidade e assessoria fiscal para uma empresa ou empresário em nome individual (ENI).",
      "inputSchema": {
        "type": "object",
        "required": ["companyType"],
        "properties": {
          "companyType": {
            "type": "string",
            "enum": ["lda", "unipessoal", "eni_organizada", "eni_simplificado", "startup", "holding"],
            "description": "Forma jurídica da empresa"
          },
          "monthlyInvoices": {
            "type": "number",
            "description": "Volume médio de documentos/faturas por mês"
          },
          "numberOfEmployees": {
            "type": "number",
            "description": "Número de colaboradores contratados para processamento de salários"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "estimar_avenca_mensal",
      "description": "Estimar o valor de avença mensal de contabilidade e assessoria fiscal para uma empresa ou empresário em nome individual (ENI).",
      "inputSchema": {
        "type": "object",
        "required": ["companyType"],
        "properties": {
          "companyType": {
            "type": "string",
            "enum": ["lda", "unipessoal", "eni_organizada", "eni_simplificado", "startup", "holding"],
            "description": "Forma jurídica da empresa"
          },
          "monthlyInvoices": {
            "type": "number",
            "description": "Volume médio de faturas/documentos por mês"
          },
          "numberOfEmployees": {
            "type": "number",
            "description": "Número de funcionários para processamento salarial"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "ask_accounting_assistant",
      "description": "Colocar uma questão fiscal ou de contabilidade à equipa e assistente da Leque de Números.",
      "inputSchema": {
        "type": "object",
        "required": ["question"],
        "properties": {
          "question": {
            "type": "string",
            "description": "A dúvida contabilística ou fiscal em linguagem natural"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "consultor_fiscal_leque",
      "description": "Colocar uma questão fiscal ou de contabilidade à Leque de Números (taxas de IRC, deduções, IRS, SAF-T, constituição de empresas).",
      "inputSchema": {
        "type": "object",
        "required": ["question"],
        "properties": {
          "question": {
            "type": "string",
            "description": "A questão fiscal ou contabilística a esclarecer"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "request_consultation",
      "description": "Submete um pedido oficial de contacto ou proposta de serviços contabilísticos à equipa da Leque de Números.",
      "inputSchema": {
        "type": "object",
        "required": ["name", "email", "message"],
        "properties": {
          "name": {
            "type": "string",
            "description": "Nome completo do interessado ou empresa"
          },
          "email": {
            "type": "string",
            "description": "Email para resposta ou envio da proposta"
          },
          "phone": {
            "type": "string",
            "description": "Telefone de contacto em Portugal"
          },
          "serviceType": {
            "type": "string",
            "enum": ["contabilidade_pme", "abertura_empresa", "consultoria_fiscal", "recibos_verdes", "tvde_alojamento"],
            "description": "Área de serviço pretendida"
          },
          "message": {
            "type": "string",
            "description": "Breve descrição da atividade, volume de faturação ou questão fiscal"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "consequentialHint": true
      }
    },
    {
      "name": "pedir_contacto",
      "description": "Submeter um pedido de proposta de contabilidade ou agendamento de reunião inicial gratuita com Contabilistas Certificados da Leque de Números.",
      "inputSchema": {
        "type": "object",
        "required": ["fullName", "email", "phone"],
        "properties": {
          "fullName": {
            "type": "string",
            "description": "Nome completo do responsável ou contacto"
          },
          "email": {
            "type": "string",
            "description": "Endereço de email válido para envio da proposta"
          },
          "phone": {
            "type": "string",
            "description": "Número de telefone ou telemóvel de contacto"
          },
          "nif": {
            "type": "string",
            "description": "NIF da empresa ou particular (opcional)"
          },
          "message": {
            "type": "string",
            "description": "Mensagem ou detalhes da atividade da empresa"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "consequentialHint": true
      }
    },
    {
      "name": "submit_consultation_request",
      "description": "Submeter pedido de proposta de contabilidade ou reunião inicial com Contabilistas Certificados.",
      "inputSchema": {
        "type": "object",
        "required": ["fullName", "email", "phone"],
        "properties": {
          "fullName": {
            "type": "string",
            "description": "Nome do requerente ou empresa"
          },
          "email": {
            "type": "string",
            "description": "Email de contacto"
          },
          "phone": {
            "type": "string",
            "description": "Telefone para contacto"
          },
          "message": {
            "type": "string",
            "description": "Mensagem com especificidades do negócio"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "consequentialHint": true
      }
    },
    {
      "name": "get_page_context",
      "description": "Obter o contexto da página atual (URL, título, descrição, formulários e ferramentas disponíveis).",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "obter_contexto_pagina",
      "description": "Obter o contexto da página atual (URL, título, meta descrição, cabeçalhos e formulários disponíveis).",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    },
    {
      "name": "obter_informacoes_contacto",
      "description": "Obter números de telefone, email de apoio, morada física em Matosinhos e horários da Leque de Números.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "consequentialHint": false
      }
    }
  ]
}
