Desenvolvedores

Ferramentas MCP da Mira+

A Mira+ expõe um servidor MCP em /mcp. Assistentes como Claude, ChatGPT e Cursor conectam-se com a sua conta Mira+ via OAuth: o consentimento mostra exatamente quais escopos o aplicativo poderá acessar e todas as consultas respeitam a RLS do seu próprio usuário.

Escopos de consentimento

  • Ver sua assinatura assinatura:ler

    Plano atual, status, saldo de créditos, mensalidade e data de renovação.

  • Ver seu extrato de créditos creditos:ler

    Entradas e saídas de créditos, com motivo e data de cada lançamento.

  • Ver suas reservas reservas:ler

    Reservas em estúdios parceiros: data, status, créditos e estúdio.

  • Ver seus estúdios favoritos favoritos:ler

    Lista de estúdios parceiros marcados como favoritos por você.

  • Buscar estúdios da rede parceiros:buscar

    Consulta pública da rede de parceiros por nome, cidade, estado ou categoria.

Limites e auditoria

Cada ferramenta tem um limite de chamadas por janela de 60 segundos por usuário. Toda chamada é registrada com usuário, aplicativo, ferramenta, escopos, parâmetros (sem segredos) e resultado. O time Mira+ pode revogar o acesso de um aplicativo a qualquer momento — as chamadas seguintes são recusadas.

Ferramentas

Minha assinatura Mira+

minha_assinaturaSomente leitura

Plano, saldo de créditos e data de renovação da assinatura do usuário autenticado.

Escopos: assinatura:ler · Limite: 30 chamadas / 60s

“Quantos créditos Mira+ ainda tenho neste ciclo?”

Entrada: nenhum parâmetro.

Saída (structuredContent)

  • assinatura.plano string · obrigatório

    Plano contratado (ex.: the-edit, signature).

  • assinatura.status string · obrigatório

    Situação da assinatura.

  • assinatura.creditos_saldo number · obrigatório

    Créditos disponíveis agora.

  • assinatura.creditos_mensais number · obrigatório

    Créditos concedidos por ciclo.

  • assinatura.mensalidade_brl number · opcional

    Valor mensal em reais.

  • assinatura.renova_em string (ISO) · opcional

    Data da próxima renovação.

Exemplo de chamada

{
  "name": "minha_assinatura",
  "arguments": {}
}

Exemplo de resposta

{
  "assinatura": {
    "plano": "signature",
    "status": "ativa",
    "creditos_saldo": 42,
    "creditos_mensais": 120,
    "mensalidade_brl": 349,
    "renova_em": "2026-09-01T00:00:00Z"
  }
}

Extrato de créditos

meus_creditosSomente leitura

Movimentações de créditos do usuário, da mais recente para a mais antiga.

Escopos: creditos:ler · Limite: 30 chamadas / 60s

“Mostre meus últimos 5 lançamentos de créditos.”

Entrada

  • limite integer (1–100) · opcional

    Quantidade de lançamentos. Padrão 20.

Saída (structuredContent)

  • lancamentos[].delta number · obrigatório

    Créditos somados (+) ou consumidos (−).

  • lancamentos[].motivo string · obrigatório

    Origem do lançamento.

  • lancamentos[].booking_id uuid · opcional

    Reserva relacionada, quando houver.

  • lancamentos[].created_at string (ISO) · obrigatório

    Data do lançamento.

Exemplo de chamada

{
  "name": "meus_creditos",
  "arguments": {
    "limite": 5
  }
}

Exemplo de resposta

{
  "lancamentos": [
    {
      "id": "…",
      "delta": -12,
      "motivo": "reserva",
      "booking_id": "…",
      "created_at": "2026-08-10T14:02:00Z"
    }
  ]
}

Minhas reservas

minhas_reservasSomente leitura

Reservas do usuário em estúdios parceiros, opcionalmente filtradas por status.

Escopos: reservas:ler · Limite: 30 chamadas / 60s

“Quais reservas confirmadas eu tenho?”

Entrada

  • status string · opcional

    pendente, confirmada, concluida ou cancelada.

  • limite integer (1–100) · opcional

    Quantidade de reservas. Padrão 20.

Saída (structuredContent)

  • reservas[].inicio string (ISO) · obrigatório

    Início do atendimento.

  • reservas[].status string · obrigatório

    Situação da reserva.

  • reservas[].creditos number · obrigatório

    Créditos usados.

  • reservas[].organizations objeto · opcional

    Estúdio: nome, cidade e estado.

Exemplo de chamada

{
  "name": "minhas_reservas",
  "arguments": {
    "status": "confirmada",
    "limite": 10
  }
}

Exemplo de resposta

{
  "reservas": [
    {
      "id": "…",
      "inicio": "2026-08-20T13:00:00Z",
      "status": "confirmada",
      "creditos": 18,
      "organizations": {
        "nome": "Ateliê Aurora",
        "cidade": "São Paulo",
        "estado": "SP"
      }
    }
  ]
}

Meus estúdios favoritos

meus_favoritosSomente leitura

Estúdios parceiros marcados como favoritos pelo usuário autenticado.

Escopos: favoritos:ler · Limite: 30 chamadas / 60s

“Liste meus estúdios favoritos em São Paulo.”

Entrada: nenhum parâmetro.

Saída (structuredContent)

  • favoritos[].organizations.nome string · obrigatório

    Nome do estúdio.

  • favoritos[].organizations.categorias string[] · opcional

    Categorias atendidas.

  • favoritos[].created_at string (ISO) · obrigatório

    Quando foi favoritado.

Exemplo de chamada

{
  "name": "meus_favoritos",
  "arguments": {}
}

Exemplo de resposta

{
  "favoritos": [
    {
      "id": "…",
      "created_at": "2026-07-02T10:00:00Z",
      "organizations": {
        "id": "…",
        "nome": "Casa Lumière",
        "slug": "casa-lumiere",
        "cidade": "São Paulo",
        "estado": "SP",
        "categorias": [
          "cabelo"
        ]
      }
    }
  ]
}

Buscar estúdios parceiros

buscar_parceirosSomente leitura

Busca na rede Mira+ por nome, cidade, estado ou categoria.

Escopos: parceiros:buscar · Limite: 60 chamadas / 60s

“Encontre estúdios de unha em Belo Horizonte.”

Entrada

  • termo string · opcional

    Trecho do nome do estúdio.

  • cidade string · opcional

    Cidade do estúdio.

  • estado string (UF) · opcional

    Sigla do estado, ex.: SP.

  • categoria string · opcional

    cabelo, unha, estetica, barba ou massagem-spa.

  • limite integer (1–50) · opcional

    Quantidade de resultados. Padrão 20.

Saída (structuredContent)

  • parceiros[].nome string · obrigatório

    Nome do estúdio.

  • parceiros[].cidade string · opcional

    Cidade.

  • parceiros[].estado string · opcional

    UF.

  • parceiros[].categorias string[] · opcional

    Categorias atendidas.

Exemplo de chamada

{
  "name": "buscar_parceiros",
  "arguments": {
    "categoria": "unha",
    "cidade": "Belo Horizonte",
    "limite": 5
  }
}

Exemplo de resposta

{
  "parceiros": [
    {
      "id": "…",
      "nome": "Studio Vertex",
      "slug": "studio-vertex",
      "cidade": "Belo Horizonte",
      "estado": "MG",
      "categorias": [
        "unha"
      ]
    }
  ]
}