{
  "serverInfo": {
    "name": "riffas",
    "version": "1.0.0",
    "title": "Riffas — rifas online",
    "description": "Leitura pública do Riffas: buscar rifas ativas, detalhar uma rifa, listar categorias, consultar a tabela de taxas de ativação e simular a arrecadação de uma rifa.",
    "websiteUrl": "https://riffas.com.br",
    "documentationUrl": "https://riffas.com.br/docs/api"
  },
  "protocolVersion": "2025-06-18",
  "endpoint": "https://riffas.com.br/mcp",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://riffas.com.br/mcp"
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "tools": [
    {
      "name": "search_raffles",
      "title": "Buscar rifas ativas",
      "description": "Busca rifas públicas e ativas no Riffas por termo, categoria ou modalidade. Retorna título, link, preço por número, quantidade de números e o produtor de cada rifa.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "description": "Termo de busca no título/descrição da rifa (até 100 caracteres)."
          },
          "category_id": {
            "type": "string",
            "description": "UUID da categoria, obtido em list_raffle_categories."
          },
          "modality": {
            "type": "string",
            "description": "Modalidade da rifa: classic (comprador escolhe o número) ou quick (número automático)."
          },
          "sort": {
            "type": "string",
            "description": "Ordenação do resultado.",
            "enum": [
              "recent",
              "ending_soon",
              "price_asc",
              "price_desc"
            ]
          },
          "per_page": {
            "type": "integer",
            "description": "Quantidade de rifas por página (1 a 50).",
            "minimum": 1,
            "maximum": 50,
            "default": 12
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "get_raffle",
      "title": "Detalhar uma rifa",
      "description": "Retorna os dados públicos de uma rifa específica a partir do slug (o trecho final da URL /rifa/<slug>): prêmio, preço, quantidade de números, data e método de sorteio.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Slug da rifa, como aparece em app.riffas.com.br/rifa/<slug>."
          }
        },
        "required": [
          "slug"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "list_raffle_categories",
      "title": "Listar categorias de rifa",
      "description": "Lista as categorias ativas de rifa no Riffas, com id e slug — use o id em search_raffles para filtrar.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    },
    {
      "name": "list_pricing_tiers",
      "title": "Consultar tabela de preços",
      "description": "Retorna a tabela oficial de taxas de ativação do Riffas por faixa de quantidade de números. A taxa é fixa por rifa publicada, não há percentual sobre vendas e ONGs verificadas são isentas.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    },
    {
      "name": "estimate_raffle_revenue",
      "title": "Simular arrecadação de uma rifa",
      "description": "Simula a arrecadação de uma rifa no Riffas: informe o preço por número e a quantidade de números para receber o total arrecadado, a taxa fixa de ativação da faixa correspondente e o valor líquido. Não considera as taxas do gateway do produtor.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticket_price_brl": {
            "type": "number",
            "description": "Preço de cada número, em reais (ex.: 10.5 para R$ 10,50).",
            "minimum": 0.01,
            "maximum": 100000
          },
          "ticket_count": {
            "type": "integer",
            "description": "Quantidade total de números da rifa.",
            "minimum": 1,
            "maximum": 1000000
          },
          "sell_through_percent": {
            "type": "number",
            "description": "Percentual de números que você espera vender (1 a 100). Padrão: 100.",
            "minimum": 1,
            "maximum": 100,
            "default": 100
          },
          "is_verified_ngo": {
            "type": "string",
            "description": "Informe \"true\" se o produtor é uma ONG verificada (isenta da taxa de ativação).",
            "enum": [
              "true",
              "false"
            ],
            "default": "false"
          }
        },
        "required": [
          "ticket_price_brl",
          "ticket_count"
        ],
        "additionalProperties": false
      }
    }
  ],
  "authentication": {
    "required": false,
    "description": "As ferramentas expõem apenas dado público e não exigem credencial. Acesso autenticado à API é descrito em /auth.md."
  },
  "contact": {
    "email": "contato@riffas.com.br",
    "instructions": "https://riffas.com.br/auth.md"
  }
}
