Files
ealmeida eae213c7f0 feat(wordpress): nova skill mcp-fluent-booking - MCP dedicado FluentBooking/FluentBooking Pro
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).
2026-08-19 05:29:42 +01:00

5.2 KiB

name, description, layer
name description layer
mcp-fluent-booking MCP dedicado (node stdio, ligação `fluent-booking` em ~/.omp/agent/mcp.json) para o FluentBooking/FluentBooking Pro (WPManageNinja) em descomplicar.pt — a agenda de marcação de reuniões (`/marcar-reuniao/`). Calendários, reservas/marcações, disponibilidade, reports, cancelar/reagendar. Usar quando "fluent booking", "marcações", "reuniões agendadas", "quem marcou reunião", "cancelar reserva", "reagendar reunião", "disponibilidade calendário", "reservas fluentbooking", "reenviar confirmação de reunião", "licença fluent booking pro". wiki

/mcp-fluent-booking — MCP dedicado FluentBooking / FluentBooking Pro

Projecto em /media/ealmeida/Dados/Dev/mcp-fluent-booking/ (TypeScript, SDK MCP oficial, stdio). Ao contrário de mcp-bit-social/mcp-element-pack, não usa SSH/WP-CLI para os dados de negócio — o FluentBooking regista uma REST API real (register_rest_route sob fluent-booking/v2, confirmado em vendor/wpfluent/framework/.../Route.php) com permission_callback baseado em capabilities (current_user_can), não em nonce de sessão wp-admin. Autentica com uma Application Password WordPress (Basic Auth), e cada escrita passa pela lógica de negócio real do plugin (emails, activity log, side-effects de pagamento) em vez de um UPDATE SQL directo.

Auth

Application Password dedicada (utilizador ealmeida, nome mcp-fluent-booking), guardada só no env: da ligação MCP (~/.omp/agent/mcp.json) — nunca em ficheiro commitado. Revogar em WordPress → Utilizadores → perfil → Application Passwords se deixar de ser necessária. Recriar com wp user application-password create ealmeida mcp-fluent-booking --porcelain.

Tools (15)

Estado (read-only):

  • fb_get_plugin_status — versões free/pro (via WP-CLI, único tool que ainda usa SSH — a API não expõe versão) + estado da licença Pro (via API).

Calendários e event types (read-only):

  • fb_list_calendars / fb_get_calendar — páginas de agendamento por anfitrião.
  • fb_get_event — um tipo de evento (ex.: "Diagnóstico Digital Gratuito, 30min").

Reservas — o domínio principal:

  • fb_list_bookings (read-only) — filtros period (upcoming/completed/cancelled/pending/ no_show/latest_bookings/all), calendar_id, event_id, event_type, email, search, intervalo de datas, paginação. period por omissão é upcoming — usar all para histórico.
  • fb_get_booking (read-only) — reserva completa: convidado, campos de formulário custom, local, pagamento.
  • fb_list_activities (read-only) — timeline de uma reserva (booking_id) ou log do site inteiro (sem argumento).
  • fb_update_booking_status (write) — muda status para scheduled|completed|cancelled|rejected|no_show pela API real (PUT /schedules/{id}, column=status). Único caminho de escrita de estado; dispara os efeitos correctos do plugin (email de cancelamento com cancel_reason, log de actividade, marcação de pagamento).
  • fb_send_confirmation_email (write) — reenvia o email de confirmação a um convidado real. Envia um email de verdade — usar com intenção, nunca para "testar".

Disponibilidade e reports (read-only):

  • fb_list_availability_schedules / fb_get_availability_schedule — templates de horário semanal reutilizáveis entre event types.
  • fb_get_reports — overview (totais, últimas reservas).
  • fb_get_graph_reports — série temporal (reservas/concluídas/canceladas por dia), intervalo date_from/date_to opcional.
  • fb_get_general_settings — moeda, remetente de email, cancelamento automático.
  • fb_list_hosts — utilizadores WordPress com calendário próprio.

Fora do âmbito

Equipa/permissões, métodos de pagamento, integrações Zoom/Google/CalDAV, Twilio SMS, webhooks, cupões, activação/desactivação de licença — gestão de credenciais/integrações externas fica no wp-admin. Criar reservas em nome de alguém (POST /bookings/create/{event_id}) também fica fora: o payload depende de slots computados dinamicamente e uma reserva mal formada dispara emails reais a um convidado.

Segurança

fb_send_confirmation_email e o ramo cancelled/rejected de fb_update_booking_status disparam emails reais a convidados verdadeiros — nunca invocar como "teste". Verificação sem mutação real: mudar um booking para o estado que já tem devolve 422 "No changes found" do próprio plugin (confirma o caminho de escrita sem alterar nada).

Verificação

Construído e testado ponta-a-ponta contra produção 19-08-2026: as 15 tools exercitadas com dados reais (1 calendário, 39 reservas no histórico, licença Pro "Agency License" válida), incluindo o caso 422 "No changes found" acima (escrita testada sem mutar dados reais) e 404 correcto em id inexistente (fb_get_booking, fb_send_confirmation_email).

Recursos adicionais

  • references/api-reference.md — endpoints REST completos, filtros (period, author, range), enums, forma real das respostas (booking, calendar, event, availability).
  • references/diagnostics.md — playbook: quem marcou uma reunião, cancelar/reagendar correctamente, health check rápido, o que fazer quando fb_list_bookings devolve vazio.