Cobre: calendarios, event types, reservas (listar/detalhe/mudar estado/reenviar confirmacao), actividade, disponibilidade, reports, definicoes gerais, anfitrioes, estado do plugin/licenca Pro. 15 tools via REST API real com Application Password (nao SSH/SQL como mcp-bit-social - o FluentBooking regista register_rest_route com permission_callback por capability). Testado ponta-a-ponta em producao 19-08-2026, incluindo escrita sem mutar dados reais (422 'No changes found' do proprio plugin). references/api-reference.md com os endpoints/filtros/enums confirmados e references/diagnostics.md com o playbook de uso (agenda, cancelamento, health check).
3.0 KiB
FluentBooking — playbook de diagnóstico
"Quem marcou uma reunião?" / ver a agenda
fb_list_bookings({period: "upcoming"}) para o que vem aí (omitir period já faz isto por
omissão). Para histórico completo (incluindo já realizadas/canceladas), usar
fb_list_bookings({period: "all"}) — omitir period NUNCA mostra o histórico, só o que
ainda não aconteceu. Filtrar por convidado com email ou search (nome).
Cada resultado já traz location_details (link da reunião online), custom_form_data (respostas
ao formulário de marcação — telefone, empresa, cargo, conforme configurado no event type) e
source_url (de que página do site veio a marcação).
Cancelar ou reagendar uma reunião
Cancelar: fb_update_booking_status({booking_id, status: "cancelled", cancel_reason: "..."}) —
dispara o email de cancelamento ao convidado automaticamente, não é preciso fazer mais nada.
refund_payment: true só faz sentido se a reserva tiver payment_method associado (evento pago).
Reagendar não é uma tool deste MCP — a reserva tem um reschedule_url próprio
(https://descomplicar.pt/?fluent-booking=booking&meeting_hash=...&type=reschedule) que o
convidado usa directamente; não há endpoint admin para reatribuir hora sem passar por aí.
Marcar como "não compareceu" / concluída manualmente
fb_update_booking_status({booking_id, status: "no_show"}) ou status: "completed". Sem motivo
associado (cancel_reason/reject_reason só se aplicam a cancelled/rejected).
Reenviar confirmação a um convidado
fb_send_confirmation_email({booking_id}) — só se o convidado pedir explicitamente ou perdeu o
email original. Dispara um envio real; não usar para "confirmar que a tool funciona".
fb_list_bookings devolve vazio
Quase sempre é o period por omissão (upcoming) sem reservas futuras — confirmar com
fb_get_reports (overview mostra o total histórico) antes de assumir que a agenda está vazia; se
o total for >0 mas upcoming vier vazio, repetir com period: "all".
Investigar uma reunião específica em detalhe
fb_get_booking({booking_id}) para os dados completos, depois fb_list_activities({booking_id})
para a timeline (emails de lembrete enviados, mudanças de estado, quem cancelou e porquê — o
created_by fica null quando a acção foi automática/pelo sistema).
Health check rápido
fb_get_plugin_status (versões + licença Pro) + fb_get_reports (totais) — dois tools sem
argumentos para um snapshot inicial. fb_list_hosts confirma que anfitriões têm calendário activo
antes de investigar "porque é que ninguém consegue marcar reunião com X".
Fora do âmbito deste MCP (fazer via wp-admin)
- Criar uma reserva em nome de alguém (payload de slots dinâmico, risco de email indevido).
- Gerir equipa/permissões, métodos de pagamento, integrações Zoom/Google Calendar/CalDAV, SMS (Twilio), webhooks, cupões.
- Activar/desactivar a licença Pro (
fb_get_plugin_statusé read-only).