gambot-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GAMBOT_TOKEN | Yes | Your Gambot Token (gmbt_…) from the Gambot admin panel → Settings → General. Used for authentication. | |
| GAMBOT_API_BASE | No | Optional env var that overrides the base URL. Defaults to https://api.gambot.co.il/api/v1. | https://api.gambot.co.il/api/v1 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gambot_send_textA | Send a free-text WhatsApp message. Only works inside the 24-hour customer service window; outside it, use gambot_send_template. |
| gambot_send_templateA | Send an approved WhatsApp template with variables. Can initiate a conversation even outside the 24-hour window. |
| gambot_list_conversationsC | List conversations (contacts) ordered by most recent message. |
| gambot_get_conversation_messagesC | Read the message history for a single conversation. |
| gambot_list_templatesA | List all WhatsApp templates for the organization. |
| gambot_get_templateA | Get a single template by id, including Meta approval status. |
| gambot_get_template_variablesC | Get the dynamic variables of a template. |
| gambot_create_templateA | Create a new WhatsApp template (submitted to Meta for approval). Name must be English, lowercase_with_underscores. Components use the full Meta shape and support: a TEXT or media (IMAGE/VIDEO/DOCUMENT) HEADER, a BODY with {{1}} variables, a FOOTER, and BUTTONS (QUICK_REPLY / URL / PHONE_NUMBER). For a media header you can either put example.header_handle on the HEADER component yourself (upload it first with gambot_upload_template_media), or simply pass headerMediaUrl (a public URL) and let Gambot upload it and inject the handle. |
| gambot_upload_template_mediaA | Upload a public media URL (image/video/document) to Meta and get a reusable header_handle for a template's media HEADER. Use the returned headerHandle inside a HEADER component: {type:'HEADER',format:'IMAGE',example:{header_handle:[headerHandle]}}. |
| gambot_get_contact_fieldsA | Get contact field definitions (base + custom/dynamic). Contacts store custom values as top-level keys — pass them via 'customFields' on create/update. |
| gambot_create_contactA | Create a contact (returns the existing one if the phone is already known). Custom/dynamic fields go under 'customFields' (see gambot_get_contact_fields for keys). |
| gambot_get_contactA | Fetch a contact by phone number. |
| gambot_update_contactA | Update a contact — only the provided fields are changed. Custom fields go under 'customFields'. |
| gambot_get_lead_fieldsA | Get lead field definitions: { baseFields, customFields }. Custom lead values are stored under a nested 'customFields' map — pass them the same way on create/update. |
| gambot_create_leadA | Create a CRM lead (contact created if missing, optional template send). Accepts all base lead fields plus a nested 'customFields' object. See gambot_get_lead_fields for available fields. |
| gambot_update_leadA | Update a lead — only the provided fields are changed. Accepts any base field plus a nested 'customFields' object (merged with existing custom values). |
| gambot_get_case_fieldsA | Get case (פנייה) field definitions: { baseFields, customFields }. Custom case values are stored under a nested 'customFields' map — pass them the same way on create/update. |
| gambot_create_caseC | Create a case (support ticket / פנייה). Accepts base fields plus a nested 'customFields' object. |
| gambot_update_caseA | Update a case — only the provided fields are changed. Accepts base fields plus a nested 'customFields' object (merged with existing custom values). |
| gambot_create_taskC | Create a task (optionally linked to a contact via contactPhone). |
| gambot_list_leadsC | List leads (paginated). |
| gambot_get_leadA | Get a single lead by id. |
| gambot_list_casesC | List cases (paginated). |
| gambot_get_caseC | Get a single case by id. |
| gambot_list_tasksB | List tasks for the organization. |
| gambot_get_taskA | Get a single task by id. |
| gambot_update_taskB | Update a task — only the provided fields are changed. |
| gambot_create_quoteC | Create a price quote. quoteData holds the quote fields (title, items, total, contact…). |
| gambot_list_quotesC | List price quotes (paginated). |
| gambot_get_quoteC | Get a single quote by id. |
| gambot_update_quoteC | Update quote fields (partial). |
| gambot_create_invoiceB | Create an invoice draft. invoiceData holds the invoice fields. |
| gambot_list_invoicesC | List invoices (paginated). |
| gambot_get_invoiceB | Get a single invoice by id. |
| gambot_update_invoiceB | Update invoice fields (blocked once issued/locked). |
| gambot_issue_invoiceB | Issue an invoice — locks it and assigns the official document number. |
| gambot_create_orderC | Create a store order. Body holds order fields (customer, items, total…). |
| gambot_list_ordersC | List orders (optionally filtered by status / store / date range). |
| gambot_get_orderB | Get a single order by id. |
| gambot_update_orderB | Update order fields (merge). |
| gambot_list_signaturesB | List e-signature documents (newest first). |
| gambot_get_signatureB | Get a single e-signature document, including its signing results. |
| gambot_get_signature_linkA | Get the signing link(s) to distribute for an existing signature document (one per signer). Share with signers via WhatsApp/email/SMS. |
| gambot_list_formsC | List web forms. |
| gambot_get_formC | Get a single web form definition. |
| gambot_get_form_linkA | Get the stable public shareable link for a web form. Distribute it to customers via WhatsApp/email/SMS/QR; all submissions land in the form's submissions. |
| gambot_get_form_submissionsB | Get submissions (results) for a web form. |
| gambot_list_documentsC | List document templates. |
| gambot_get_documentC | Get a single document template. |
| gambot_get_document_submissionsC | Get fill-only submissions generated from a document template. |
| gambot_create_document_linkA | Generate a distributable fill link for a document template. A template has no single static link (each customer fills their own copy), so this creates a fill-only instance and returns its public /form/ URL to share with the customer. Optionally pre-fill variables via contactPhone/leadId/variables. |
| gambot_create_userB | Create an organization user (team member). Sends a welcome email + WhatsApp invite. |
| gambot_list_usersA | List organization users (excluding system bots). |
| gambot_get_userA | Get a single user by id. |
| gambot_update_userC | Update user fields — only the provided ones are changed. |
| gambot_disable_userC | Disable a user (status = inactive). |
| gambot_enable_userB | Enable a user (status = active). |
| gambot_delete_userA | Permanently delete an organization user (removes both the auth account and the profile). This is irreversible — prefer gambot_disable_user to just deactivate access. |
| gambot_list_campaignsB | List all broadcast campaigns for the organization. |
| gambot_list_scheduled_campaignsA | List scheduled campaigns that are waiting to run. |
| gambot_get_campaignA | Get a single campaign by id. |
| gambot_get_campaign_resultsB | Get the run results/report for a campaign (sent/delivered/read/replies/clicks). |
| gambot_create_campaignA | Create a WhatsApp broadcast campaign. Manual (run on demand) or scheduled (one-time / recurring). For a template broadcast set messageType='Template' + wabaTemplateId; for free text set messageType='regular' + message. Audience: recipientSource='Excel' + ExcelData, or ContactFilters (CRM segment), or legacy ContactsQuery. Scheduling: campaignTrigger='Scheduled' + scheduleType ('once' with runAt+timezone, or 'repeated' with interval/intervalNumber/endCondition). |
| gambot_update_campaignB | Update a campaign (send the full campaign object). |
| gambot_delete_campaignC | Delete a campaign by id. |
| gambot_run_campaignA | Run an existing (saved) campaign by id now (resolves recipients and executes). |
| gambot_send_campaignA | Run an ad-hoc campaign WITHOUT saving it first. Provide an audience (recipientPhoneNumbers, excelRecipients or filters) and the message (messageType='Template'+templateId, or 'regular'+message). Compliance is built in: every org has an ACTIVE opt-out flow (recipients reply הסר/stop/unsubscribe to be excluded from future broadcasts); the response echoes it under |
| gambot_test_campaignA | Send a single-recipient TEST of a template or free-text message. Great for previewing before a full broadcast. |
| gambot_send_campaign_from_excelA | Broadcast a WhatsApp TEMPLATE to everyone in an Excel/CSV the user gave you — the easiest way to do a mail-merge blast. YOU (the agent) read the sheet and pass: |
| gambot_check_organizationB | Check whether an organization already exists for a company + tax id (ח.פ/ת.ז), and whether an incomplete onboarding can be resumed. Use before creating a new trial. |
| gambot_generate_organization_nameB | Generate a unique organization name from a company name + tax id (adds a suffix if taken). |
| gambot_search_available_numbersA | List phone numbers available to purchase for a country (via Twilio), so you can pick one to buy as the account's SIM/number. Pass the chosen phoneNumber to gambot_create_trial_account / gambot_create_paid_account as simInfo.selectedSimNumber with simInfo.purchaseInTwilio=true. |
| gambot_create_trial_accountA | Create a new FREE-TRIAL organization + first user (no card required). Login credentials (temp password) are emailed & WhatsApp'd to the contact. WhatsApp/number options: useFreeNumber (Meta test number) · useCoexisting (existing WhatsApp Business number in simInfo.simNumberEntered) · BYO SIM (the customer's own number in simInfo.simNumberEntered) · Buy a SIM from us (simInfo.purchaseInTwilio=true + simInfo.selectedSimNumber from gambot_search_available_numbers). GLOBAL: send companyInfo.timezone (IANA) and companyInfo.country (ISO-3166 alpha-2) — they drive scheduling and locale. Neither hard-fails: a missing/invalid timezone is derived from country (else defaults to Asia/Jerusalem). For a paid account with a card on file (no trial) use gambot_create_paid_account instead. After creating, connect WhatsApp via the returned wabaConnectUrl or gambot_exchange_waba_token. |
| gambot_create_paid_accountA | Create a new organization that goes STRAIGHT TO PAID — no free trial month. A payment method is MANDATORY: pass a |
| gambot_add_payment_methodA | Verify a card with the clearing provider (Tranzila) and save its token to an organization, so an AI agent with the customer's card can put a payment method on file without the hosted page. The raw card is sent only to the PCI-compliant clearing provider and never stored. For a hosted alternative (customer types the card), use gambot_create_payment_link. |
| gambot_create_payment_linkA | Build a secure hosted payment link (Tranzila) to add a card for an organization. Card data is never handled by the API — share the URL with the customer; the card token is saved on success. |
| gambot_get_waba_connect_linkA | Get the hosted page URL where the customer completes Meta Embedded Signup (the Facebook popup) to connect their WhatsApp Business account. |
| gambot_exchange_waba_tokenB | Complete Meta Embedded Signup by exchanging the authorization code returned by the Facebook popup. Registers the WABA, subscribes webhooks and registers the phone number. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 78 tools
Most tools are cleanly separated by resource and action, so an agent can usually pick the right one. The main ambiguity is around the campaign/messaging cluster: gambot_send_campaign, gambot_run_campaign, gambot_test_campaign, gambot_send_campaign_from_excel, and gambot_send_template could be confused, though the descriptions do draw useful boundaries.
All tool names follow the gambot_<verb>_<object> snake_case pattern with consistent verbs like get, list, create, update, delete, send, run, and test. Even longer names like get_signature_link and send_campaign_from_excel are predictable extensions of the same convention.
78 tools is far beyond a practical MCP surface and beyond the 50+ calibration threshold. The server merges many products (CRM, campaigns, documents, signatures, billing, onboarding, payments) into one namespace, which will likely overwhelm agent context and select a request. Consolidating related tools into smaller servers or higher-level operations would be far more appropriate.
The surface is broad but has significant lifecycle gaps: no list_contacts, no delete/update for many templates, no deletion for quotes/invoices/orders/tasks/leads/cases, and form/document/signature tools are mostly read/link-only rather than fully managed. These gaps will typically cause agent failures when users attempt standard cleanups or changes.