이 MCP로 할 수 있는 일
Provides authenticated field-service workspace access for customers, leads, jobs, quotes, invoices, service requests, operations reports, campaigns, and reviews.
도구
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'type': 'object', 'properties': {'customer_id': {'type': 'integer', 'minimum': 1, 'description': 'Customer ID returned by search-customers.'}}}
입력 스키마
{'type': 'object', 'properties': {'invoice_id': {'type': 'integer', 'minimum': 1, 'description': 'Invoice ID returned by search-invoices.'}}}
입력 스키마
{'type': 'object', 'properties': {'invoice_id': {'type': 'integer', 'minimum': 1, 'description': 'Invoice ID returned by search-invoices.'}}}
입력 스키마
{'type': 'object', 'properties': {'job_id': {'type': 'integer', 'minimum': 1, 'description': 'Job ID returned by search-jobs or jobs-today.'}}}
입력 스키마
{'type': 'object', 'properties': {'lead_id': {'type': 'integer', 'minimum': 1, 'description': 'Lead ID returned by search-leads.'}}}
입력 스키마
{'type': 'object', 'properties': {'location_id': {'type': 'integer', 'minimum': 1, 'description': 'Location ID.'}}}
입력 스키마
{'type': 'object', 'properties': {'quote_id': {'type': 'integer', 'minimum': 1, 'description': 'Estimate ID returned by search-quotes.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'type': 'object', 'properties': {'service_request_id': {'type': 'integer', 'minimum': 1, 'description': 'Service-request ID returned by search-service-requests.'}}}
입력 스키마
{'type': 'object', 'properties': {}}
입력 스키마
{'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.'}}}
입력 스키마
{'type': 'object', 'properties': {'job_id': {'type': 'integer', 'minimum': 1, 'description': 'Job ID returned by search-jobs.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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}}}
입력 스키마
{'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}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
입력 스키마
{'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.'}}}
최근 도구 변경
유사한 MCP 서버
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,…