Skip to main content
Glama
edgarconejo

atiendo24-mcp-server

by edgarconejo

atiendo24-mcp-server

npm version License: MIT

MCP server for Atiendo24 — control your WhatsApp AI agent platform directly from Claude Desktop.

What is this?

This is a Model Context Protocol (MCP) server that connects Claude Desktop to the Atiendo24 platform. It gives Claude access to 9 tools that let you manage appointments, customers, conversations, leads, analytics, and send WhatsApp messages — all through natural language.

You: "How many appointments do I have tomorrow?"
Claude: Uses get_appointments → "You have 3 appointments tomorrow: ..."

You: "Send a WhatsApp to +50688881234 saying the appointment is confirmed"
Claude: Uses send_whatsapp → "Message sent successfully."

Related MCP server: Calendly MCP Server

Architecture

Claude Desktop (or any MCP client)
        ↓ MCP Protocol (stdio)
atiendo24-mcp-server (runs locally)
        ↓                    ↓
   Supabase DB        WhatsApp Cloud API
  (read/write)         (send messages)

Tools

Read Tools

get_appointments

Fetches scheduled appointments with filtering options.

Parameter

Type

Description

filter

"today" | "week" | "all"

Time period (default: "today")

client_id

string

Filter by business client ID

status

string

Filter by status: confirmed, completed, cancelled, no-show

Example prompts:

  • "What appointments do I have today?"

  • "Show me all cancelled appointments this week"

  • "How many confirmed appointments are there?"


get_customers

Searches the customer database by name, phone, or email.

Parameter

Type

Description

search

string

Search by name, phone, or email

client_id

string

Filter by business client ID

limit

number

Max results (default: 20)

Example prompts:

  • "Find the customer with phone 8888-1234"

  • "Search for Maria Lopez in the database"

  • "How many customers do we have?"


get_conversations

Retrieves WhatsApp conversations with status filtering.

Parameter

Type

Description

status

"active" | "escalated" | "resolved"

Conversation status

client_id

string

Filter by business client ID

search

string

Search by customer name or phone

limit

number

Max results (default: 20)

Example prompts:

  • "Are there any escalated conversations?"

  • "Show me recent active conversations"

  • "How many conversations were resolved today?"


get_leads

Fetches sales leads captured by the AI sales agent (Millie).

Parameter

Type

Description

status

string

Lead status: contacted, demo_scheduled, proposal_sent

search

string

Search by name, phone, or business type

limit

number

Max results (default: 30)

Example prompts:

  • "How many leads does Millie have this week?"

  • "Show me leads with demos scheduled"

  • "Find leads from dental clinics"


get_funnel

Returns the full sales conversion funnel with data quality metrics.

No parameters required.

Returns:

  • Funnel stages: total leads → contacted → demo scheduled → proposal sent → closed clients

  • Conversion rates between each stage

  • Data quality: % of leads with valid phone, % with name

Example prompts:

  • "How's the sales funnel looking?"

  • "What's our lead-to-client conversion rate?"

  • "What percentage of leads have valid contact info?"


get_analytics

Platform-wide metrics for a given time period.

Parameter

Type

Description

period

7 | 30 | 90

Days to analyze (default: 7)

client_id

string

Filter by business client ID

Returns:

  • Conversations: total, escalated, resolved, resolution rate, escalation rate

  • Appointments: total, no-shows, cancelled, no-show rate

  • Leads: total count

Example prompts:

  • "Give me the metrics for the last 30 days"

  • "What's the no-show rate this month?"

  • "How many conversations were escalated last week?"


Write Tools

create_appointment

Creates a new appointment after checking availability.

Parameter

Type

Required

Description

client_id

string

Yes

Business client ID

customer_phone

string

Yes

Customer phone number

customer_name

string

Yes

Customer name

date

string

Yes

Date in YYYY-MM-DD format

time

string

Yes

Time in HH:MM format

service

string

No

Service requested

duration_minutes

number

No

Duration (default: 60)

notes

string

No

Additional notes

Example prompts:

  • "Schedule an appointment for Juan Perez tomorrow at 10am"

  • "Book a dental cleaning for Maria on 2026-05-01 at 14:00"


cancel_appointment

Cancels an existing appointment by ID.

Parameter

Type

Required

Description

appointment_id

string

Yes

Appointment ID to cancel

client_id

string

No

Business client ID for verification

Example prompts:

  • "Cancel Juan's appointment"

  • "Cancel appointment ID abc-123"


send_whatsapp

Sends a WhatsApp message from the Atiendo24 business number.

Parameter

Type

Required

Description

to

string

Yes

Destination phone (e.g., +50688881234 or 88881234)

message

string

Yes

Message text

Note: WhatsApp Cloud API requires the recipient to have messaged your number within the last 24 hours. Messages outside this window require pre-approved templates.

Example prompts:

  • "Send a WhatsApp to +50688881234 saying the appointment is confirmed"

  • "Message this prospect that I'll call them tomorrow"


Installation

Prerequisites

  • Node.js >= 18

  • A Supabase project with the Atiendo24 schema

  • WhatsApp Cloud API credentials (for send_whatsapp)

Setup

git clone https://github.com/edgarconejo/atiendo24-mcp-server.git
cd atiendo24-mcp-server
npm install
npm run build

Configure Claude Desktop

Add the following to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "atiendo24": {
      "command": "node",
      "args": ["/absolute/path/to/atiendo24-mcp-server/dist/index.js"],
      "env": {
        "SUPABASE_URL": "https://your-project.supabase.co",
        "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key",
        "WA_CLOUD_API_TOKEN": "your-whatsapp-cloud-api-token",
        "WA_CLOUD_PHONE_NUMBER_ID": "your-phone-number-id"
      }
    }
  }
}

Restart Claude Desktop after saving the config.

Environment Variables

Variable

Required

Description

SUPABASE_URL

Yes

Your Supabase project URL

SUPABASE_SERVICE_ROLE_KEY

Yes

Supabase service role key (bypasses RLS)

WA_CLOUD_API_TOKEN

For send_whatsapp

WhatsApp Cloud API permanent token

WA_CLOUD_PHONE_NUMBER_ID

For send_whatsapp

WhatsApp Business phone number ID

Verify Installation

After restarting Claude Desktop, click the + button in a new chat → Connectors — you should see "atiendo24" listed and enabled.

Try asking: "How many appointments do I have today?"

Tech Stack

About Atiendo24

Atiendo24 is a multi-tenant SaaS platform that deploys AI-powered WhatsApp agents for businesses in Costa Rica. Each agent handles customer inquiries, schedules appointments, sends reminders, and processes payments — 24/7.

Built with Next.js, Supabase, Claude API, and WhatsApp Cloud API.

License

MIT

Related MCP Connectors

Related MCP Servers