{"_id":"@edgarconejo/atiendo24-mcp-server","name":"@edgarconejo/atiendo24-mcp-server","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@edgarconejo/atiendo24-mcp-server","version":"0.1.0","description":"MCP server for Atiendo24 — control your WhatsApp AI agent platform from Claude Desktop","main":"dist/index.js","bin":{"atiendo24-mcp":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js","prepublishOnly":"npm run build"},"keywords":["mcp","model-context-protocol","claude","atiendo24","whatsapp","ai-agent","supabase"],"author":{"name":"Edgar Conejo","email":"edgar@atiendo24.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/edgarconejo/atiendo24-mcp-server.git"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.1","@supabase/supabase-js":"^2.49.4"},"devDependencies":{"typescript":"^5.7.3"},"engines":{"node":">=18"},"_id":"@edgarconejo/atiendo24-mcp-server@0.1.0","gitHead":"13da2d0f3c53f63f94586c73ffd597186d63d576","types":"./dist/index.d.ts","bugs":{"url":"https://github.com/edgarconejo/atiendo24-mcp-server/issues"},"homepage":"https://github.com/edgarconejo/atiendo24-mcp-server#readme","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Fq0sGDvdPe2c51j3w0jNkQN5tThY+RN6K2CCbH4njfdRukGSeoYsEpXxWinEtRpQjoY67yxWSFhiEykTYi8Xng==","shasum":"6fe7cb9f8f9c478105e13d954d7aaeeaa456171d","tarball":"https://registry.npmjs.org/@edgarconejo/atiendo24-mcp-server/-/atiendo24-mcp-server-0.1.0.tgz","fileCount":9,"unpackedSize":32872,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBfABxyVh9Mxrzbv5+Tc2Pz0KlHDaVu+ezYbpeUg6gVhAiA9lgOhtsV3Y3uYVhjS3IGSUovzKsEbpV4dKPkOFzWLEQ=="}]},"_npmUser":{"name":"edgarconejo","email":"hello@edgarconejo.com"},"directories":{},"maintainers":[{"name":"edgarconejo","email":"hello@edgarconejo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/atiendo24-mcp-server_0.1.0_1777305476242_0.3017477884492943"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-27T15:57:56.177Z","0.1.0":"2026-04-27T15:57:56.458Z","modified":"2026-04-27T15:57:56.663Z"},"maintainers":[{"name":"edgarconejo","email":"hello@edgarconejo.com"}],"description":"MCP server for Atiendo24 — control your WhatsApp AI agent platform from Claude Desktop","homepage":"https://github.com/edgarconejo/atiendo24-mcp-server#readme","keywords":["mcp","model-context-protocol","claude","atiendo24","whatsapp","ai-agent","supabase"],"repository":{"type":"git","url":"git+https://github.com/edgarconejo/atiendo24-mcp-server.git"},"author":{"name":"Edgar Conejo","email":"edgar@atiendo24.com"},"bugs":{"url":"https://github.com/edgarconejo/atiendo24-mcp-server/issues"},"license":"MIT","readme":"# atiendo24-mcp-server\n\n[![npm version](https://img.shields.io/npm/v/atiendo24-mcp-server.svg)](https://www.npmjs.com/package/atiendo24-mcp-server)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n\nMCP server for [Atiendo24](https://atiendo24.com) — control your WhatsApp AI agent platform directly from Claude Desktop.\n\n<img src=\"https://img.shields.io/badge/MCP-Compatible-blue?logo=anthropic\" alt=\"MCP Compatible\" />\n\n## What is this?\n\nThis is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) 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.\n\n```\nYou: \"How many appointments do I have tomorrow?\"\nClaude: Uses get_appointments → \"You have 3 appointments tomorrow: ...\"\n\nYou: \"Send a WhatsApp to +50688881234 saying the appointment is confirmed\"\nClaude: Uses send_whatsapp → \"Message sent successfully.\"\n```\n\n## Architecture\n\n```\nClaude Desktop (or any MCP client)\n        ↓ MCP Protocol (stdio)\natiendo24-mcp-server (runs locally)\n        ↓                    ↓\n   Supabase DB        WhatsApp Cloud API\n  (read/write)         (send messages)\n```\n\n## Tools\n\n### Read Tools\n\n#### `get_appointments`\nFetches scheduled appointments with filtering options.\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `filter` | `\"today\" \\| \"week\" \\| \"all\"` | Time period (default: `\"today\"`) |\n| `client_id` | `string` | Filter by business client ID |\n| `status` | `string` | Filter by status: `confirmed`, `completed`, `cancelled`, `no-show` |\n\n**Example prompts:**\n- \"What appointments do I have today?\"\n- \"Show me all cancelled appointments this week\"\n- \"How many confirmed appointments are there?\"\n\n---\n\n#### `get_customers`\nSearches the customer database by name, phone, or email.\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `search` | `string` | Search by name, phone, or email |\n| `client_id` | `string` | Filter by business client ID |\n| `limit` | `number` | Max results (default: `20`) |\n\n**Example prompts:**\n- \"Find the customer with phone 8888-1234\"\n- \"Search for Maria Lopez in the database\"\n- \"How many customers do we have?\"\n\n---\n\n#### `get_conversations`\nRetrieves WhatsApp conversations with status filtering.\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `status` | `\"active\" \\| \"escalated\" \\| \"resolved\"` | Conversation status |\n| `client_id` | `string` | Filter by business client ID |\n| `search` | `string` | Search by customer name or phone |\n| `limit` | `number` | Max results (default: `20`) |\n\n**Example prompts:**\n- \"Are there any escalated conversations?\"\n- \"Show me recent active conversations\"\n- \"How many conversations were resolved today?\"\n\n---\n\n#### `get_leads`\nFetches sales leads captured by the AI sales agent (Millie).\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `status` | `string` | Lead status: `contacted`, `demo_scheduled`, `proposal_sent` |\n| `search` | `string` | Search by name, phone, or business type |\n| `limit` | `number` | Max results (default: `30`) |\n\n**Example prompts:**\n- \"How many leads does Millie have this week?\"\n- \"Show me leads with demos scheduled\"\n- \"Find leads from dental clinics\"\n\n---\n\n#### `get_funnel`\nReturns the full sales conversion funnel with data quality metrics.\n\nNo parameters required.\n\n**Returns:**\n- Funnel stages: total leads → contacted → demo scheduled → proposal sent → closed clients\n- Conversion rates between each stage\n- Data quality: % of leads with valid phone, % with name\n\n**Example prompts:**\n- \"How's the sales funnel looking?\"\n- \"What's our lead-to-client conversion rate?\"\n- \"What percentage of leads have valid contact info?\"\n\n---\n\n#### `get_analytics`\nPlatform-wide metrics for a given time period.\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `period` | `7 \\| 30 \\| 90` | Days to analyze (default: `7`) |\n| `client_id` | `string` | Filter by business client ID |\n\n**Returns:**\n- Conversations: total, escalated, resolved, resolution rate, escalation rate\n- Appointments: total, no-shows, cancelled, no-show rate\n- Leads: total count\n\n**Example prompts:**\n- \"Give me the metrics for the last 30 days\"\n- \"What's the no-show rate this month?\"\n- \"How many conversations were escalated last week?\"\n\n---\n\n### Write Tools\n\n#### `create_appointment`\nCreates a new appointment after checking availability.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `client_id` | `string` | Yes | Business client ID |\n| `customer_phone` | `string` | Yes | Customer phone number |\n| `customer_name` | `string` | Yes | Customer name |\n| `date` | `string` | Yes | Date in `YYYY-MM-DD` format |\n| `time` | `string` | Yes | Time in `HH:MM` format |\n| `service` | `string` | No | Service requested |\n| `duration_minutes` | `number` | No | Duration (default: `60`) |\n| `notes` | `string` | No | Additional notes |\n\n**Example prompts:**\n- \"Schedule an appointment for Juan Perez tomorrow at 10am\"\n- \"Book a dental cleaning for Maria on 2026-05-01 at 14:00\"\n\n---\n\n#### `cancel_appointment`\nCancels an existing appointment by ID.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `appointment_id` | `string` | Yes | Appointment ID to cancel |\n| `client_id` | `string` | No | Business client ID for verification |\n\n**Example prompts:**\n- \"Cancel Juan's appointment\"\n- \"Cancel appointment ID abc-123\"\n\n---\n\n#### `send_whatsapp`\nSends a WhatsApp message from the Atiendo24 business number.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `to` | `string` | Yes | Destination phone (e.g., `+50688881234` or `88881234`) |\n| `message` | `string` | Yes | Message text |\n\n> **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.\n\n**Example prompts:**\n- \"Send a WhatsApp to +50688881234 saying the appointment is confirmed\"\n- \"Message this prospect that I'll call them tomorrow\"\n\n---\n\n## Installation\n\n### Prerequisites\n\n- Node.js >= 18\n- A Supabase project with the Atiendo24 schema\n- WhatsApp Cloud API credentials (for `send_whatsapp`)\n\n### Setup\n\n```bash\ngit clone https://github.com/edgarconejo/atiendo24-mcp-server.git\ncd atiendo24-mcp-server\nnpm install\nnpm run build\n```\n\n### Configure Claude Desktop\n\nAdd the following to your Claude Desktop config file:\n\n**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"atiendo24\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/atiendo24-mcp-server/dist/index.js\"],\n      \"env\": {\n        \"SUPABASE_URL\": \"https://your-project.supabase.co\",\n        \"SUPABASE_SERVICE_ROLE_KEY\": \"your-service-role-key\",\n        \"WA_CLOUD_API_TOKEN\": \"your-whatsapp-cloud-api-token\",\n        \"WA_CLOUD_PHONE_NUMBER_ID\": \"your-phone-number-id\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop after saving the config.\n\n### Environment Variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `SUPABASE_URL` | Yes | Your Supabase project URL |\n| `SUPABASE_SERVICE_ROLE_KEY` | Yes | Supabase service role key (bypasses RLS) |\n| `WA_CLOUD_API_TOKEN` | For `send_whatsapp` | WhatsApp Cloud API permanent token |\n| `WA_CLOUD_PHONE_NUMBER_ID` | For `send_whatsapp` | WhatsApp Business phone number ID |\n\n### Verify Installation\n\nAfter restarting Claude Desktop, click the **+** button in a new chat → **Connectors** — you should see \"atiendo24\" listed and enabled.\n\nTry asking: *\"How many appointments do I have today?\"*\n\n## Tech Stack\n\n- **Runtime:** Node.js\n- **MCP SDK:** [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk)\n- **Database:** [Supabase](https://supabase.com) (PostgreSQL)\n- **Messaging:** [WhatsApp Cloud API](https://developers.facebook.com/docs/whatsapp/cloud-api) (Meta Graph API v21.0)\n- **Language:** TypeScript\n\n## About Atiendo24\n\n[Atiendo24](https://atiendo24.com) 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.\n\nBuilt with Next.js, Supabase, Claude API, and WhatsApp Cloud API.\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-28a41464d5824e64f8fa60dd7346fb10"}