FieldRobin
What this MCP does
Provides authenticated field-service workspace access for customers, leads, jobs, quotes, invoices, service requests, operations reports, campaigns, and reviews.
Tools
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum records to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Job title, customer name, or technician name.'}, 'status': {'enum': ['open', 'resolved', 'all'], 'type': ['string', 'null'], 'description': 'Risk state; defaults to open.'}}}
Input schema
{'type': 'object', 'required': ['name', 'idempotency_key'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Customer full name.'}, 'email': {'type': ['string', 'null'], 'format': 'email', 'maxLength': 255, 'description': 'Customer email address, if known.'}, 'notes': {'type': ['string', 'null'], 'description': 'Internal customer notes.'}, 'phone': {'type': ['string', 'null'], 'maxLength': 30, 'description': 'Customer phone number, if known.'}, 'address': {'type': ['string', 'null'], 'maxLength': 500, 'description': 'Customer address, if known.'}, 'trade_type': {'type': ['string', 'null'], 'maxLength': 100, 'description': 'Customer trade or service type.'}, 'location_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Business location for the customer.'}, 'business_name': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Customer business name, if known.'}, 'lifecycle_tag': {'enum': ['active', 'inactive', 'vip'], 'type': ['string', 'null'], 'description': 'Lifecycle tag.'}, 'idempotency_key': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Opaque retry key. Reuse it only for the same request to receive the verified result without creating a duplicate.'}, 'acquisition_source': {'type': ['string', 'null'], 'maxLength': 100, 'description': 'How the customer was acquired.'}}}
Input schema
{'type': 'object', 'required': ['title', 'idempotency_key'], 'properties': {'title': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Short job title.'}, 'status': {'enum': ['lead', 'pending', 'quoted', 'approved', 'scheduled'], 'type': ['string', 'null'], 'description': 'Initial job status.'}, 'customer_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Verified customer ID, if the job belongs to an existing customer.'}, 'description': {'type': ['string', 'null'], 'description': 'Readable issue and service description.'}, 'location_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Business location for the job.'}, 'voice_notes': {'type': ['string', 'null'], 'description': 'Optional internal voice-note text.'}, 'scheduled_at': {'type': ['string', 'null'], 'description': 'Optional local wall-clock appointment date/time or ISO timestamp with offset.'}, 'total_amount': {'type': ['number', 'null'], 'minimum': 0, 'description': 'Optional quoted amount.'}, 'idempotency_key': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Opaque retry key. Reuse it only for the same request to receive the verified result without creating a duplicate.'}, 'service_address': {'type': ['string', 'null'], 'maxLength': 2000, 'description': 'Service address, if known.'}, 'appointment_count': {'type': ['integer', 'null'], 'maximum': 99, 'minimum': 1, 'description': 'Optional appointment count.'}, 'technician_user_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Verified technician user ID, if assigned.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of service requests to return.'}, 'customer_id': {'type': 'integer', 'minimum': 1, 'description': 'Customer ID returned by search-customers.'}}}
Input schema
{'type': 'object', 'properties': {'tone': {'enum': ['professional', 'warm', 'concise'], 'type': ['string', 'null'], 'description': 'Draft tone.'}, 'review_id': {'type': 'integer', 'minimum': 1, 'description': 'Review ID returned by search-reviews.'}}}
Input schema
{'type': 'object', 'properties': {'customer_id': {'type': 'integer', 'minimum': 1, 'description': 'Customer ID returned by search-customers.'}}}
Input schema
{'type': 'object', 'properties': {'invoice_id': {'type': 'integer', 'minimum': 1, 'description': 'Invoice ID returned by search-invoices.'}}}
Input schema
{'type': 'object', 'properties': {'invoice_id': {'type': 'integer', 'minimum': 1, 'description': 'Invoice ID returned by search-invoices.'}}}
Input schema
{'type': 'object', 'properties': {'job_id': {'type': 'integer', 'minimum': 1, 'description': 'Job ID returned by search-jobs or jobs-today.'}}}
Input schema
{'type': 'object', 'properties': {'lead_id': {'type': 'integer', 'minimum': 1, 'description': 'Lead ID returned by search-leads.'}}}
Input schema
{'type': 'object', 'properties': {'location_id': {'type': 'integer', 'minimum': 1, 'description': 'Location ID.'}}}
Input schema
{'type': 'object', 'properties': {'quote_id': {'type': 'integer', 'minimum': 1, 'description': 'Estimate ID returned by search-quotes.'}}}
Input schema
{'type': 'object', 'properties': {'days': {'type': ['integer', 'null'], 'default': 30, 'maximum': 180, 'minimum': 1, 'description': 'Lookback window in days.'}, 'campaign_id': {'type': 'integer', 'minimum': 1, 'description': 'Referral campaign ID returned by search-referral-campaigns.'}}}
Input schema
{'type': 'object', 'properties': {'service_request_id': {'type': 'integer', 'minimum': 1, 'description': 'Service-request ID returned by search-service-requests.'}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {'date': {'type': ['string', 'null'], 'format': 'date', 'description': 'Local business date, YYYY-MM-DD; defaults to today.'}, 'limit': {'type': ['integer', 'null'], 'default': 25, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of jobs to return.'}, 'status': {'type': ['string', 'null'], 'maxLength': 40, 'description': 'Optional job status filter.'}, 'technician_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Optional technician ID.'}}}
Input schema
{'type': 'object', 'properties': {'job_id': {'type': 'integer', 'minimum': 1, 'description': 'Job ID returned by search-jobs.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum inventory, transactions, and technician balances to return.'}, 'technician_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Optional same-business technician ID.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum jobs sampled per technician.'}, 'technician_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Optional same-business technician ID.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Maximum number of actions to return.'}, 'priority': {'enum': ['urgent', 'high', 'normal', 'low'], 'type': ['string', 'null'], 'description': 'Optional priority filter.'}, 'due_before': {'type': ['string', 'null'], 'format': 'date', 'description': 'Only actions due on or before this local date.'}, 'action_type': {'type': ['string', 'null'], 'maxLength': 80, 'description': 'Optional exact action type.'}, 'action_state': {'enum': ['open', 'in_progress', 'snoozed', 'blocked', 'dismissed', 'done'], 'type': ['string', 'null'], 'description': 'Pipeline state; defaults to open.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum recommendations to return.'}, 'status': {'enum': ['pending', 'approved', 'rejected', 'expired'], 'type': ['string', 'null'], 'description': 'Recommendation state; defaults to pending.'}, 'action_type': {'type': ['string', 'null'], 'maxLength': 80, 'description': 'Optional exact pipeline recommendation action type.'}, 'recommendation_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Optional exact recommendation ID.'}, 'include_draft_history': {'type': ['boolean', 'null'], 'default': False, 'description': 'When true, recommendation_id is required and bounded draft edit history is returned.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 25, 'maximum': 50, 'minimum': 1, 'description': 'Maximum audience items to evaluate.'}, 'campaign_id': {'type': 'integer', 'minimum': 1, 'description': 'Broadcast campaign ID returned by search-broadcast-campaigns.'}}}
Input schema
{'type': 'object', 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'properties': {'quantity': {'type': 'number', 'minimum': 0}, 'item_type': {'enum': ['material', 'labour', 'service', 'equipment', 'fee'], 'type': ['string', 'null']}, 'unit_price': {'type': 'number', 'minimum': 0}, 'description': {'type': 'string', 'maxLength': 500}, 'tax_behavior': {'enum': ['inherit', 'taxable', 'non_taxable', 'automatic'], 'type': ['string', 'null']}, 'discount_type': {'enum': ['none', 'percentage', 'fixed'], 'type': ['string', 'null']}, 'discount_value': {'type': ['number', 'null'], 'minimum': 0}}}, 'maxItems': 50, 'minItems': 1, 'description': 'Invoice line items.'}, 'tax_mode': {'enum': ['none', 'manual'], 'type': ['string', 'null']}, 'coupon_code': {'type': ['string', 'null'], 'maxLength': 100}, 'customer_id': {'type': 'integer', 'minimum': 1, 'description': 'Resolved customer ID; required for an invoice preview.'}, 'tax_rate_id': {'type': ['integer', 'null'], 'minimum': 1}, 'document_discount_type': {'enum': ['none', 'percentage', 'fixed'], 'type': ['string', 'null']}, 'document_discount_value': {'type': ['number', 'null'], 'minimum': 0}}}
Input schema
{'type': 'object', 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'properties': {'quantity': {'type': 'number', 'minimum': 0}, 'item_type': {'enum': ['material', 'labour', 'service', 'equipment', 'fee'], 'type': ['string', 'null']}, 'unit_price': {'type': 'number', 'minimum': 0}, 'description': {'type': 'string', 'maxLength': 500}, 'tax_behavior': {'enum': ['inherit', 'taxable', 'non_taxable', 'automatic'], 'type': ['string', 'null']}, 'discount_type': {'enum': ['none', 'percentage', 'fixed'], 'type': ['string', 'null']}, 'discount_value': {'type': ['number', 'null'], 'minimum': 0}}}, 'maxItems': 50, 'minItems': 1, 'description': 'Estimate line item.'}, 'tax_mode': {'enum': ['none', 'manual'], 'type': ['string', 'null']}, 'coupon_code': {'type': ['string', 'null'], 'maxLength': 100}, 'customer_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Optional resolved customer ID.'}, 'tax_rate_id': {'type': ['integer', 'null'], 'minimum': 1}, 'document_discount_type': {'enum': ['none', 'percentage', 'fixed'], 'type': ['string', 'null']}, 'document_discount_value': {'type': ['number', 'null'], 'minimum': 0}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 25, 'maximum': 50, 'minimum': 1, 'description': 'Maximum audience items to evaluate.'}, 'campaign_id': {'type': 'integer', 'minimum': 1, 'description': 'Reactivation campaign ID returned by search-reactivation-campaigns.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 25, 'maximum': 50, 'minimum': 1, 'description': 'Maximum audience items to evaluate.'}, 'campaign_id': {'type': 'integer', 'minimum': 1, 'description': 'Referral campaign ID returned by search-referral-campaigns.'}}}
Input schema
{'type': 'object', 'properties': {'channel': {'enum': ['sms', 'email'], 'type': ['string', 'null'], 'description': 'Optional review-request channel preference.'}, 'job_ids': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'maxItems': 50, 'minItems': 1, 'description': 'Explicit job IDs to evaluate.'}}}
Input schema
{'type': 'object', 'properties': {'content': {'type': 'string', 'maxLength': 1200, 'minLength': 3, 'description': 'Proposed social post content.'}, 'platform': {'enum': ['facebook', 'instagram', 'google_business'], 'type': ['string', 'null'], 'description': 'Social platform.'}, 'review_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Optional authorized source review ID.'}}}
Input schema
{'type': 'object', 'properties': {'period': {'enum': [7, 30, 90, 365], 'type': ['integer', 'null'], 'default': 30, 'description': 'Number of days for location comparison metrics; defaults to 30.'}}}
Input schema
{'type': 'object', 'properties': {'to': {'type': ['string', 'null'], 'description': 'Inclusive end date when period is custom.'}, 'from': {'type': ['string', 'null'], 'description': 'Inclusive start date when period is custom.'}, 'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of ranked customers to return.'}, 'period': {'enum': ['all_time', '7', '30', '90', '365', 'custom'], 'type': ['string', 'null'], 'default': 'all_time', 'description': 'Ranking window. Use all_time for to-date questions.'}}}
Input schema
{'type': 'object', 'properties': {'period': {'enum': [7, 30, 90, 365], 'type': ['integer', 'null'], 'default': 30, 'description': 'Number of days for the bounded trend metrics; defaults to 30.'}}}
Input schema
{'type': 'object', 'properties': {'date': {'type': ['string', 'null'], 'format': 'date', 'description': 'Local business date, YYYY-MM-DD; defaults to today.'}, 'limit': {'type': ['integer', 'null'], 'default': 50, 'maximum': 50, 'minimum': 1, 'description': 'Maximum route stops to return.'}, 'technician_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Optional technician filter.'}}}
Input schema
{'type': 'object', 'properties': {'date': {'type': ['string', 'null'], 'format': 'date', 'description': 'Local business date, YYYY-MM-DD; defaults to today.'}, 'workday_end': {'type': ['integer', 'null'], 'default': 20, 'maximum': 24, 'minimum': 1, 'description': 'Planning window end hour.'}, 'technician_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Optional same-business technician ID.'}, 'workday_start': {'type': ['integer', 'null'], 'default': 10, 'maximum': 23, 'minimum': 0, 'description': 'Planning window start hour.'}, 'duration_minutes': {'type': ['integer', 'null'], 'default': 60, 'maximum': 480, 'minimum': 15, 'description': 'Requested appointment length.'}, 'job_duration_minutes': {'type': ['integer', 'null'], 'default': 60, 'maximum': 480, 'minimum': 15, 'description': 'Planning duration for existing jobs.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of campaigns to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Campaign name, message, or channel.'}, 'status': {'enum': ['draft', 'pending_approval', 'approved', 'rejected', 'sent', 'archived'], 'type': ['string', 'null'], 'description': 'Campaign status.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of customers to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 80, 'description': 'Name, email, phone, or business name to search for.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum items to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Inventory name, SKU, or description.'}, 'active': {'type': ['boolean', 'null'], 'description': 'Filter by active state; defaults to true.'}, 'low_stock': {'type': ['boolean', 'null'], 'description': 'Only items at or below minimum quantity.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Maximum number of invoices to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 80, 'description': 'Invoice number, customer name, email, phone, job title, or description.'}, 'job_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Restrict results to one job ID.'}, 'status': {'enum': ['draft', 'sent', 'overdue', 'paid', 'cancelled'], 'type': ['string', 'null'], 'description': 'Invoice lifecycle status.'}, 'customer_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Restrict results to one customer ID.'}, 'payment_status': {'type': ['string', 'null'], 'maxLength': 40, 'description': 'Authoritative payment state, such as unpaid, pending, paid, or refunded.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of jobs to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 80, 'description': 'Customer name, email, phone, or job title.'}, 'status': {'type': ['string', 'null'], 'maxLength': 40, 'description': 'Optional job status filter.'}, 'customer_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Restrict results to one customer ID.'}, 'location_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Restrict results to one business location ID.'}, 'scheduled_to': {'type': ['string', 'null'], 'format': 'date', 'description': 'Inclusive scheduled date, YYYY-MM-DD.'}, 'scheduled_from': {'type': ['string', 'null'], 'format': 'date', 'description': 'Inclusive scheduled date, YYYY-MM-DD.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Maximum number of leads to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 80, 'description': 'Name, email, phone, source, or service interest.'}, 'source': {'type': ['string', 'null'], 'maxLength': 100, 'description': 'Optional exact lead source.'}, 'status': {'type': ['string', 'null'], 'maxLength': 40, 'description': 'Optional lead status.'}, 'urgency': {'type': ['string', 'null'], 'maxLength': 20, 'description': 'Optional urgency: low, medium, or high.'}, 'customer_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Restrict results to a customer ID.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1}, 'query': {'type': ['string', 'null'], 'maxLength': 80, 'description': 'Location name to search for.'}, 'status': {'type': ['string', 'null'], 'description': 'active, archived, or all.'}}}
Input schema
{'type': 'object', 'properties': {'type': {'enum': ['service', 'material'], 'type': ['string', 'null'], 'description': 'Service or material.'}, 'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum items to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Pricebook item name or description.'}, 'active': {'type': ['boolean', 'null'], 'description': 'Filter by active state; defaults to true.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Maximum number of estimates to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 80, 'description': 'Estimate title, customer name, email, or phone.'}, 'status': {'enum': ['draft', 'sent', 'changes_requested', 'approved', 'rejected', 'expired', 'converted'], 'type': ['string', 'null'], 'description': 'Optional estimate status.'}, 'customer_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Restrict results to one customer ID.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of campaigns to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Campaign name, message, channel, or job type.'}, 'status': {'enum': ['active', 'paused', 'archived'], 'type': ['string', 'null'], 'description': 'Campaign status.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of campaigns to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Campaign name, message, or channel.'}, 'status': {'enum': ['active', 'paused', 'archived'], 'type': ['string', 'null'], 'description': 'Campaign status.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of reviews to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Reviewer, customer, job title, review body, or platform.'}, 'platform': {'enum': ['google', 'facebook', 'yelp', 'industry', 'bbb', 'angi', 'thumbtack', 'custom'], 'type': ['string', 'null'], 'description': 'Review platform.'}, 'has_reply': {'type': ['boolean', 'null'], 'description': 'Filter by whether an owner reply exists.'}, 'rating_max': {'type': ['integer', 'null'], 'maximum': 5, 'minimum': 1, 'description': 'Maximum rating.'}, 'rating_min': {'type': ['integer', 'null'], 'maximum': 5, 'minimum': 1, 'description': 'Minimum rating.'}, 'reply_status': {'enum': ['none', 'pending', 'sent', 'failed'], 'type': ['string', 'null'], 'description': 'Reply delivery state.'}}}
Input schema
{'type': 'object', 'properties': {'q': {'type': ['string', 'null'], 'maxLength': 255, 'description': 'Client name, service type, or request text.'}, 'view': {'enum': ['inbox', 'pending', 'converted', 'outreach', 'all'], 'type': ['string', 'null'], 'description': 'Inbox view; defaults to active inbox records.'}, 'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of requests to return.'}, 'status': {'enum': ['sent', 'opened', 'submitted', 'reviewing', 'scheduled', 'quoted', 'converted'], 'type': ['string', 'null'], 'description': 'Optional exact active request status.'}, 'urgency': {'enum': ['low', 'medium', 'high'], 'type': ['string', 'null'], 'description': 'Optional urgency filter.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': ['integer', 'null'], 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of drafts to return.'}, 'query': {'type': ['string', 'null'], 'maxLength': 120, 'description': 'Draft content, platform, status, or ID.'}, 'status': {'enum': ['pending_approval', 'approved', 'rejected', 'published'], 'type': ['string', 'null'], 'description': 'Draft approval state.'}, 'platform': {'enum': ['facebook', 'instagram', 'google_business'], 'type': ['string', 'null'], 'description': 'Social platform.'}, 'review_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Optional source review ID.'}}}
Recent tool changes
Similar MCP servers
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Meta Council
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting a…
GestãoClick
Connects to the GestãoClick ERP to manage customers, suppliers, products, sales, service orders, budgets, and financial records.
Odichat
Manages WhatsApp, Instagram, and Facebook inboxes with contacts, conversations, agents, automation rules, labels, canned response…
Coordinalo — Service Business Operations
Manages appointment-based service businesses, including clients, providers, services, availability, public booking agendas, recur…
StackFast FractWin Expert Brain
Provides governed sales, negotiation, strategy, operations, CRM, estimation, artifact, and risk-management workflows with human a…
GrowthKit Revenue Intelligence
Supports B2B revenue operations with lead campaigns, ICP and company enrichment, CRM records and activities, outreach drafting, t…
KaiCalls
Provides AI phone reception, outbound calling campaigns, call transcripts and recordings, lead management, routing, staff alerts,…