PILOT

MCP server for an AI assistant

SaaS for booking automation via Instagram Direct

⏱ 2 years 👤 Solo full-stack + AI 🌍 SaaS · Booking automation Demo on request

Context

Pilot — SaaS for businesses that take bookings via Instagram Direct: beauty salons, barbershops, clinics, trainers, consultants, tutors, specialists. Owners connect their Instagram, the AI assistant intercepts DMs from customers — chats, advises, books appointments, creates customers in CRM, reschedules, cancels.

The platform supports networks with multiple locations and dozens of staff with their own service sets.

My role: solo full-stack + AI — from architecture to production. One developer for the entire stack: backend, MCP layer, integrations with CRM/Instagram/Google Calendar/Telegram, infrastructure, deployment.

Problem

Before Pilot I worked as a media buyer and saw the same problem at business clients: managers leak leads.

For small businesses this often doesn't pay off. The owner either pays for a mediocre service, or sits in Direct themselves instead of running the business.

Capabilities

Under the hood — an MCP server with 8 production tools that the LLM agent calls for real actions in CRM.

Deployment flexibility

The system scales from a single specialist to a salon network — with the same codebase.

Solo specialist within a salon

Has their own personal Instagram. Customers DM the specialist directly, the bot logs into the salon CRM.

Solo freelancer (no salon)

Independent specialist working alone. No CRM needed — the bot books directly into Google Calendar, which syncs with Apple Calendar.

Single salon

Integration with CRM + calendars of all staff. The bot knows everyone's schedule and skill set.

Salon network

Multiple locations under one brand, their own CRM, their own staff, their own pricing per location. Even at scale, the assistant keeps in mind every specialist at every location, what services each provides, schedules and prices — and navigates fluidly thanks to smart context.

// system

Architecture

live
Instagram Direct
customer DM
webhook
Meta Graph API
Multi-tenant Backend
FastAPI · Flask · async
Per-tenant
storage
LLM Agent
function calling · vision
MCP Server
8 production tools
CRM
booking
Google Calendar
slots
Telegram Bot
escalation
final testing

Hard problems

01

Multimodal live dialogue

Customers send not only text — a reference photo, a voice "book me for tomorrow", a video of the last haircut. AI has to understand all of this together and respond meaningfully.

Solution → Async media processing pipeline on top of a vision-capable LLM — for the agent the input stream looks like a single multimodal feed.

02

Multi-tenant with dynamic context per client

A single backend serves dozens of independent businesses. One universal agent has to work for a barbershop, a nail salon, and a salon network alike — with their actual catalog of services, staff and prices.

Solution → Full state isolation per tenant + a tool-schema generator that builds a contextual MCP-tools schema per client from current CRM data.

03

Live human takes over the dialogue

Sometimes the owner manually opens Instagram and starts replying to a customer themselves. If AI keeps responding in parallel — disaster: two responses, confusion, lost customer.

Solution → "Human took over" detector — the bot temporarily pauses for that chat and resumes with updated context once the human steps out.

04

One reply for a burst of short messages

Real people don't write one long message. They send "Hi", then a photo, then "I want to book", then "for tomorrow" — within 15 seconds, in separate bubbles. Most bots reply to each one separately — the dialogue becomes schizophrenic.

Solution → Pilot waits until the customer stops typing, groups the whole burst (text + media + more text) into one logical turn and responds with one clear message — like a human would.

Tech stack

Backend / runtime

Python 3.11 FastAPI Flask Uvicorn Gunicorn asyncio + uvloop aiohttp httpx Pydantic

AI / LLM

LLM with function calling Multimodal vision API MCP Protocol (Anthropic SDK) Cloud AI provider

Frontend

React 19 TypeScript Vite Tailwind 4 shadcn/ui react-day-picker mobile-first iOS optimization

Integrations

Meta Graph API Altegio API + webhooks Google Calendar API Telegram Bot API OAuth 2.0 JWT (PyJWT)

Infrastructure

SQLite (per tenant) Docker Nginx WebSockets MQTT cryptography

What this gives your business vs. a human manager

The product is currently in final testing — below is the value proposition vs. hiring a person.

Monthly cost
Human
$600-1800 for 1-3 managers per location
Pilot
$120 per salon
Response time
Human
30 min – 2 hours
Pilot
< 5 seconds
Parallelism
Human
1 conversation at a time
Pilot
unlimited concurrent
Working hours
Human
8-12 hours, 5 days
Pilot
24/7, no days off
Script quality
Human
fluctuates, depends on mood
Pilot
stable, updated centrally
Burnout / turnover
Human
high turnover, constant retraining
Pilot
none
Customer memory
Human
forgets
Pilot
full visit and add-on history
Scaling
Human
+1 location → +1 manager
Pilot
+1 location → 0 extra cost

Pricing

$120/month per salon Full CRM integration, all staff, multi-location. Up to 100 conversations/day included.
$12/month per specialist For solo specialists and freelancers.
custom pricing For large networks and >100 conversations/day.

What's next?

This is one of my cases. The rest is on the home page.