이 MCP로 할 수 있는 일
Connects authenticated users to business systems such as CRM, ecommerce, advertising, analytics, email marketing, SEO, calendars, and accounting platforms for reporting and analysis.
도구
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_contacts', 'get_campaigns', 'get_automations', 'get_deals', 'get_account_info', 'get_contact', 'search_contacts', 'get_lists', 'get_campaign', 'get_tags'], 'type': 'string', 'description': "get_contacts: List ActiveCampaign contacts with optional filters | get_campaigns: List ActiveCampaign campaigns with status and performance | get_automations: List ActiveCampaign automations | get_deals: List ActiveCampaign deals/pipeline opportunities | get_account_info: Get the authenticated ActiveCampaign user's account details (name, email, account). Also used to verify that the connect | get_contact: Get detailed information for a single ActiveCampaign contact by ID. Input: contact_id (required) | search_contacts: Search ActiveCampaign contacts by email, name, or phone number. Inputs: query (required), limit | get_lists: List all contact mailing lists in the ActiveCampaign account | get_campaign: Get detailed metrics for a single ActiveCampaign campaign (opens, clicks, bounces, unsubscribes). Input: campaign_id (re | get_tags: List all contact tags defined in the ActiveCampaign account, including subscriber counts"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_contacts: {limit?: integer, offset?: integer, query?: string} | get_campaigns: {limit?: integer, offset?: integer} | get_automations: {limit?: integer} | get_deals: {limit?: integer} | get_account_info: none | get_contact: {contact_id: string} | search_contacts: {query: string, limit?: integer} | get_lists: none | get_campaign: {campaign_id: string} | get_tags: none'}}}
입력 스키마
{'type': 'object', 'required': ['handle'], 'properties': {'label': {'type': 'string', 'description': "Optional human-readable label; defaults to the channel's YouTube title"}, 'handle': {'type': 'string', 'description': "YouTube @handle of the Brand Account channel (e.g. '@FourPeaksTactical')"}, 'set_as_primary': {'type': 'boolean', 'default': False, 'description': "When true, mark this brand as the user's primary so per-channel tools default to it. First brand registered is auto-primary regardless."}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_domain_overview', 'get_organic_keywords', 'get_backlinks_overview', 'get_refdomains', 'get_competitors', 'get_top_pages', 'get_keyword_overview'], 'type': 'string', 'description': "get_domain_overview: Get a combined domain authority, backlink, and organic traffic overview from Ahrefs for a given domain. Returns Domain R | get_organic_keywords: Get the top organic (SEO) keywords that a domain ranks for in Ahrefs. Returns keyword, ranking position, monthly search | get_backlinks_overview: Get a backlink profile summary for a domain from Ahrefs. Returns live backlink count, live referring domain count, all-t | get_refdomains: Get a list of referring domains linking to a given domain, from Ahrefs. Returns each referring domain with its Domain Ra | get_competitors: Get organic competitor domains for a given domain from Ahrefs. Returns domains that compete for the same organic keyword | get_top_pages: Get the top-performing pages for a domain ranked by organic traffic, from Ahrefs. Returns each page's URL path, estimate | get_keyword_overview: Get keyword research data from Ahrefs for a specific keyword or phrase. Returns monthly search volume, keyword difficult"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_domain_overview: {domain: string} | get_organic_keywords: {domain: string, country?: string, limit?: integer} | get_backlinks_overview: {domain: string} | get_refdomains: {domain: string, limit?: integer} | get_competitors: {domain: string, country?: string, limit?: integer} | get_top_pages: {domain: string, country?: string, limit?: integer} | get_keyword_overview: {keyword: string, country?: string}'}}}
입력 스키마
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 253, 'minLength': 1}, 'country': {'type': 'string', 'default': 'us', 'pattern': '^[a-z]{2}$'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['tool', 'status', 'summary_text', 'mime_type', 'width', 'height', 'image_sha256', 'evidence', 'execution_receipt', 'provider', 'query_ranges', 'facts'], 'properties': {'tool': {'const': 'ahrefs_dashboard'}, 'facts': {'type': 'object'}, 'width': {'const': 1600}, 'height': {'const': 992}, 'status': {'const': 'ok'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Ahrefs'}, 'mime_type': {'const': 'image/png'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'execution_receipt': {'type': 'object', 'required': ['version', 'renderer_version', 'font_sha256', 'query_sha256', 'data_sha256', 'image_sha256'], 'properties': {'version': {'const': 1}, 'data_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'font_sha256': {'type': 'object'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'renderer_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'provider', 'query_ranges', 'source_counts', 'evidence'], 'properties': {'tool': {'const': 'ahrefs_dashboard'}, 'status': {'const': 'no_data'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Ahrefs'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'source_counts': {'type': 'object'}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'error', 'message', 'evidence'], 'properties': {'tool': {'const': 'ahrefs_dashboard'}, 'error': {'type': 'string', 'minLength': 1}, 'status': {'const': 'error'}, 'message': {'type': 'string', 'minLength': 1}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'summary_text': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}]}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['list_bases', 'list_tables', 'list_records', 'search_records', 'get_record'], 'type': 'string', 'description': 'list_bases: List all Airtable bases the authenticated user has access to | list_tables: List all tables in a specific Airtable base | list_records: List records from an Airtable table with optional filtering, sorting, and pagination | search_records: Search Airtable records by keyword across fields | get_record: Fetch a single Airtable record by its record ID'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. list_bases: none | list_tables: {base_id: string} | list_records: {base_id: string, table_id: string, page_size?: integer, offset?: string, fields?: array, filter_formula?: string, view?: string, projection?: object} | search_records: {base_id: string, table_id: string, query: string} | get_record: {base_id: string, table_id: string, record_id: string}'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['list_amazon_orders', 'get_amazon_order', 'get_amazon_order_items', 'get_amazon_sales_metrics', 'list_amazon_inventory', 'list_amazon_listings', 'get_amazon_catalog_item', 'get_amazon_finances', 'get_amazon_marketplace_participations'], 'type': 'string', 'description': "list_amazon_orders: List orders from the seller's Amazon store with optional date and status filters. Returns order summaries with order ID, | get_amazon_order: Get full details for a single Amazon order by order ID: shipping address, buyer info, payment method, fulfillment channe | get_amazon_order_items: Get the line items (products) for a specific Amazon order: ASIN, seller SKU, title, quantity ordered/shipped, item price | get_amazon_sales_metrics: Get order metrics (revenue and units) for a time interval with a chosen granularity. Returns unit count, order count, an | list_amazon_inventory: Get FBA inventory summaries: ASIN, SKU, product name, fulfillable quantity, inbound, and reserved stock. Use when user a | list_amazon_listings: List the seller's product listings: SKU, ASIN, product type, item name, and listing status. Use when user asks 'what pro | get_amazon_catalog_item: Get catalog details for an Amazon product by ASIN: title, brand, manufacturer, product type, color, size, and main image | get_amazon_finances: List Amazon financial event groups (settlement periods): total amounts, fund transfer status, settlement dates, and acco | get_amazon_marketplace_participations: List all Amazon marketplaces the seller participates in, including marketplace IDs, country codes, and participation sta"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. list_amazon_orders: {created_after?: string, created_before?: string, order_statuses?: array, fulfillment_channels?: array, max_results?: integer, next_token?: string} | get_amazon_order: {order_id: string} | get_amazon_order_items: {order_id: string} | get_amazon_sales_metrics: {interval: string, granularity?: string} | list_amazon_inventory: {skus?: array, start_date_time?: string, max_results?: integer, next_token?: string} | list_amazon_listings: {max_results?: integer, page_token?: string} | get_amazon_catalog_item: {asin: string} | get_amazon_finances: {started_after?: string, started_before?: string, max_results?: integer, next_token?: string} | get_amazon_marketplace_participations: none'}}}
입력 스키마
{'type': 'object', 'required': ['question'], 'properties': {'mode': {'enum': ['router_first', 'required_runbook'], 'type': 'string', 'default': 'router_first', 'description': 'router_first asks the canonical skills router to select the runbook. required_runbook executes the supplied runbook_id without re-routing.'}, 'version': {'type': 'string', 'description': 'Exact governed runbook version. Required with content_hash when mode=required_runbook.'}, 'question': {'type': 'string', 'description': "The user's plain-language business question."}, 'arguments': {'type': 'object', 'description': 'Optional explicit runbook arguments, such as start_date and end_date in YYYY-MM-DD form.'}, 'runbook_id': {'type': 'string', 'description': 'Required only when mode=required_runbook. Omit in router_first mode.'}, 'content_hash': {'type': 'string', 'pattern': '^sha256:[0-9a-f]{64}$', 'description': 'Exact governed runbook SHA-256 content hash. Required with version when mode=required_runbook.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_account', 'list_companies', 'get_company', 'list_quotations', 'get_quotation', 'list_invoices', 'get_invoice', 'list_opportunities', 'get_opportunity', 'list_expenses', 'get_expense', 'list_payments', 'list_events', 'list_employees', 'list_suppliers', 'list_products', 'list_contracts', 'list_users', 'list_customfields'], 'type': 'string', 'description': "get_account: Get the connected Axonaut account and authenticated user profile. Returns the user id, email, full_name, roles, and a ne | list_companies: List Axonaut companies (third parties: customers, prospects, and suppliers) one page at a time. Each company includes id | get_company: Get full details for a single Axonaut company by id. Use when the user asks 'show me Axonaut company 12345', 'get the fu | list_quotations: List Axonaut quotations (devis / estimates) one page at a time. Each quotation includes id, number, title, date, expiry_ | get_quotation: Get full details for a single Axonaut quotation (devis) by id. Use when the user asks 'show me quotation 9001', 'what li | list_invoices: List Axonaut invoices (factures) one page at a time. Each invoice includes id, number, date, sent_date, due_date, paid_d | get_invoice: Get full details for a single Axonaut invoice (facture) by id. Use when the user asks 'show me invoice 5050', 'what's on | list_opportunities: List Axonaut CRM opportunities (deals) one page at a time. Each opportunity includes id, name, amount, probability (0-10 | get_opportunity: Get full details for a single Axonaut opportunity (deal) by id. Use when the user asks 'show me opportunity 700', 'what | list_expenses: List Axonaut expenses / supplier bills (dépenses) one page at a time. Each expense includes id, title, date, number, tot | get_expense: Get full details for a single Axonaut expense / supplier bill by id. Use when the user asks 'show me expense 808', 'what | list_payments: List Axonaut invoice payments (encaissements) one page at a time. Each payment includes id, invoice_id, amount, date, re | list_events: List Axonaut CRM events — the activity log of calls, meetings, notes, and tasks logged against companies and opportuniti | list_employees: List Axonaut employees — the contact people attached to companies (not your own staff), one page at a time. Each employe | list_suppliers: List Axonaut suppliers (fournisseurs) one page at a time. Each supplier includes id, company_id, name, prefered_tax_rate | list_products: List Axonaut products / catalogue items one page at a time. Each product includes id, name, product_code, description, p | list_contracts: List Axonaut contracts — recurring billing agreements that auto-generate invoices, one page at a time. Each contract inc | list_users: List Axonaut account team members (your own staff / seats) one page at a time. Each user includes id, email, fullname, f | list_customfields: List Axonaut custom-field definitions configured on the account, one page at a time. Returns the custom-field names that"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_account: none | list_companies: {page?: integer, page_size?: integer, search?: string, is_customer?: boolean, is_prospect?: boolean} | get_company: {companyId: string} | list_quotations: {page?: integer, page_size?: integer, companyId?: string} | get_quotation: {quotationId: string} | list_invoices: {page?: integer, page_size?: integer, companyId?: string} | get_invoice: {invoiceId: string} | list_opportunities: {page?: integer, page_size?: integer} | get_opportunity: {opportunityId: string} | list_expenses: {page?: integer, page_size?: integer} | get_expense: {expenseId: string} | list_payments: {page?: integer, page_size?: integer} | list_events: {page?: integer, page_size?: integer} | list_employees: {page?: integer, page_size?: integer} | list_suppliers: {page?: integer, page_size?: integer} | list_products: {page?: integer, page_size?: integer} | list_contracts: {page?: integer, page_size?: integer} | list_users: {page?: integer, page_size?: integer} | list_customfields: {page?: integer, page_size?: integer}'}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'end_date': {'type': 'string', 'default': 'today', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}, 'start_date': {'type': 'string', 'default': '30daysAgo', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['tool', 'status', 'summary_text', 'mime_type', 'width', 'height', 'image_sha256', 'evidence', 'execution_receipt', 'provider', 'query_ranges', 'facts'], 'properties': {'tool': {'const': 'axonaut_dashboard'}, 'facts': {'type': 'object', 'required': ['company_name', 'currency', 'gross_invoice_total', 'invoice_credits_total', 'invoice_total', 'prior_invoice_total', 'invoice_delta_percent', 'payments_total', 'outstanding_total', 'outstanding_coverage', 'open_pipeline_total', 'weighted_pipeline_total', 'trend', 'pipeline_stages', 'pipeline_coverage', 'reconciliation', 'source_counts', 'period_counts'], 'properties': {'trend': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'value'], 'properties': {'date': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}(?:-[0-9]{2})?$'}, 'value': {'type': 'number', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}, 'maxItems': 366}, 'currency': {'type': 'string', 'pattern': '^[A-Z]{3}$'}, 'company_name': {'type': 'string', 'maxLength': 72, 'minLength': 1}, 'invoice_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'period_counts': {'type': 'object', 'required': ['invoices', 'prior_invoices', 'credit_invoices', 'payments', 'open_opportunities'], 'properties': {'invoices': {'type': 'integer', 'minimum': 0}, 'payments': {'type': 'integer', 'minimum': 0}, 'prior_invoices': {'type': 'integer', 'minimum': 0}, 'credit_invoices': {'type': 'integer', 'minimum': 0}, 'open_opportunities': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'source_counts': {'type': 'object', 'required': ['invoices', 'payments', 'opportunities'], 'properties': {'invoices': {'type': 'integer', 'minimum': 0}, 'payments': {'type': 'integer', 'minimum': 0}, 'opportunities': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'payments_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'reconciliation': {'type': 'object', 'required': ['status', 'reason_code', 'gross_invoice_total', 'invoice_credits_total', 'invoice_total', 'trend_total', 'difference'], 'properties': {'status': {'const': 'matched'}, 'difference': {'const': 0.0}, 'reason_code': {'const': 'signed_invoice_rows_equal_trend_total'}, 'trend_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'invoice_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'gross_invoice_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': 0}, 'invoice_credits_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'pipeline_stages': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value', 'weighted_value'], 'properties': {'label': {'type': 'string', 'maxLength': 24, 'minLength': 1}, 'value': {'type': 'number', 'maximum': 9007199254740991, 'minimum': 0}, 'weighted_value': {'oneOf': [{'type': 'number', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 8}, 'outstanding_total': {'oneOf': [{'type': 'number', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}], 'description': "Signed net outstanding amount, or null when any current-period invoice omits Axonaut's nullable outstanding_amount field."}, 'pipeline_coverage': {'type': 'object', 'required': ['open_opportunities', 'priced_opportunities', 'weighted_opportunities', 'unpriced_opportunities', 'unweighted_priced_opportunities'], 'properties': {'open_opportunities': {'type': 'integer', 'minimum': 0}, 'priced_opportunities': {'type': 'integer', 'minimum': 0}, 'unpriced_opportunities': {'type': 'integer', 'minimum': 0}, 'weighted_opportunities': {'type': 'integer', 'minimum': 0}, 'unweighted_priced_opportunities': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'gross_invoice_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': 0}, 'open_pipeline_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Sum of explicitly priced open opportunities; unpriced opportunities are excluded and counted in pipeline_coverage.'}, 'prior_invoice_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'outstanding_coverage': {'type': 'object', 'required': ['current_invoices', 'valued_invoices', 'missing_invoices'], 'properties': {'valued_invoices': {'type': 'integer', 'minimum': 0}, 'current_invoices': {'type': 'integer', 'minimum': 0}, 'missing_invoices': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'invoice_credits_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': 0}, 'invoice_delta_percent': {'type': ['number', 'null'], 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'weighted_pipeline_total': {'oneOf': [{'type': 'number', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}], 'description': 'Probability-weighted total for explicitly priced open opportunities, or null when no open opportunity has a price or when any priced opportunity has no probability.'}}, 'additionalProperties': False}, 'width': {'const': 1600}, 'height': {'const': 992}, 'status': {'const': 'ok'}, 'evidence': {'type': 'object', 'required': ['status', 'authoritative', 'source', 'reconciliation'], 'properties': {'source': {'const': 'live_axonaut_api'}, 'status': {'const': 'verified_live_connector_data'}, 'authoritative': {'const': True}, 'reconciliation': {'type': 'object', 'required': ['status', 'reason_code', 'gross_invoice_total', 'invoice_credits_total', 'invoice_total', 'trend_total', 'difference'], 'properties': {'status': {'const': 'matched'}, 'difference': {'const': 0.0}, 'reason_code': {'const': 'signed_invoice_rows_equal_trend_total'}, 'trend_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'invoice_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'gross_invoice_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': 0}, 'invoice_credits_total': {'type': 'number', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'provider': {'const': 'Axonaut'}, 'mime_type': {'const': 'image/png'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_ranges': {'type': 'object', 'required': ['current', 'prior'], 'properties': {'prior': {'type': 'object', 'required': ['start_date', 'end_date'], 'properties': {'end_date': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'}, 'start_date': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'}}, 'additionalProperties': False}, 'current': {'type': 'object', 'required': ['start_date', 'end_date'], 'properties': {'end_date': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'}, 'start_date': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'summary_text': {'type': 'string', 'minLength': 1}, 'execution_receipt': {'type': 'object', 'required': ['version', 'renderer_version', 'font_sha256', 'query_sha256', 'data_sha256', 'image_sha256'], 'properties': {'version': {'const': 1}, 'data_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'font_sha256': {'type': 'object', 'required': ['regular', 'semibold', 'bold'], 'properties': {'bold': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'regular': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'semibold': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}}, 'additionalProperties': False}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'renderer_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'provider', 'query_ranges', 'source_counts', 'period_counts', 'evidence'], 'properties': {'tool': {'const': 'axonaut_dashboard'}, 'status': {'const': 'no_data'}, 'evidence': {'type': 'object', 'required': ['status', 'authoritative'], 'properties': {'status': {'const': 'verified_live_connector_no_data'}, 'authoritative': {'const': True}}, 'additionalProperties': False}, 'provider': {'const': 'Axonaut'}, 'query_ranges': {'type': 'object', 'required': ['current', 'prior'], 'properties': {'prior': {'type': 'object', 'required': ['start_date', 'end_date'], 'properties': {'end_date': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'}, 'start_date': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'}}, 'additionalProperties': False}, 'current': {'type': 'object', 'required': ['start_date', 'end_date'], 'properties': {'end_date': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'}, 'start_date': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'summary_text': {'type': 'string', 'minLength': 1}, 'period_counts': {'type': 'object', 'required': ['invoices', 'prior_invoices', 'credit_invoices', 'payments', 'open_opportunities'], 'properties': {'invoices': {'type': 'integer', 'minimum': 0}, 'payments': {'type': 'integer', 'minimum': 0}, 'prior_invoices': {'type': 'integer', 'minimum': 0}, 'credit_invoices': {'type': 'integer', 'minimum': 0}, 'open_opportunities': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'source_counts': {'type': 'object', 'required': ['invoices', 'payments', 'opportunities'], 'properties': {'invoices': {'type': 'integer', 'minimum': 0}, 'payments': {'type': 'integer', 'minimum': 0}, 'opportunities': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'error', 'message', 'evidence'], 'properties': {'tool': {'const': 'axonaut_dashboard'}, 'error': {'type': 'string', 'minLength': 1}, 'status': {'const': 'error'}, 'message': {'type': 'string', 'minLength': 1}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'summary_text': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}]}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_sites', 'get_rank_and_traffic', 'get_query_stats', 'get_url_traffic', 'get_crawl_stats', 'get_link_counts'], 'type': 'string', 'description': 'get_sites: List the sites the connected Bing Webmaster user has verified. Call this first to discover the siteUrl values the other | get_rank_and_traffic: Get the Bing organic rank & traffic time series for a verified site: daily impressions and clicks, plus totals over the | get_query_stats: Get the top Bing search queries driving impressions and clicks to a verified site, with average impression/click positio | get_url_traffic: Get index + traffic detail for a single page on a verified site: clicks, impressions, indexed status, last-crawled date, | get_crawl_stats: Get the Bing crawl statistics time series for a verified site: crawled pages, in-index count, inbound links, crawl error | get_link_counts: Get inbound link counts per page for a verified site (the Bing inbound-link profile). Use for off-page SEO, backlink vol'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_sites: none | get_rank_and_traffic: {site_url: string} | get_query_stats: {site_url: string} | get_url_traffic: {site_url: string, url: string} | get_crawl_stats: {site_url: string} | get_link_counts: {site_url: string, page?: integer}'}}}
입력 스키마
{'type': 'object', 'required': ['site_url'], 'properties': {'end_date': {'type': 'string', 'default': 'today', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}, 'site_url': {'type': 'string', 'pattern': '^https?://[^\\s]+$', 'maxLength': 2048, 'minLength': 8}, 'start_date': {'type': 'string', 'default': '30daysAgo', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['tool', 'status', 'summary_text', 'mime_type', 'width', 'height', 'image_sha256', 'evidence', 'execution_receipt', 'provider', 'query_ranges', 'facts'], 'properties': {'tool': {'const': 'bing_webmaster_dashboard'}, 'facts': {'type': 'object'}, 'width': {'const': 1600}, 'height': {'const': 992}, 'status': {'const': 'ok'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Bing Webmaster Tools'}, 'mime_type': {'const': 'image/png'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'execution_receipt': {'type': 'object', 'required': ['version', 'renderer_version', 'font_sha256', 'query_sha256', 'data_sha256', 'image_sha256'], 'properties': {'version': {'const': 1}, 'data_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'font_sha256': {'type': 'object'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'renderer_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'provider', 'query_ranges', 'source_counts', 'evidence'], 'properties': {'tool': {'const': 'bing_webmaster_dashboard'}, 'status': {'const': 'no_data'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Bing Webmaster Tools'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'source_counts': {'type': 'object'}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'error', 'message', 'evidence'], 'properties': {'tool': {'const': 'bing_webmaster_dashboard'}, 'error': {'type': 'string', 'minLength': 1}, 'status': {'const': 'error'}, 'message': {'type': 'string', 'minLength': 1}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'summary_text': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}]}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['list_my_calendar_events', 'search_my_calendar', 'list_my_outlook_events', 'list_my_calendars', 'get_my_calendar_event', 'get_my_outlook_folders', 'list_my_outlook_calendars', 'get_my_outlook_event', 'search_my_outlook_calendar'], 'type': 'string', 'description': 'list_my_calendar_events: List upcoming Google Calendar events | search_my_calendar: Search Google Calendar events by text | list_my_outlook_events: List upcoming Outlook calendar events. Requires Microsoft authentication | list_my_calendars: List all Google Calendars the user has access to | get_my_calendar_event: Get details of a specific Google Calendar event by ID | get_my_outlook_folders: List Outlook email folders with message counts. Requires Microsoft authentication via /oauth/microsoft/authorize | list_my_outlook_calendars: List all Microsoft/Outlook calendars the user has access to. Requires Microsoft authentication via /oauth/microsoft/auth | get_my_outlook_event: Get details of a specific Microsoft/Outlook calendar event by ID. Requires Microsoft authentication via /oauth/microsoft | search_my_outlook_calendar: Search Microsoft/Outlook calendar events by text. Requires Microsoft authentication via /oauth/microsoft/authorize'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. list_my_calendar_events: {calendar_id?: string, max_results?: integer, time_min?: string, time_max?: string} | search_my_calendar: {query: string, calendar_id?: string, max_results?: integer} | list_my_outlook_events: {max_results?: integer, calendar_id?: string, start_datetime?: string, end_datetime?: string} | list_my_calendars: none | get_my_calendar_event: {event_id: string, calendar_id?: string} | get_my_outlook_folders: none | list_my_outlook_calendars: none | get_my_outlook_event: {event_id: string, calendar_id?: string} | search_my_outlook_calendar: {query: string, max_results?: integer}'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['list_scheduled_events', 'list_event_types', 'get_user', 'get_scheduled_event', 'list_event_invitees', 'list_organization_memberships', 'get_user_availability'], 'type': 'string', 'description': "list_scheduled_events: List scheduled Calendly meetings/events with invitee and time details | list_event_types: List all Calendly event types (booking links) for the user | get_user: Get the authenticated Calendly user's profile and scheduling URL | get_scheduled_event: Get full details for a single Calendly scheduled event by its UUID: invitee count, location, event type, cancellation re | list_event_invitees: List the invitees (guests) for a specific Calendly scheduled event. Shows each invitee's name, email, status, and any qu | list_organization_memberships: List all members of the user's Calendly organization. Shows each member's role, status, and profile URI. Use when user a | get_user_availability: Get the user's availability schedules from Calendly, showing which hours/days they are available for bookings. Use when "}, 'params': {'type': 'object', 'description': 'Action-specific parameters. list_scheduled_events: {count?: integer, status?: string, min_start_time?: string, max_start_time?: string} | list_event_types: none | get_user: none | get_scheduled_event: {event_uuid: string} | list_event_invitees: {event_uuid: string, count?: integer, page_token?: string} | list_organization_memberships: {count?: integer, page_token?: string} | get_user_availability: none'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['callrail_list_accounts', 'callrail_get_account', 'callrail_list_companies', 'callrail_list_calls', 'callrail_list_trackers'], 'type': 'string', 'description': "callrail_list_accounts: List the CallRail accounts this connection can access. Returns each account's id and name. Call this first to resolve th | callrail_get_account: Get a single CallRail account summary by account_id (name, id, features). Requires account_id from callrail_list_account | callrail_list_companies: List the companies (tracked businesses) under a CallRail account. Requires account_id. [Breadth-tier connector via Nango | callrail_list_calls: List calls tracked under a CallRail account: tracking number, duration, start time, source, and caller data. Requires ac | callrail_list_trackers: List the tracking numbers (trackers) configured under a CallRail account. Requires account_id. [Breadth-tier connector v"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. callrail_list_accounts: none | callrail_get_account: {account_id: string} | callrail_list_companies: {account_id: string} | callrail_list_calls: {account_id: string} | callrail_list_trackers: {account_id: string}'}}}
입력 스키마
{'type': 'object', 'properties': {'token_budget': {'type': 'integer', 'default': 1500, 'description': 'Approximate maximum context tokens to return. Default 1500.'}}}
입력 스키마
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'Decision text to log.'}, 'context': {'type': 'string', 'description': 'Optional context explaining why this decision was made.'}}}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 50}}}
입력 스키마
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': 'Canonical fact key.'}}}
입력 스키마
{'type': 'object', 'properties': {'category': {'type': 'string', 'description': 'Optional fact category such as product, pricing, team, or taglines.'}}}
입력 스키마
{'type': 'object', 'required': ['key', 'value', 'category'], 'properties': {'key': {'type': 'string'}, 'value': {'type': 'string'}, 'category': {'type': 'string', 'default': 'general'}}}
입력 스키마
{'type': 'object', 'required': ['pending_write_id'], 'properties': {'pending_write_id': {'type': 'string'}}}
입력 스키마
{'type': 'object', 'required': ['pending_write_id', 'user_confirmation'], 'properties': {'pending_write_id': {'type': 'string'}, 'user_confirmation': {'type': 'string', 'description': "The user's explicit confirmation text. Must be yes/confirmed/approve/approved."}}}
입력 스키마
{'type': 'object', 'required': ['title', 'data'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value'], 'properties': {'label': {'type': 'string', 'maxLength': 40}, 'value': {'type': 'number', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'secondary': {'type': 'number', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'title': {'type': 'string', 'maxLength': 120}, 'width': {'type': 'integer', 'default': 800, 'maximum': 1200, 'minimum': 600}, 'height': {'type': 'integer', 'default': 450, 'maximum': 800, 'minimum': 360}, 'source': {'type': 'string', 'maxLength': 160, 'description': 'Display label only; it is not treated as verified provenance.'}, 'template': {'enum': ['corpusiq-clean', 'metric-cards', 'comparison'], 'type': 'string', 'default': 'corpusiq-clean'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['tool', 'status', 'summary_text', 'mime_type', 'width', 'height', 'image_sha256', 'evidence', 'execution_receipt', 'template', 'data'], 'properties': {'data': {'type': 'array', 'maxItems': 50, 'minItems': 1}, 'tool': {'const': 'chart_render'}, 'width': {'type': 'integer', 'minimum': 1}, 'height': {'type': 'integer', 'minimum': 1}, 'status': {'const': 'ok'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'template': {'enum': ['corpusiq-clean', 'metric-cards', 'comparison']}, 'mime_type': {'const': 'image/png'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'execution_receipt': {'type': 'object', 'required': ['version', 'renderer_version', 'font_sha256', 'data_sha256', 'image_sha256'], 'properties': {'version': {'const': 1}, 'data_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'font_sha256': {'type': 'object'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'renderer_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'error', 'message', 'evidence'], 'properties': {'tool': {'const': 'chart_render'}, 'error': {'type': 'string', 'minLength': 1}, 'status': {'const': 'error'}, 'message': {'type': 'string', 'minLength': 1}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'summary_text': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}]}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['close_list_leads', 'close_get_lead', 'close_list_opportunities', 'close_list_activities', 'close_search', 'close_list_users'], 'type': 'string', 'description': 'close_list_leads: List leads in the connected Close CRM organization. Returns lead id, display_name, status_label, contacts, addresses, an | close_get_lead: Get a single Close CRM lead by id, including all custom fields, contacts, addresses, and opportunities | close_list_opportunities: List Close CRM opportunities (pipeline deals): value, status, expected close, lead reference | close_list_activities: List recent activities (calls, emails, notes, meetings) for the Close CRM organization | close_search: Full-text search across Close CRM leads (with embedded contacts and opportunities). Accepts Close Query Language or free | close_list_users: List Close CRM organization users (sales reps) for activity attribution. Returns user id, email, name, and image'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. close_list_leads: {query?: string, limit?: integer, skip?: integer} | close_get_lead: {lead_id: string} | close_list_opportunities: {lead_id?: string, status_type?: string, limit?: integer, skip?: integer} | close_list_activities: {lead_id?: string, user_id?: string, activity_type?: string, limit?: integer, skip?: integer} | close_search: {query: string, limit?: integer} | close_list_users: {limit?: integer, skip?: integer}'}}}
입력 스키마
{'type': 'object', 'properties': {}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_account_summary', 'get_account_emails', 'get_user_privileges', 'get_contacts', 'get_contact', 'search_contacts', 'get_lists', 'get_list', 'get_tags', 'get_tag', 'get_segments', 'get_segment', 'get_custom_fields', 'get_campaigns', 'get_campaign', 'get_campaign_activity', 'get_campaign_stats', 'get_campaigns_summary', 'get_campaign_tracking_opens', 'get_campaign_tracking_clicks', 'get_contact_activity_summary'], 'type': 'string', 'description': "get_account_summary: Return the Constant Contact account summary: organisation name, contact email, phone, website, country, and optionally t | get_account_emails: Return email addresses registered on the Constant Contact account and their confirmation status. Use when the user asks | get_user_privileges: Return the privileges granted to the authenticated Constant Contact API user. Use to check whether the connected account | get_contacts: Return a paginated list of Constant Contact contacts with optional status and date filters. Use when the user asks 'show | get_contact: Return full details for a single Constant Contact contact by ID. Use after get_cc_contacts or search_cc_contacts to dril | search_contacts: Search Constant Contact contacts by email address, subscription status, list membership, or tag. Use when the user asks | get_lists: Return all Constant Contact mailing lists (contact lists) in the account. Use when the user asks 'show my mailing lists' | get_list: Return details for a single Constant Contact contact list. Use after get_cc_lists to inspect a specific list. Inputs: li | get_tags: Return all contact tags in the Constant Contact account, optionally including how many contacts have each tag. Use when | get_tag: Return details for a single Constant Contact tag. Use after get_cc_tags to inspect a specific tag. Inputs: tag_id (requi | get_segments: Return all contact segments defined in the Constant Contact account. Use when the user asks 'show my segments' or needs | get_segment: Return full details including segment_criteria for a single Constant Contact segment. This is the only endpoint that ret | get_custom_fields: Return all custom contact fields defined in the Constant Contact account. Use when the user asks 'what custom fields do | get_campaigns: Return a paginated list of Constant Contact email campaigns with optional date range filters. Use when the user asks 'sh | get_campaign: Return full metadata for a single Constant Contact email campaign. Use after get_cc_campaigns to drill into a specific c | get_campaign_activity: Return the content and send details for a specific campaign activity. A campaign may have multiple activities (A/B test | get_campaign_stats: Return aggregate percentage-level stats for a Constant Contact campaign: open rate, click rate, did-not-open rate, mobil | get_campaigns_summary: Return a summary performance report for multiple Constant Contact campaigns in a single request: sends, opens, clicks, f | get_campaign_tracking_opens: Return the list of contacts who opened a specific Constant Contact campaign activity, with device type and timestamp. Us | get_campaign_tracking_clicks: Return the list of contacts who clicked a link in a specific Constant Contact campaign activity, with optional filtering | get_contact_activity_summary: Return a summary of recent email campaign activity for a specific contact: which campaigns were sent to them, and how th"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_account_summary: {include_physical_address?: boolean, include_company_logo?: boolean} | get_account_emails: {confirm_status?: string} | get_user_privileges: none | get_contacts: {limit?: integer, status?: string, updated_after?: string, updated_before?: string, created_after?: string, created_before?: string, include?: string} | get_contact: {contact_id: string, include?: string} | search_contacts: {email?: string, status?: string, list_id?: string, tag_id?: string, limit?: integer, include?: string} | get_lists: {limit?: integer} | get_list: {list_id: string} | get_tags: {limit?: integer, include_counts?: boolean} | get_tag: {tag_id: string} | get_segments: {limit?: integer, sort_by?: string} | get_segment: {segment_id: string} | get_custom_fields: {limit?: integer} | get_campaigns: {limit?: integer, after_date?: string, before_date?: string} | get_campaign: {campaign_id: string} | get_campaign_activity: {campaign_activity_id: string, include?: string} | get_campaign_stats: {campaign_id: string} | get_campaigns_summary: {limit?: integer} | get_campaign_tracking_opens: {campaign_activity_id: string, limit?: integer} | get_campaign_tracking_clicks: {campaign_activity_id: string, url_id?: string, limit?: integer} | get_contact_activity_summary: {contact_id: string, start?: string, end?: string}'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['list_hubspot_contacts', 'search_hubspot_contacts', 'list_hubspot_deals', 'list_leadconnector_contacts', 'get_hubspot_account_info', 'get_hubspot_contact', 'list_hubspot_companies', 'get_hubspot_company', 'get_hubspot_deal', 'get_leadconnector_location_info', 'get_leadconnector_contact', 'search_leadconnector_contacts', 'list_leadconnector_opportunities', 'get_leadconnector_opportunity', 'list_leadconnector_calendars', 'list_leadconnector_appointments', 'list_leadconnector_conversations', 'get_leadconnector_conversation', 'list_leadconnector_payments', 'list_leadconnector_forms'], 'type': 'string', 'description': 'list_hubspot_contacts: List HubSpot contacts using legacy API pagination | search_hubspot_contacts: Search HubSpot contacts by keyword | list_hubspot_deals: List HubSpot deals with pagination | list_leadconnector_contacts: List LeadConnector contacts with optional filters. Requires LeadConnector authentication | get_hubspot_account_info: Get HubSpot account and portal metadata for the authenticated user | get_hubspot_contact: Get full details for a HubSpot contact by ID | list_hubspot_companies: List HubSpot companies with pagination | get_hubspot_company: Get full details for a HubSpot company by ID | get_hubspot_deal: Get full details for a HubSpot deal by ID | get_leadconnector_location_info: Get metadata for the authenticated LeadConnector sub-account (location): name, address, phone, email, timezone, and plan | get_leadconnector_contact: Get full details for a single LeadConnector contact by ID, including custom fields and tags | search_leadconnector_contacts: Search LeadConnector contacts by name, email address, or phone number | list_leadconnector_opportunities: List opportunities (pipeline deals) in the connected LeadConnector location | get_leadconnector_opportunity: Get full details for a single LeadConnector opportunity (deal) by ID | list_leadconnector_calendars: List all calendars configured in the connected LeadConnector location | list_leadconnector_appointments: List calendar appointments (events) in the connected LeadConnector location, optionally filtered by date range | list_leadconnector_conversations: List conversation threads (SMS, email, calls) in the connected LeadConnector location | get_leadconnector_conversation: Get a LeadConnector conversation thread by ID, including the full message history | list_leadconnector_payments: List payment orders for the connected LeadConnector location | list_leadconnector_forms: List forms configured in the connected LeadConnector location'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. list_hubspot_contacts: {limit?: integer, vid_offset?: integer} | search_hubspot_contacts: {query: string, limit?: integer} | list_hubspot_deals: {limit?: integer, offset?: integer} | list_leadconnector_contacts: {limit?: integer, query?: string} | get_hubspot_account_info: none | get_hubspot_contact: {contact_id: integer} | list_hubspot_companies: {limit?: integer, offset?: integer} | get_hubspot_company: {company_id: integer} | get_hubspot_deal: {deal_id: integer} | get_leadconnector_location_info: none | get_leadconnector_contact: {contact_id: string} | search_leadconnector_contacts: {query: string, limit?: integer} | list_leadconnector_opportunities: {pipeline_id?: string, limit?: integer, skip?: integer} | get_leadconnector_opportunity: {opportunity_id: string} | list_leadconnector_calendars: none | list_leadconnector_appointments: {start_date?: string, end_date?: string, limit?: integer} | list_leadconnector_conversations: {limit?: integer, last_message_after?: string} | get_leadconnector_conversation: {conversation_id: string} | list_leadconnector_payments: {limit?: integer, skip?: integer, start_date?: string, end_date?: string} | list_leadconnector_forms: {limit?: integer, skip?: integer}'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['correlate_spend_vs_ga4_sessions', 'correlate_conversions_vs_ga4_goals', 'correlate_spend_vs_ga4_revenue'], 'type': 'string', 'description': 'correlate_spend_vs_ga4_sessions: Cross-source: Google Ads daily spend/clicks/impressions vs GA4 web sessions and users by date. Shows whether paid ad act | correlate_conversions_vs_ga4_goals: Cross-source: Google Ads reported conversions vs GA4 conversion events by date. Surfaces attribution discrepancies betwe | correlate_spend_vs_ga4_revenue: Cross-source: Google Ads daily spend vs GA4 ecommerce purchase revenue. Computes day-level and overall GA4-attributed RO'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. correlate_spend_vs_ga4_sessions: {customer_id: string, property_id: string, start_date?: string, end_date?: string} | correlate_conversions_vs_ga4_goals: {customer_id: string, property_id: string, start_date?: string, end_date?: string} | correlate_spend_vs_ga4_revenue: {customer_id: string, property_id: string, start_date?: string, end_date?: string}'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['correlate_email_vs_web_traffic', 'correlate_email_revenue_vs_ecommerce', 'correlate_email_vs_social_ads', 'get_channel_attribution_summary', 'correlate_list_growth_vs_youtube', 'correlate_form_signups_vs_ad_traffic', 'correlate_flow_revenue_vs_campaign_sends'], 'type': 'string', 'description': 'correlate_email_vs_web_traffic: Cross-source: Klaviyo email sends vs GA4 web sessions by date. Shows whether email days drive traffic spikes | correlate_email_revenue_vs_ecommerce: Cross-source: Klaviyo email revenue vs Shopify/GA4 ecommerce revenue by date. For non-dev users, Shopify must come from | correlate_email_vs_social_ads: Cross-source: Klaviyo email metrics vs Facebook ad spend by date | get_channel_attribution_summary: Unified revenue attribution across Klaviyo email, SMS, Shopify, GA4, and Facebook by date. For non-dev users, call the o | correlate_list_growth_vs_youtube: Cross-source: Klaviyo list growth vs YouTube views by date. Shows if YouTube drives signups | correlate_form_signups_vs_ad_traffic: Cross-source: Klaviyo form submits vs GA4 traffic and Facebook ad spend by date | correlate_flow_revenue_vs_campaign_sends: Klaviyo-internal: flow revenue vs campaign send volume by date'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. correlate_email_vs_web_traffic: {start_date?: string, end_date?: string} | correlate_email_revenue_vs_ecommerce: {start_date?: string, end_date?: string, external_shopify_data?: object} | correlate_email_vs_social_ads: {start_date?: string, end_date?: string} | get_channel_attribution_summary: {start_date?: string, end_date?: string, external_shopify_data?: object} | correlate_list_growth_vs_youtube: {start_date?: string, end_date?: string} | correlate_form_signups_vs_ad_traffic: {start_date?: string, end_date?: string} | correlate_flow_revenue_vs_campaign_sends: {start_date?: string, end_date?: string}'}}}
입력 스키마
{'type': 'object', 'required': ['property_id'], 'properties': {'metric': {'enum': ['sessions', 'eventCount'], 'type': 'string', 'default': 'sessions'}, 'end_date': {'type': 'string', 'default': 'today', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}, 'event_name': {'type': 'string', 'maxLength': 80, 'description': 'Optional exact GA4 eventName filter; valid only with metric=eventCount.'}, 'start_date': {'type': 'string', 'default': '30daysAgo', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}, 'property_id': {'type': 'string', 'pattern': '^properties/[0-9]+$', 'description': 'GA4 property ID in properties/123456789 format.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['tool', 'status', 'summary_text', 'mime_type', 'width', 'height', 'image_sha256', 'evidence', 'execution_receipt', 'provider', 'property_id', 'metric', 'query_ranges', 'total', 'prior_total', 'daily', 'sources', 'reconciliation', 'watermarked'], 'properties': {'tool': {'const': 'dashboard_render'}, 'daily': {'type': 'array'}, 'total': {'type': 'integer', 'minimum': 0}, 'width': {'type': 'integer', 'minimum': 1}, 'height': {'type': 'integer', 'minimum': 1}, 'metric': {'enum': ['sessions', 'eventCount']}, 'status': {'const': 'ok'}, 'sources': {'type': 'array'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Google Analytics GA4'}, 'mime_type': {'const': 'image/png'}, 'event_name': {'type': ['string', 'null']}, 'prior_total': {'type': 'integer', 'minimum': 0}, 'property_id': {'type': 'string', 'pattern': '^properties/[0-9]+$'}, 'watermarked': {'type': 'boolean'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'delta_percent': {'type': ['number', 'null']}, 'reconciliation': {'type': 'object', 'required': ['status', 'reason_code', 'canonical_total', 'daily_total', 'source_total', 'daily_delta', 'source_delta', 'difference', 'allowed_delta', 'daily_row_count', 'daily_returned_rows', 'source_row_count', 'source_returned_rows', 'attempts'], 'properties': {'status': {'enum': ['matched', 'within_tolerance', 'unverified']}, 'attempts': {'type': 'integer', 'maximum': 2, 'minimum': 1}, 'difference': {'type': 'integer'}, 'daily_delta': {'type': 'integer'}, 'daily_total': {'type': 'integer', 'minimum': 0}, 'reason_code': {'type': 'string', 'minLength': 1}, 'source_delta': {'type': 'integer'}, 'source_total': {'type': 'integer', 'minimum': 0}, 'allowed_delta': {'type': 'integer', 'minimum': 0}, 'canonical_total': {'type': 'integer', 'minimum': 0}, 'daily_row_count': {'type': 'integer', 'minimum': 0}, 'source_row_count': {'type': 'integer', 'minimum': 0}, 'daily_returned_rows': {'type': 'integer', 'minimum': 0}, 'source_returned_rows': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'execution_receipt': {'type': 'object', 'required': ['version', 'renderer_version', 'font_sha256', 'query_sha256', 'data_sha256', 'image_sha256'], 'properties': {'version': {'const': 1}, 'data_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'font_sha256': {'type': 'object'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'renderer_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'metric', 'query_ranges', 'evidence'], 'properties': {'tool': {'const': 'dashboard_render'}, 'metric': {'enum': ['sessions', 'eventCount']}, 'status': {'const': 'no_data'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'error', 'message', 'evidence'], 'properties': {'tool': {'const': 'dashboard_render'}, 'error': {'type': 'string', 'minLength': 1}, 'status': {'const': 'error'}, 'message': {'type': 'string', 'minLength': 1}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'summary_text': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}]}
입력 스키마
{'type': 'object', 'required': ['connector_id'], 'properties': {'connector_id': {'type': 'string', 'description': 'Connector ID to disable. Examples: shopify, tiktok, ebay, microsoft, slack, google_ads, quickbooks, klaviyo.'}}}
입력 스키마
{'type': 'object', 'properties': {}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['search_drive', 'list_drive_files', 'search_my_onedrive', 'search_my_dropbox', 'read_sheet', 'get_drive_stats', 'get_file_content', 'get_my_onedrive_storage', 'list_my_onedrive_files', 'read_my_onedrive_file', 'get_my_onedrive_recent', 'get_my_onedrive_shared', 'get_my_dropbox_storage', 'list_my_dropbox_files', 'read_my_dropbox_file', 'get_my_dropbox_recent', 'get_my_dropbox_account'], 'type': 'string', 'description': "search_drive: Search Google Drive files that the authenticated user has access to | list_drive_files: List files from Google Drive with pagination | search_my_onedrive: Search OneDrive files by name or content. Requires Microsoft authentication | search_my_dropbox: Search for files in Dropbox by name or content | read_sheet: Read data from a Google Sheets spreadsheet | get_drive_stats: Get statistics about the user's Google Drive including storage usage. Useful before iterating through a large drive | get_file_content: Get the content of a Google Drive file | get_my_onedrive_storage: Get OneDrive storage information including quota, used space, and remaining space. Use when user asks about 'my OneDrive | list_my_onedrive_files: List files from Microsoft OneDrive with pagination. Use when user asks 'show my OneDrive files'. Requires Microsoft auth | read_my_onedrive_file: Read the content of a file from OneDrive. Supports Word, Excel, PowerPoint, PDFs, and text files. Requires Microsoft aut | get_my_onedrive_recent: Get recently accessed files from OneDrive. Requires Microsoft authentication via /oauth/microsoft/authorize | get_my_onedrive_shared: Get files shared with the user in OneDrive. Requires Microsoft authentication via /oauth/microsoft/authorize | get_my_dropbox_storage: Get Dropbox storage information including quota, used space, and remaining space. Use when user asks about 'my Dropbox s | list_my_dropbox_files: List files in Dropbox. Supports pagination and filtering by folder. Use when user asks 'show my Dropbox files', 'what's | read_my_dropbox_file: Read content of a file from Dropbox. Supports Word docs, Excel, PowerPoint, PDFs, and text files | get_my_dropbox_recent: Get recently modified files from Dropbox | get_my_dropbox_account: Get information about the connected Dropbox account"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. search_drive: {query: string, max_results?: integer} | list_drive_files: {max_results?: integer, mime_type?: string, folder_id?: string} | search_my_onedrive: {query: string, max_results?: integer} | search_my_dropbox: {query: string, max_results?: integer} | read_sheet: {spreadsheet_id: string, range: string} | get_drive_stats: none | get_file_content: {file_id: string, page_start?: integer, page_end?: integer, search_term?: string} | get_my_onedrive_storage: none | list_my_onedrive_files: {folder_path?: string, max_results?: integer, page_token?: string} | read_my_onedrive_file: {file_id: string, page_start?: integer, page_end?: integer, search_term?: string} | get_my_onedrive_recent: {max_results?: integer} | get_my_onedrive_shared: {max_results?: integer} | get_my_dropbox_storage: none | list_my_dropbox_files: {folder_path?: string, max_results?: integer, cursor?: string} | read_my_dropbox_file: {path_or_id: string, page_start?: integer, page_end?: integer, search_term?: string} | get_my_dropbox_recent: {max_results?: integer} | get_my_dropbox_account: none'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_orders', 'get_seller_performance_overview', 'get_transactions', 'get_seller_standards_profile', 'get_customer_service_metric', 'get_traffic_report', 'get_seller_privileges', 'get_funds_summary'], 'type': 'string', 'description': "get_orders: List eBay orders with GMV, item counts, and fulfillment status | get_seller_performance_overview: Get a consolidated eBay seller performance overview across standards, customer service metrics, and traffic | get_transactions: List eBay financial transactions (sales, credits, refunds, fees) | get_seller_standards_profile: Get eBay seller standards profile for the selected standards program | get_customer_service_metric: Get eBay customer service metrics (INAD/INR rates and defect details) | get_traffic_report: Get eBay listing traffic report metrics like impressions, views, and conversion rates | get_seller_privileges: Get eBay seller privileges and selling entitlements for the authenticated account | get_funds_summary: Get the seller's current eBay funds summary: settled amount, funds on hold, and total balance. Requires sell.finances sc"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_orders: {limit?: integer, offset?: integer, filter_expr?: string} | get_seller_performance_overview: {program?: string, days?: integer} | get_transactions: {limit?: integer, filter_expr?: string} | get_seller_standards_profile: {program?: string, cycle?: string} | get_customer_service_metric: {customer_service_metric_type?: string, evaluation_type?: string, evaluation_marketplace_id?: string} | get_traffic_report: {dimension?: string, metrics?: array, filter_expr?: string, sort?: string, limit?: integer, offset?: integer} | get_seller_privileges: none | get_funds_summary: none'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['list_gmail_messages', 'search_gmail', 'list_my_outlook_emails', 'search_my_outlook_emails', 'get_gmail_message', 'get_my_outlook_mailbox', 'read_my_outlook_email'], 'type': 'string', 'description': "list_gmail_messages: List recent Gmail messages with optional query filter | search_gmail: Search Gmail messages using Gmail search syntax | list_my_outlook_emails: List recent Outlook/Microsoft 365 emails. Requires Microsoft authentication | search_my_outlook_emails: Search Outlook emails by keyword. Requires Microsoft authentication | get_gmail_message: Get a specific Gmail message by ID with full content | get_my_outlook_mailbox: Get Outlook mailbox information including folder counts, total messages, and unread count. Use when user asks about 'my | read_my_outlook_email: Read a specific Outlook email by ID with full content. Requires Microsoft authentication via /oauth/microsoft/authorize"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. list_gmail_messages: {max_results?: integer, query?: string} | search_gmail: {query: string, max_results?: integer} | list_my_outlook_emails: {max_results?: integer, folder?: string, query?: string} | search_my_outlook_emails: {query: string, max_results?: integer} | get_gmail_message: {message_id: string} | get_my_outlook_mailbox: none | read_my_outlook_email: {message_id: string}'}}}
입력 스키마
{'type': 'object', 'required': ['connector_id'], 'properties': {'connector_id': {'type': 'string', 'description': 'Connector ID to enable. Examples: shopify, tiktok, ebay, microsoft, slack, google_ads, quickbooks, klaviyo.'}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'user_question': {'type': 'string', 'description': "Optional: the user's question in their own words, passed to the skill for context."}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'user_question': {'type': 'string', 'description': "Optional: the user's question in their own words, passed to the skill for context."}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'user_question': {'type': 'string', 'description': "Optional: the user's question in their own words, passed to the skill for context."}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'user_question': {'type': 'string', 'description': "Optional: the user's question in their own words, passed to the skill for context."}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'user_question': {'type': 'string', 'description': "Optional: the user's question in their own words, passed to the skill for context."}}}
입력 스키마
{'type': 'object', 'required': ['zip_code'], 'properties': {'zip_code': {'type': 'string', 'description': '5-digit US ZIP code'}, 'radius_miles': {'type': 'integer', 'default': 25}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_report', 'list_properties', 'run_report', 'get_realtime', 'list_accounts'], 'type': 'string', 'description': 'get_report: Simple historical GA4 report: date-ranged sessions and active users, with an optional breakdown (channel/source/device) | list_properties: List GA4 properties (websites/apps). If account_id not provided, lists all properties from all accounts | run_report: Run a custom Google Analytics 4 report with dimensions, metrics, and date ranges | get_realtime: Get real-time Google Analytics 4 data showing current active users | list_accounts: List all Google Analytics 4 accounts the user has access to'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_report: {property_id: string, start_date?: string, end_date?: string, breakdown?: string} | list_properties: {account_id?: string} | run_report: {property_id: string, date_ranges: array, dimensions: array, metrics: array, limit?: integer, offset?: integer} | get_realtime: {property_id: string, dimensions?: array, metrics?: array, limit?: integer} | list_accounts: none'}}}
입력 스키마
{'type': 'object', 'properties': {'connector_id': {'type': 'string', 'description': "Optional connector ID to filter results (e.g. 'google_workspace', 'quickbooks', 'hubspot', 'slack', 'ebay', 'dropbox', 'onedrive', 'outlook', 'shopify', 'facebook_marketing', 'tiktok', 'klaviyo', 'youtube', 'google_ads', 'postgres', 'mssql', 'cosmosdb', 'mongodb', 'gohighlevel', 'monday')"}}}
입력 스키마
{'type': 'object', 'properties': {}}
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 30, 'maximum': 365, 'minimum': 1}, 'page_size': {'type': 'integer', 'default': 50}, 'page_index': {'type': 'integer', 'default': 1}}}
입력 스키마
{'type': 'object', 'properties': {}}
입력 스키마
{'type': 'object', 'properties': {'has_bids': {'type': 'boolean', 'description': 'Optional bid filter for matching listings.'}, 'max_pages': {'type': 'integer', 'default': 10, 'maximum': 100, 'minimum': 1}, 'page_size': {'type': 'integer', 'default': 300, 'maximum': 300, 'minimum': 1}, 'watchers_only': {'type': 'boolean', 'default': False, 'description': 'When true, matching listings must have one or more watchers.'}, 'ending_within_days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Optional window for counting active listings ending within the next N days.'}, 'ending_within_hours': {'type': 'integer', 'maximum': 8760, 'minimum': 1, 'description': 'Optional rolling-hour window for counting active listings ending soon.'}, 'ending_calendar_days': {'type': 'integer', 'maximum': 365, 'minimum': 0, 'description': 'Optional calendar-day window ending at 23:59:59 Eastern on the Nth day from now.'}, 'watched_listing_limit': {'type': 'integer', 'default': 100, 'maximum': 500, 'minimum': 1, 'description': 'Maximum watched listing detail rows to return when include_watched_listings is true.'}, 'matching_listing_limit': {'type': 'integer', 'default': 100, 'maximum': 500, 'minimum': 1}, 'include_watched_listings': {'type': 'boolean', 'default': False, 'description': 'When true, include compact item-level rows for active listings with watchers.'}, 'include_matching_listings': {'type': 'boolean', 'default': False, 'description': 'When true, include compact item-level rows matching requested ending/watchers/bids filters.'}}}
입력 스키마
{'type': 'object', 'required': ['item_id'], 'properties': {'item_id': {'type': 'integer', 'description': 'GunBroker item ID'}}}
입력 스키마
{'type': 'object', 'required': ['order_id'], 'properties': {'order_id': {'type': 'integer', 'description': 'GunBroker order ID'}}}
입력 스키마
{'type': 'object', 'properties': {'top_n': {'type': 'integer', 'default': 5, 'description': "How many of the user's top connectors / tools / skills to return."}}}
입력 스키마
{'type': 'object', 'properties': {'end_date': {'type': 'string'}, 'dimensions': {'type': 'array', 'items': {'type': 'string'}}, 'start_date': {'type': 'string'}}}
입력 스키마
{'type': 'object', 'properties': {'channel_id': {'type': 'string', 'description': 'Optional channel ID to target a Brand Account (recommended for any non-personal channel)'}}}
입력 스키마
{'type': 'object', 'properties': {'end_date': {'type': 'string'}, 'video_id': {'type': 'string', 'description': 'Optional video ID to filter to one video'}, 'channel_id': {'type': 'string', 'description': 'Optional channel ID to target a Brand Account (required for any non-personal channel)'}, 'start_date': {'type': 'string'}}}
입력 스키마
{'type': 'object', 'required': ['video_id'], 'properties': {'end_date': {'type': 'string'}, 'video_id': {'type': 'string'}, 'channel_id': {'type': 'string', 'description': 'Optional channel ID to target a Brand Account (required for any non-personal channel)'}, 'start_date': {'type': 'string'}}}
입력 스키마
{'type': 'object', 'properties': {'page_token': {'type': 'string'}, 'max_results': {'type': 'integer', 'default': 25}}}
입력 스키마
{'type': 'object', 'properties': {'top_n': {'type': 'integer', 'default': 5, 'description': "How many of the user's top connectors / tools / skills to return."}}}
입력 스키마
{'type': 'object', 'properties': {'handle': {'type': 'string'}, 'username': {'type': 'string'}, 'channel_id': {'type': 'string'}}}
입력 스키마
{'type': 'object', 'properties': {'handle': {'type': 'string'}, 'channel_id': {'type': 'string'}, 'page_token': {'type': 'string'}, 'max_results': {'type': 'integer', 'default': 10}}}
입력 스키마
{'type': 'object', 'required': ['video_id'], 'properties': {'order': {'type': 'string', 'default': 'relevance'}, 'video_id': {'type': 'string'}, 'page_token': {'type': 'string'}, 'max_results': {'type': 'integer', 'default': 20}}}
입력 스키마
{'type': 'object', 'required': ['video_id'], 'properties': {'language': {'type': 'string', 'default': 'en'}, 'video_id': {'type': 'string'}}}
입력 스키마
{'type': 'object', 'required': ['video_ids'], 'properties': {'video_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List of YouTube video IDs or URLs (max 50)'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['github_list_repositories', 'github_assess_delivery_data', 'github_get_release_forecast', 'github_get_quality_trend', 'github_get_release_quality_metric', 'github_release_quality_dashboard'], 'type': 'string', 'description': 'github_list_repositories: List repositories accessible through the connected GitHub App user grant. Read-only. Returns explicit evidence completen | github_assess_delivery_data: Assess milestone hygiene, scope, delivery velocity, reviews, and Actions from bounded GitHub evidence. Read-only. Return | github_get_release_forecast: Return a deterministic milestone p50/p85 release range, target-date hit probability, confidence, weakest input, and assu | github_get_quality_trend: Return the current and prior code-quality index with churn, optional coverage, review latency, defect density, and CI fl | github_get_release_quality_metric: Project one stable GitHub release-quality metric for Metric Spec Registry resolution, including its unit, definition ver | github_release_quality_dashboard: Render the native GitHub release-quality dashboard from the same validated forecast and quality facts used for text and '}, 'params': {'type': 'object', 'description': 'Action-specific parameters. github_list_repositories: {max_pages?: integer} | github_assess_delivery_data: {owner: string, repository: string, since: string, until: string, max_pages?: integer, cadence_days?: integer} | github_get_release_forecast: {owner: string, repository: string, since: string, until: string, max_pages?: integer, cadence_days?: integer, milestone_number: integer, n_sims?: integer, seed?: integer} | github_get_quality_trend: {owner: string, repository: string, since: string, until: string, max_pages?: integer, cadence_days?: integer} | github_get_release_quality_metric: {owner: string, repository: string, since: string, until: string, max_pages?: integer, cadence_days?: integer, milestone_number?: integer, n_sims?: integer, seed?: integer, metric_name: string} | github_release_quality_dashboard: {owner: string, repository: string, since: string, until: string, max_pages?: integer, cadence_days?: integer, milestone_number: integer, n_sims?: integer, seed?: integer}'}}}
입력 스키마
{'type': 'object', 'required': ['owner', 'repository', 'since', 'until', 'milestone_number'], 'properties': {'seed': {'type': 'integer', 'maximum': 18446744073709551615, 'minimum': 0}, 'owner': {'type': 'string', 'minLength': 1}, 'since': {'type': 'string', 'format': 'date-time', 'pattern': '(?:Z|[+-][0-9]{2}:[0-9]{2})$'}, 'until': {'type': 'string', 'format': 'date-time', 'pattern': '(?:Z|[+-][0-9]{2}:[0-9]{2})$'}, 'n_sims': {'type': 'integer', 'maximum': 19230, 'minimum': 100}, 'max_pages': {'type': 'integer', 'maximum': 10, 'minimum': 1}, 'repository': {'type': 'string', 'minLength': 1}, 'cadence_days': {'type': 'integer', 'maximum': 90, 'minimum': 1}, 'milestone_number': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_account_summary', 'list_campaigns', 'get_keyword_performance', 'list_accounts', 'get_campaign_performance', 'list_ad_groups', 'list_ads', 'get_search_terms', 'get_geographic_performance', 'get_device_performance', 'get_age_gender_performance', 'run_query'], 'type': 'string', 'description': 'get_account_summary: Get high-level Google Ads account performance summary with aggregate metrics | list_campaigns: List Google Ads campaigns with performance metrics (impressions, clicks, cost, conversions, CTR, CPC) | get_keyword_performance: Get keyword performance with quality scores, match types, and search impression share | list_accounts: List all Google Ads accounts accessible to the authenticated user | get_campaign_performance: Get daily performance breakdown for a specific Google Ads campaign | list_ad_groups: List ad groups with performance metrics, optionally filtered by campaign | list_ads: List individual ads with performance metrics, headlines, descriptions, and URLs | get_search_terms: Get search term report showing actual queries that triggered your ads | get_geographic_performance: Get performance breakdown by geographic location | get_device_performance: Get performance breakdown by device type (desktop, mobile, tablet) | get_age_gender_performance: Get performance breakdown by age range and gender demographics | run_query: Run a custom GAQL (Google Ads Query Language) query for advanced analysis. See https://developers.google.com/google-ads/'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_account_summary: {customer_id: string, start_date?: string, end_date?: string} | list_campaigns: {customer_id: string, start_date?: string, end_date?: string, status_filter?: string, limit?: integer} | get_keyword_performance: {customer_id: string, campaign_id?: string, start_date?: string, end_date?: string, limit?: integer} | list_accounts: {login_customer_id?: string} | get_campaign_performance: {customer_id: string, campaign_id: string, start_date?: string, end_date?: string, login_customer_id?: string} | list_ad_groups: {customer_id: string, campaign_id?: string, start_date?: string, end_date?: string, status_filter?: string, limit?: integer, login_customer_id?: string} | list_ads: {customer_id: string, campaign_id?: string, ad_group_id?: string, start_date?: string, end_date?: string, limit?: integer, login_customer_id?: string} | get_search_terms: {customer_id: string, campaign_id?: string, start_date?: string, end_date?: string, limit?: integer, login_customer_id?: string} | get_geographic_performance: {customer_id: string, campaign_id?: string, start_date?: string, end_date?: string, limit?: integer, login_customer_id?: string} | get_device_performance: {customer_id: string, campaign_id?: string, start_date?: string, end_date?: string, login_customer_id?: string} | get_age_gender_performance: {customer_id: string, campaign_id?: string, start_date?: string, end_date?: string, login_customer_id?: string} | run_query: {customer_id: string, query: string, limit?: integer, login_customer_id?: string}'}}}
입력 스키마
{'type': 'object', 'required': ['skill_name'], 'properties': {'arguments': {'type': 'object', 'description': "JSON object of arguments matching the skill's input schema."}, 'skill_name': {'type': 'string', 'description': 'The id of the skill to invoke (from list_skills).'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_campaigns', 'get_email_metrics_summary', 'get_flows', 'get_abandoned_cart_flows', 'get_campaign_metrics', 'get_campaign_revenue', 'get_top_campaigns', 'get_flow_performance', 'get_flow_series', 'get_metrics', 'query_metric_aggregates', 'get_sms_metrics_summary', 'get_conversion_metrics', 'get_lists', 'get_list_growth', 'get_segments', 'get_segment_performance', 'get_profile_count', 'get_profile_growth', 'get_subscription_health', 'get_predictive_analytics', 'get_forms', 'get_form_series', 'get_top_performing_forms', 'get_events', 'get_recent_events'], 'type': 'string', 'description': 'get_campaigns: List Klaviyo campaigns with performance metrics | get_email_metrics_summary: Get aggregated email campaign metrics: sends, opens, clicks, revenue | get_flows: List Klaviyo automation flows | get_abandoned_cart_flows: Get abandoned cart flow performance: revenue recovered, conversion rate | get_campaign_metrics: Get detailed performance metrics for a specific Klaviyo campaign. Input: campaign_id (required) | get_campaign_revenue: Get attributed revenue by campaign. Inputs: start_date, end_date, group_by | get_top_campaigns: Get top-performing Klaviyo campaigns ranked by a metric. Inputs: metric (revenue|opens|clicks|conversions), limit | get_flow_performance: Get performance metrics for a specific Klaviyo flow. Input: flow_id (required) | get_flow_series: Get time-series performance data for a Klaviyo flow. Inputs: flow_id (required), start_date, end_date, interval | get_metrics: List all Klaviyo metrics (event types) available for querying | query_metric_aggregates: Query aggregate data for a specific Klaviyo metric. Inputs: metric_id (required), measurements, interval, group_by, star | get_sms_metrics_summary: Get aggregated SMS campaign metrics: recipients, deliveries, clicks, revenue. Inputs: start_date, end_date | get_conversion_metrics: Get conversion metrics: conversions, revenue, conversion rate. Inputs: start_date, end_date | get_lists: List all Klaviyo email/SMS lists | get_list_growth: Get subscriber growth and current size for a specific list. Input: list_id (required) | get_segments: List all Klaviyo segments | get_segment_performance: Get performance metrics for a specific segment. Input: segment_id (required) | get_profile_count: Get total number of profiles in Klaviyo | get_profile_growth: Get profile/subscriber growth over time. Inputs: start_date, end_date, interval | get_subscription_health: Get subscription health metrics: active, unsubscribed, bounced, suppressed counts | get_predictive_analytics: Get predictive analytics: predicted CLV, churn risk, purchase probability distribution | get_forms: List all Klaviyo signup forms. Inputs: start_date, end_date | get_form_series: Get time-series performance data for a specific form. Input: form_id (required) | get_top_performing_forms: Get top-performing signup forms ranked by submission rate. Input: period (days), limit | get_events: Get Klaviyo events filtered by metric and date. Inputs: metric_id, start_date, end_date, limit | get_recent_events: Get the most recent Klaviyo events (last 7 days). Inputs: metric_id, limit'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_campaigns: {start_date?: string, end_date?: string, channel?: string, limit?: integer} | get_email_metrics_summary: {start_date?: string, end_date?: string, interval?: string} | get_flows: {start_date?: string, end_date?: string, limit?: integer} | get_abandoned_cart_flows: {start_date?: string, end_date?: string} | get_campaign_metrics: {campaign_id: string} | get_campaign_revenue: {start_date?: string, end_date?: string, group_by?: string} | get_top_campaigns: {metric?: string, limit?: integer} | get_flow_performance: {flow_id: string} | get_flow_series: {flow_id: string, start_date?: string, end_date?: string, interval?: string} | get_metrics: none | query_metric_aggregates: {metric_id: string, start_date?: string, end_date?: string, measurements?: array, interval?: string, group_by?: array} | get_sms_metrics_summary: {start_date?: string, end_date?: string} | get_conversion_metrics: {start_date?: string, end_date?: string} | get_lists: none | get_list_growth: {list_id: string} | get_segments: none | get_segment_performance: {segment_id: string} | get_profile_count: none | get_profile_growth: {start_date?: string, end_date?: string, interval?: string} | get_subscription_health: none | get_predictive_analytics: none | get_forms: {start_date?: string, end_date?: string} | get_form_series: {form_id: string} | get_top_performing_forms: {period?: integer, limit?: integer} | get_events: {metric_id?: string, start_date?: string, end_date?: string, limit?: integer} | get_recent_events: {metric_id?: string, limit?: integer}'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_account_info', 'list_ad_accounts', 'get_ad_account', 'list_campaigns', 'get_campaign', 'list_creatives', 'get_campaign_analytics', 'get_account_analytics'], 'type': 'string', 'description': "get_account_info: Get the authenticated LinkedIn user's accessible ad-account memberships (account URN, role, user URN). Call this first t | list_ad_accounts: List all LinkedIn sponsored ad accounts the authenticated user can access. Returns id, name, currency, status, type, tes | get_ad_account: Get full details for a single LinkedIn sponsored ad account by id | list_campaigns: List LinkedIn campaigns under a given sponsored ad account with status, type, budget, objective, and campaignGroup | get_campaign: Get full details for a single LinkedIn campaign by id, including objective, run schedule, budgets, and creative-selectio | list_creatives: List LinkedIn ad creatives under a given campaign. Returns creative id, status, serving flag, content reference, and tim | get_campaign_analytics: Get DAILY performance analytics for a specific LinkedIn campaign over a date range. Pivot=CAMPAIGN. Output: daily rows o | get_account_analytics: Get LIFETIME (timeGranularity=ALL) performance analytics for a LinkedIn sponsored ad account over a date range. Pivot=AC"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_account_info: none | list_ad_accounts: {limit?: integer} | get_ad_account: {account_id: string} | list_campaigns: {account_id: string, limit?: integer} | get_campaign: {campaign_id: string} | list_creatives: {campaign_id: string, limit?: integer} | get_campaign_analytics: {campaign_id: string, start_date?: string, end_date?: string} | get_account_analytics: {account_id: string, start_date?: string, end_date?: string}'}}}
입력 스키마
{'type': 'object', 'properties': {'parent_id': {'type': 'integer', 'description': 'Parent category ID for subcategories'}}}
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 30, 'maximum': 365, 'minimum': 1}, 'page_size': {'type': 'integer', 'default': 50}, 'page_index': {'type': 'integer', 'default': 1}}}
입력 스키마
{'type': 'object', 'properties': {'page_size': {'type': 'integer', 'default': 50}, 'page_index': {'type': 'integer', 'default': 1}}}
입력 스키마
{'type': 'object', 'properties': {'page_size': {'type': 'integer', 'default': 50}, 'page_index': {'type': 'integer', 'default': 1}}}
입력 스키마
{'type': 'object', 'properties': {'has_bids': {'type': 'boolean', 'description': 'Optional bid filter (true = with bids, false = no bids).'}, 'max_pages': {'type': 'integer', 'default': 1, 'maximum': 100, 'minimum': 1, 'description': 'Maximum pages to scan starting at page_index when filters are set.'}, 'page_size': {'type': 'integer', 'default': 50}, 'page_index': {'type': 'integer', 'default': 1}, 'min_watchers': {'type': 'integer', 'minimum': 1, 'description': 'Optional minimum watcher threshold (e.g. 2 = only listings with 2+ watchers).'}, 'watchers_only': {'type': 'boolean', 'default': False, 'description': 'When true, only return listings with one or more watchers.'}, 'ending_within_days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Optional rolling-day window. Return only listings ending within the next N days.'}, 'ending_within_hours': {'type': 'integer', 'maximum': 8760, 'minimum': 1, 'description': 'Optional rolling-hour window. Return only listings ending within the next N hours.'}, 'ending_calendar_days': {'type': 'integer', 'maximum': 365, 'minimum': 0, 'description': 'Optional local calendar-day window ending at 23:59:59 Eastern on day N from now.'}, 'matching_listing_limit': {'type': 'integer', 'default': 500, 'maximum': 2000, 'minimum': 1, 'description': 'Maximum filtered listing rows to return.'}}}
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 30, 'maximum': 90, 'minimum': 1}, 'page_size': {'type': 'integer', 'default': 50}, 'page_index': {'type': 'integer', 'default': 1}}}
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 30, 'maximum': 90, 'minimum': 1}, 'page_size': {'type': 'integer', 'default': 50}, 'page_index': {'type': 'integer', 'default': 1}}}
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'default': 30, 'maximum': 365, 'minimum': 1}, 'page_size': {'type': 'integer', 'default': 50}, 'page_index': {'type': 'integer', 'default': 1}}}
입력 스키마
{'type': 'object', 'properties': {'page_size': {'type': 'integer', 'default': 50}, 'page_index': {'type': 'integer', 'default': 1}}}
입력 스키마
{'type': 'object', 'properties': {}}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum runbooks to return. Default 10, max 25.'}, 'query': {'type': 'string', 'description': 'Optional text filter for browsing runbooks.'}, 'include_full_catalog': {'type': 'boolean', 'default': False, 'description': 'Set true only when the user explicitly asks for the complete catalog.'}}}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'Maximum skills to return. Default 10, max 25.'}, 'query': {'type': 'string', 'description': 'Optional text filter for browsing skills.'}, 'include_full_catalog': {'type': 'boolean', 'default': False, 'description': 'Set true only when the user explicitly asks for the complete catalog.'}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_account', 'get_lists', 'get_list', 'get_list_activity', 'get_list_growth_history', 'get_list_clients', 'get_list_merge_fields', 'get_list_interest_categories', 'get_list_locations', 'get_list_members', 'get_list_member', 'search_members', 'get_member_activity', 'get_member_activity_feed', 'get_member_goals', 'get_member_notes', 'get_member_tags', 'search_tags', 'get_list_segments', 'get_list_segment', 'get_list_segment_members', 'get_campaigns', 'get_campaign', 'get_campaign_content', 'get_campaign_send_checklist', 'get_campaign_feedback', 'search_campaigns', 'get_templates', 'get_template', 'get_template_folders', 'get_automations', 'get_automation', 'get_automation_emails', 'get_automation_removed_subscribers', 'get_reports', 'get_campaign_report', 'get_campaign_open_details', 'get_campaign_click_details', 'get_campaign_locations', 'get_campaign_email_activity', 'get_campaign_unsubscribes', 'get_campaign_abuse_reports', 'get_campaign_ecommerce_product_activity', 'list_accounts'], 'type': 'string', 'description': "get_account: Get Mailchimp account root info including contact details, plan, and permissions | get_lists: List all audiences/lists in the Mailchimp account | get_list: Get details for a specific list/audience (name, stats, contact info, etc.) | get_list_activity: Get daily activity stats for a list (subscribes, unsubscribes, etc.) | get_list_growth_history: Get subscriber growth history by month for a list | get_list_clients: Get email client usage stats for list subscribers | get_list_merge_fields: Get merge fields (custom fields) configured for a list | get_list_interest_categories: Get interest categories configured for a list | get_list_locations: Get geographic distribution of subscribers in a list | get_list_members: List subscribers in a specific audience with status, email, and engagement metrics | get_list_member: Get detailed info for a specific subscriber in a list (status, tags, notes, activity metrics) | search_members: Search for subscribers by email or name across the account or a specific list | get_member_activity: Get recent activity for a subscriber (opens, clicks, bounces, etc.) | get_member_activity_feed: Get activity feed timeline for a subscriber | get_member_goals: Get goals achieved by a subscriber | get_member_notes: Get notes/comments associated with a subscriber | get_member_tags: Get tags assigned to a subscriber | search_tags: Search and list tags in a list (optionally filtered by name) | get_list_segments: List all segments/groups in an audience | get_list_segment: Get details for a specific segment (name, member count, rules) | get_list_segment_members: List subscribers in a specific segment | get_campaigns: List all campaigns with status, type, sent date, and recipient list | get_campaign: Get full details for a specific campaign (content, settings, list, status) | get_campaign_content: Get email content (HTML, plain text) for a campaign | get_campaign_send_checklist: Get send readiness checklist for a campaign | get_campaign_feedback: Get feedback/reviews submitted by recipients for a campaign | search_campaigns: Search campaigns by title or other attributes | get_templates: List all email templates in the account | get_template: Get details for a specific email template (HTML, name, etc.) | get_template_folders: List template folders for organizing templates | get_automations: List all automation workflows (classic automations only) | get_automation: Get details for a specific automation workflow | get_automation_emails: Get all emails in an automation workflow | get_automation_removed_subscribers: Get subscribers who have been removed from an automation | get_reports: List all campaign reports with high-level stats | get_campaign_report: Get full report for a campaign (opens, clicks, bounces, unsubscribes, etc.) | get_campaign_open_details: Get details on who opened a campaign and when | get_campaign_click_details: Get details on link clicks in a campaign by URL and subscriber | get_campaign_locations: Get geographic breakdown of opens and clicks for a campaign | get_campaign_email_activity: Get individual email activity (sent to, opens, clicks) for a campaign | get_campaign_unsubscribes: Get list of unsubscribes and reasons for a campaign | get_campaign_abuse_reports: Get abuse/spam complaints for a campaign | get_campaign_ecommerce_product_activity: Get ecommerce product performance for a campaign | list_accounts: List the Mailchimp accounts (instances) connected under this CorpusIQ login. Returns each account's instance_id and whet"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_account: {instance_id?: string} | get_lists: {offset?: integer, count?: integer, instance_id?: string} | get_list: {list_id: string, instance_id?: string} | get_list_activity: {list_id: string, instance_id?: string} | get_list_growth_history: {list_id: string, instance_id?: string} | get_list_clients: {list_id: string, instance_id?: string} | get_list_merge_fields: {list_id: string, instance_id?: string} | get_list_interest_categories: {list_id: string, instance_id?: string} | get_list_locations: {list_id: string, instance_id?: string} | get_list_members: {list_id: string, offset?: integer, count?: integer, status?: string, instance_id?: string} | get_list_member: {list_id: string, email: string, instance_id?: string} | search_members: {query: string, list_id?: string, instance_id?: string} | get_member_activity: {list_id: string, subscriber_hash: string, instance_id?: string} | get_member_activity_feed: {list_id: string, subscriber_hash: string, instance_id?: string} | get_member_goals: {list_id: string, subscriber_hash: string, instance_id?: string} | get_member_notes: {list_id: string, subscriber_hash: string, instance_id?: string} | get_member_tags: {list_id: string, subscriber_hash: string, instance_id?: string} | search_tags: {list_id: string, name?: string, instance_id?: string} | get_list_segments: {list_id: string, instance_id?: string} | get_list_segment: {list_id: string, segment_id: string, instance_id?: string} | get_list_segment_members: {list_id: string, segment_id: string, offset?: integer, count?: integer, instance_id?: string} | get_campaigns: {offset?: integer, count?: integer, status?: string, instance_id?: string} | get_campaign: {campaign_id: string, instance_id?: string} | get_campaign_content: {campaign_id: string, instance_id?: string} | get_campaign_send_checklist: {campaign_id: string, instance_id?: string} | get_campaign_feedback: {campaign_id: string, instance_id?: string} | search_campaigns: {query: string, instance_id?: string} | get_templates: {offset?: integer, count?: integer, instance_id?: string} | get_template: {template_id: string, instance_id?: string} | get_template_folders: {instance_id?: string} | get_automations: {offset?: integer, count?: integer, instance_id?: string} | get_automation: {workflow_id: string, instance_id?: string} | get_automation_emails: {workflow_id: string, instance_id?: string} | get_automation_removed_subscribers: {workflow_id: string, instance_id?: string} | get_reports: {offset?: integer, count?: integer, instance_id?: string} | get_campaign_report: {campaign_id: string, instance_id?: string} | get_campaign_open_details: {campaign_id: string, offset?: integer, count?: integer, instance_id?: string} | get_campaign_click_details: {campaign_id: string, offset?: integer, count?: integer, instance_id?: string} | get_campaign_locations: {campaign_id: string, instance_id?: string} | get_campaign_email_activity: {campaign_id: string, offset?: integer, count?: integer, instance_id?: string} | get_campaign_unsubscribes: {campaign_id: string, offset?: integer, count?: integer, instance_id?: string} | get_campaign_abuse_reports: {campaign_id: string, offset?: integer, count?: integer, instance_id?: string} | get_campaign_ecommerce_product_activity: {campaign_id: string, offset?: integer, count?: integer, instance_id?: string} | list_accounts: none'}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'end_date': {'type': 'string', 'default': 'today', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}, 'start_date': {'type': 'string', 'default': '30daysAgo', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}, 'instance_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 64, 'minLength': 1, 'description': 'Optional Mailchimp account label from list_mailchimp_accounts.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['tool', 'status', 'summary_text', 'mime_type', 'width', 'height', 'image_sha256', 'evidence', 'execution_receipt', 'provider', 'query_ranges', 'facts'], 'properties': {'tool': {'const': 'mailchimp_dashboard'}, 'facts': {'type': 'object'}, 'width': {'const': 1600}, 'height': {'const': 992}, 'status': {'const': 'ok'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Mailchimp'}, 'mime_type': {'const': 'image/png'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'execution_receipt': {'type': 'object', 'required': ['version', 'renderer_version', 'font_sha256', 'query_sha256', 'data_sha256', 'image_sha256'], 'properties': {'version': {'const': 1}, 'data_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'font_sha256': {'type': 'object'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'renderer_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'provider', 'query_ranges', 'source_counts', 'evidence'], 'properties': {'tool': {'const': 'mailchimp_dashboard'}, 'status': {'const': 'no_data'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Mailchimp'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'source_counts': {'type': 'object'}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'error', 'message', 'evidence'], 'properties': {'tool': {'const': 'mailchimp_dashboard'}, 'error': {'type': 'string', 'minLength': 1}, 'status': {'const': 'error'}, 'message': {'type': 'string', 'minLength': 1}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'summary_text': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}]}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_facebook_account', 'get_facebook_account_insights', 'list_facebook_campaigns', 'get_facebook_campaign_insights', 'list_facebook_ad_accounts', 'get_facebook_ad_account', 'get_facebook_campaign', 'list_facebook_ad_sets', 'get_facebook_ad_set', 'list_facebook_ads', 'get_facebook_campaign_insights_daily', 'get_facebook_age_gender_insights', 'get_facebook_geographic_insights', 'get_facebook_device_platform_insights', 'get_facebook_placement_insights', 'list_facebook_pages', 'list_facebook_page_posts', 'get_facebook_post_insights', 'get_facebook_post_comments', 'list_facebook_leadgen_forms', 'list_facebook_leads', 'list_instagram_business_accounts', 'list_instagram_media', 'get_instagram_media_insights', 'get_instagram_account_insights', 'get_instagram_comments'], 'type': 'string', 'description': "get_facebook_account: Get the authenticated Facebook user's profile (id, name, and email when Meta supplies it). Email may be null because the | get_facebook_account_insights: Get account-level Facebook Ads performance summary: impressions, clicks, spend, reach, frequency, CPM, CPC, CTR, convers | list_facebook_campaigns: List Facebook/Meta ad campaigns with status, objective, budget, and dates. Campaigns are hierarchy metadata, not ads or | get_facebook_campaign_insights: Get performance metrics for a specific Facebook campaign: impressions, clicks, spend, reach, CPM, CPC, CTR, and conversi | list_facebook_ad_accounts: List all Facebook/Meta ad accounts accessible to the authenticated user. Returns account IDs, names, status, currency, a | get_facebook_ad_account: Get detailed information about the connected Facebook ad account: name, status, currency, timezone, total spend, balance | get_facebook_campaign: Get full details for a single Facebook campaign: objective, bid strategy, budget, schedule, and special ad categories | list_facebook_ad_sets: List Facebook ad sets with budget, targeting summary, and optimization goal. Optionally filter by campaign | get_facebook_ad_set: Get full details for a single Facebook ad set: targeting rules, optimization goal, bid strategy, and promoted object | list_facebook_ads: List individual Facebook ads with available top-level attached creative preview fields (title, body, image, thumbnail, U | get_facebook_campaign_insights_daily: Get daily performance breakdown for a Facebook campaign: day-by-day impressions, clicks, spend, reach, CPM, CPC, and CTR | get_facebook_age_gender_insights: Get Facebook Ads performance breakdown by age range and gender | get_facebook_geographic_insights: Get Facebook Ads performance breakdown by country | get_facebook_device_platform_insights: Get Facebook Ads performance breakdown by device and publisher platform | get_facebook_placement_insights: Get Facebook Ads performance breakdown by ad placement and publisher platform | list_facebook_pages: List Facebook Pages the authenticated user manages. Returns Page id, name, category, fan_count, link, and the permitted_ | list_facebook_page_posts: List recent posts on a Facebook Page. Returns post id, message, created_time, permalink, and attachments | get_facebook_post_insights: Get organic insights for a Facebook Page post: impressions, unique reach, engaged users, clicks, and reactions by type. | get_facebook_post_comments: Get comments on a Facebook Page post: author, message, created_time, like_count, and reply count | list_facebook_leadgen_forms: List Lead Ads forms on a Facebook Page. Returns form id, name, status, locale, created_time, leads_count, expired_leads_ | list_facebook_leads: List leads captured by a Lead Ads form: lead id, created_time, ad/adset/campaign attribution, organic flag, platform, an | list_instagram_business_accounts: List Instagram Business/Creator accounts linked to the user's Facebook Pages. Returns ig_account_id, username, followers | list_instagram_media: List recent media (posts/reels/stories) on an Instagram Business account. Returns media id, caption, media_type, permali | get_instagram_media_insights: Get insights for an Instagram Business media item: impressions, reach, engagement, saves. Requires instagram_manage_insi | get_instagram_account_insights: Get account-level Instagram Business insights. Supports both engagement-style metrics (reach, profile_views, accounts_en | get_instagram_comments: Get comments on an Instagram Business media item. Returns comment id, text, username, timestamp, like_count, and replies"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_facebook_account: none | get_facebook_account_insights: {start_date?: string, end_date?: string, date_preset?: string, account_id?: string} | list_facebook_campaigns: {limit?: integer, status_filter?: string, after?: string, account_id?: string} | get_facebook_campaign_insights: {campaign_id: string, start_date?: string, end_date?: string, date_preset?: string} | list_facebook_ad_accounts: none | get_facebook_ad_account: {account_id?: string} | get_facebook_campaign: {campaign_id: string} | list_facebook_ad_sets: {limit?: integer, campaign_id?: string, status_filter?: string, after?: string, account_id?: string} | get_facebook_ad_set: {ad_set_id: string} | list_facebook_ads: {limit?: integer, campaign_id?: string, ad_set_id?: string, status_filter?: string, after?: string, account_id?: string} | get_facebook_campaign_insights_daily: {campaign_id: string, start_date?: string, end_date?: string, date_preset?: string} | get_facebook_age_gender_insights: {start_date?: string, end_date?: string, date_preset?: string, campaign_id?: string, account_id?: string} | get_facebook_geographic_insights: {start_date?: string, end_date?: string, date_preset?: string, campaign_id?: string, account_id?: string} | get_facebook_device_platform_insights: {start_date?: string, end_date?: string, date_preset?: string, campaign_id?: string, account_id?: string} | get_facebook_placement_insights: {start_date?: string, end_date?: string, date_preset?: string, campaign_id?: string, account_id?: string} | list_facebook_pages: none | list_facebook_page_posts: {page_id: string, limit?: integer, since?: string, until?: string} | get_facebook_post_insights: {post_id: string, metrics?: array} | get_facebook_post_comments: {post_id: string, limit?: integer} | list_facebook_leadgen_forms: {page_id: string, limit?: integer} | list_facebook_leads: {form_id: string, limit?: integer} | list_instagram_business_accounts: none | list_instagram_media: {ig_account_id: string, limit?: integer, since?: string, until?: string} | get_instagram_media_insights: {media_id: string, metrics?: array} | get_instagram_account_insights: {ig_account_id: string, metrics?: array, period?: string, since?: integer, until?: integer} | get_instagram_comments: {media_id: string, limit?: integer}'}}}
입력 스키마
{'type': 'object', 'properties': {}}
입력 스키마
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': "The spec key (e.g. 'mrr', 'aov')."}}}
입력 스키마
{'type': 'object', 'properties': {'unit': {'type': 'string', 'description': "Optional filter: only return specs with this expected_unit (e.g. 'USD', 'count')."}, 'owner_email': {'type': 'string', 'description': 'Optional filter by owner_email.'}}}
입력 스키마
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': "The spec key to remove (e.g. 'mrr', 'aov'). Case-sensitive, must match an existing spec."}}}
입력 스키마
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': "The spec key to resolve (e.g. 'mrr')."}}}
입력 스키마
{'type': 'object', 'required': ['key', 'label', 'expression', 'expected_unit'], 'properties': {'key': {'type': 'string', 'description': "Short stable identifier (e.g. 'mrr')."}, 'label': {'type': 'string', 'description': "Human-readable label (e.g. 'Monthly Recurring Revenue')."}, 'variables': {'type': 'object', 'description': 'Per-spec substitution table for $user.<var> references inside the expression. Example: {"subscription_products": ["prod_growth"]}.'}, 'expression': {'type': 'string', 'description': 'The computation in the v0 mini-DSL. Example: stripe.list_subscriptions(status="active").aggregate(sum, field=plan.amount)'}, 'description': {'type': 'string', 'description': "The user's own definition of what this metric means. Surfaced in the provenance footer."}, 'owner_email': {'type': 'string', 'description': 'Who is responsible for this definition (so reviewers know who to ping).'}, 'expected_unit': {'type': 'string', 'description': "Free-form unit string. Renderer uses for formatting: 'USD', 'count', 'ratio', 'percent', 'days'."}, 'tolerance_percent': {'type': 'number', 'description': 'Absolute percentage tolerance for cross_source_checks. Default 1.0. 0.0 for exact.'}, 'expected_freshness': {'type': 'string', 'description': "Optional. Free text the user accepts as staleness budget: 'realtime', 'daily', 'monthly'. Metadata only — does NOT trigger caching."}, 'cross_source_checks': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Other metric spec keys whose result should match this one within tolerance_percent. Populates drift block on the resolve result. Empty = no cross-source check.'}, 'prefer_truth_source': {'type': 'boolean', 'description': 'If true and a TruthSource answers this key, the v0.1 resolver will use the truth source instead of executing the expression. v0 does NOT honor this flag yet — included so the spec is forward-compatible. Default false.'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['list_workspaces', 'list_boards', 'get_board', 'list_items', 'get_item'], 'type': 'string', 'description': 'list_workspaces: List Monday.com workspaces available to the connected user. Use this to discover workspace IDs before filtering boards | list_boards: List Monday.com boards available to the connected user, optionally filtered by workspace_id. Use this when the user asks | get_board: Get Monday.com board metadata, including columns and groups, for a specific board_id. Use this before listing items when | list_items: List Monday.com items, also known as rows or pulses, on a specific board_id with column values. Use this for project tas | get_item: Get one Monday.com item by item_id with its column values. Use this to inspect a specific task, row, pulse, status, owne'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. list_workspaces: none | list_boards: {limit?: integer, workspace_id?: integer} | get_board: {board_id: integer} | list_items: {board_id: integer, limit?: integer, projection?: object} | get_item: {item_id: integer}'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['notion_get_user_info', 'notion_list_users', 'notion_search', 'notion_list_databases', 'notion_query_database', 'notion_get_page', 'notion_get_block_children', 'notion_get_database'], 'type': 'string', 'description': "notion_get_user_info: Get the bot user associated with the connected Notion Internal Integration Token. Returns the bot user's id, name, type, | notion_list_users: List workspace users (members and guests) visible to the Notion integration. Returns id, name, type, avatar_url, and (fo | notion_search: Search Notion pages and databases by free-text query. Returns matching page or database objects with id, title, url, las | notion_list_databases: List all databases the Notion integration has access to. Implemented as a search filtered to object=database. Returns ea | notion_query_database: Query the rows (pages) inside a Notion database. Returns each row's id, properties, url, created_time, last_edited_time, | notion_get_page: Get a Notion page's metadata and properties. Returns id, url, properties, created_time, last_edited_time, archived, and | notion_get_block_children: Get the child blocks of a Notion page or block. Used to read the body content of a page — paragraphs, headings, bulleted | notion_get_database: Get a Notion database's schema and metadata. Returns id, title, description, url, properties schema (column definitions,"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. notion_get_user_info: none | notion_list_users: {page_size?: integer, start_cursor?: string} | notion_search: {query?: string, filter_object?: string, page_size?: integer, start_cursor?: string} | notion_list_databases: {page_size?: integer, start_cursor?: string} | notion_query_database: {database_id: string, page_size?: integer, start_cursor?: string, projection?: object} | notion_get_page: {page_id: string} | notion_get_block_children: {block_id: string, page_size?: integer, start_cursor?: string} | notion_get_database: {database_id: string}'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_connection_info', 'search_partners', 'get_partner', 'list_sale_orders', 'get_sale_order', 'list_crm_leads', 'get_crm_lead', 'list_invoices', 'get_invoice', 'search_products', 'get_stock_on_hand', 'list_stock_pickings', 'list_journals', 'list_payments', 'list_taxes', 'list_employees', 'list_projects', 'list_project_tasks'], 'type': 'string', 'description': "get_connection_info: Health check: returns the connected Odoo instance's server version, database name, and the authenticated user (id, name, | search_partners: Search Odoo partners (res.partner) — contacts and companies. Filter by free-text query against name/email/display_name, | get_partner: Get full details for a single Odoo partner (res.partner) by ID — name, email, phone, address, VAT, customer/supplier ran | list_sale_orders: List Odoo sale orders (sale.order). Filter by state (draft/sent/sale/done/cancel), partner_id, and date range. Returns h | get_sale_order: Get a single Odoo sale order with full line items (product, quantity, price, discount, tax). Input: order_id (required) | list_crm_leads: List Odoo CRM leads and opportunities (crm.lead). Filter by stage_id, salesperson user_id, type ('lead' or 'opportunity' | get_crm_lead: Get full details for a single Odoo CRM lead/opportunity by ID — stage, probability, expected revenue, salesperson, tags, | list_invoices: List Odoo invoices and bills (account.move). Filter by state (draft/posted/cancel), move_type (out_invoice = customer in | get_invoice: Get a single Odoo invoice with full line items (product, quantity, unit price, discount, taxes). Input: invoice_id (requ | search_products: Search Odoo products (product.product). Filter by free-text query against name/default_code/barcode, category_id, and av | get_stock_on_hand: Get on-hand inventory quantities (stock.quant) — quantity, reserved, available — per product and warehouse location. Fil | list_stock_pickings: List Odoo stock transfers / shipments / receipts (stock.picking). Filter by state (draft/waiting/confirmed/assigned/done | list_journals: List Odoo accounting journals (account.journal). Filter by journal type: sale, purchase, cash, bank, general | list_payments: List Odoo customer and vendor payments (account.payment). Filter by state (draft/posted/cancel), partner, payment_type ( | list_taxes: List Odoo tax records (account.tax). Filter by type_tax_use: 'sale', 'purchase', or 'none' | list_employees: List active Odoo employees (hr.employee). Filter by department_id and direct manager (parent_id). Returns name, work ema | list_projects: List Odoo projects (project.project). Filter by active flag. Returns name, partner, project manager, task count | list_project_tasks: List Odoo project tasks (project.task). Filter by project_id, stage_id, assignee user_id, and create_date. Returns name,"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_connection_info: none | search_partners: {query?: string, customers_only?: boolean, suppliers_only?: boolean, limit?: integer, offset?: integer} | get_partner: {partner_id: integer} | list_sale_orders: {state?: string, partner_id?: integer, date_from?: string, date_to?: string, limit?: integer, offset?: integer} | get_sale_order: {order_id: integer} | list_crm_leads: {stage_id?: integer, salesperson_id?: integer, type?: string, date_from?: string, limit?: integer, offset?: integer} | get_crm_lead: {lead_id: integer} | list_invoices: {state?: string, move_type?: string, partner_id?: integer, date_from?: string, date_to?: string, limit?: integer, offset?: integer} | get_invoice: {invoice_id: integer} | search_products: {query?: string, category_id?: integer, available_only?: boolean, limit?: integer, offset?: integer} | get_stock_on_hand: {product_id?: integer, location_id?: integer, limit?: integer, offset?: integer} | list_stock_pickings: {state?: string, picking_type_id?: integer, date_from?: string, limit?: integer, offset?: integer} | list_journals: {journal_type?: string, limit?: integer, offset?: integer} | list_payments: {state?: string, partner_id?: integer, payment_type?: string, date_from?: string, date_to?: string, limit?: integer, offset?: integer} | list_taxes: {type_tax_use?: string, limit?: integer, offset?: integer} | list_employees: {department_id?: integer, manager_id?: integer, limit?: integer, offset?: integer} | list_projects: {active?: boolean, limit?: integer, offset?: integer} | list_project_tasks: {project_id?: integer, stage_id?: integer, assignee_id?: integer, date_from?: string, limit?: integer, offset?: integer}'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['list_locations', 'list_organizations', 'list_reviews', 'list_feedback', 'list_messages', 'list_contacts'], 'type': 'string', 'description': "list_locations: List the Podium locations the connected user can access. Most other Podium data is scoped to a location. (Podium v4; sco | list_organizations: List the Podium organizations the connected user belongs to. (Podium v4; scope read_organizations.) [Breadth-tier connec | list_reviews: List reviews for the connected user's Podium locations: rating, author, body, and source site. The core reputation-manag | list_feedback: List customer feedback for the connected user's Podium locations. (Podium v4; scope read_feedback.) [Breadth-tier connec | list_messages: List messaging conversations for the connected user's Podium locations (Podium is a business-messaging platform). (Podiu | list_contacts: List contacts for the connected user's Podium locations, to tie reviews and messages back to customers. (Podium v4; scop"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. list_locations: none | list_organizations: none | list_reviews: none | list_feedback: none | list_messages: none | list_contacts: none'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_account_info', 'list_events', 'list_persons', 'get_event_definitions', 'run_query', 'get_funnel'], 'type': 'string', 'description': "get_account_info: Get PostHog account and project metadata for the connected user. Returns the user email, organization name, project ID, | list_events: List recent raw events captured by PostHog for the project. Returns event ID, event name, distinct ID, timestamp, the fu | list_persons: List person records for the PostHog project. A person is PostHog's unified user record, aggregating events from one or m | get_event_definitions: List event-name definitions for the project — the event catalog that tells you what event names can actually be queried | run_query: Execute a HogQL query against PostHog events and persons. HogQL is PostHog's SQL-like query language — use it for compou | get_funnel: Compute a funnel over an ordered list of event steps. Returns the per-step user count, the conversion rate from the firs"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_account_info: none | list_events: {project_id?: integer, event?: string, after?: string, before?: string, limit?: integer} | list_persons: {project_id?: integer, search?: string, limit?: integer} | get_event_definitions: {project_id?: integer, search?: string, limit?: integer} | run_query: {query: string, project_id?: integer, limit?: integer} | get_funnel: {steps: array, project_id?: integer, date_from?: string, date_to?: string}'}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'end_date': {'type': 'string', 'default': 'today', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}, 'project_id': {'type': 'integer', 'minimum': 1, 'description': 'Optional PostHog project id; defaults to the connected project.'}, 'start_date': {'type': 'string', 'default': '30daysAgo', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['tool', 'status', 'summary_text', 'mime_type', 'width', 'height', 'image_sha256', 'evidence', 'execution_receipt', 'provider', 'query_ranges', 'facts'], 'properties': {'tool': {'const': 'posthog_dashboard'}, 'facts': {'type': 'object'}, 'width': {'const': 1600}, 'height': {'const': 992}, 'status': {'const': 'ok'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'PostHog'}, 'mime_type': {'const': 'image/png'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'execution_receipt': {'type': 'object', 'required': ['version', 'renderer_version', 'font_sha256', 'query_sha256', 'data_sha256', 'image_sha256'], 'properties': {'version': {'const': 1}, 'data_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'font_sha256': {'type': 'object'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'renderer_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'provider', 'query_ranges', 'source_counts', 'evidence'], 'properties': {'tool': {'const': 'posthog_dashboard'}, 'status': {'const': 'no_data'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'PostHog'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'source_counts': {'type': 'object'}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'error', 'message', 'evidence'], 'properties': {'tool': {'const': 'posthog_dashboard'}, 'error': {'type': 'string', 'minLength': 1}, 'status': {'const': 'error'}, 'message': {'type': 'string', 'minLength': 1}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'summary_text': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}]}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_subscribers', 'get_subscriber', 'get_keywords', 'get_keyword'], 'type': 'string', 'description': 'get_subscribers: List PostScript SMS subscribers with optional filters for email, phone, Shopify customer ID, and date ranges | get_subscriber: Get a single PostScript SMS subscriber by ID | get_keywords: List all active SMS opt-in keywords for the PostScript shop | get_keyword: Get a single PostScript SMS keyword by ID'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_subscribers: {page?: integer, sort?: string, email?: string, phone_number?: string, shopify_customer_id?: string, created_at_gte?: string, created_at_lte?: string, updated_at_gte?: string, updated_at_lte?: string} | get_subscriber: {subscriber_id: string} | get_keywords: none | get_keyword: {keyword_id: string}'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_profit_loss', 'list_invoices', 'get_overdue_invoices', 'get_balance_sheet', 'get_company_info', 'list_customers', 'get_customer', 'search_customers', 'get_invoice', 'search_invoices', 'list_payments', 'get_payment', 'list_items', 'list_accounts', 'list_vendors', 'list_bills', 'get_ar_aging', 'get_ap_aging'], 'type': 'string', 'description': 'get_profit_loss: Get Profit and Loss (Income Statement) report | list_invoices: List invoices with optional date filters | get_overdue_invoices: Get overdue invoices with open balance, sorted by days overdue | get_balance_sheet: Get Balance Sheet report: assets, liabilities, equity | get_company_info: Get QuickBooks company profile: name, address, fiscal year, industry | list_customers: List QuickBooks customers with pagination | get_customer: Get full details for a single QuickBooks customer | search_customers: Search QuickBooks customers by display name | get_invoice: Get full details for a single QuickBooks invoice | search_invoices: Search invoices by customer name or invoice number | list_payments: List payments received with optional date filters | get_payment: Get full details for a single QuickBooks payment | list_items: List products and services (items) in QuickBooks | list_accounts: List chart of accounts from QuickBooks | list_vendors: List vendors (suppliers) in QuickBooks | list_bills: List bills (payables) with optional date filters | get_ar_aging: Get Accounts Receivable Aging report by age bucket | get_ap_aging: Get Accounts Payable Aging report by age bucket'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_profit_loss: {start_date?: string, end_date?: string} | list_invoices: {max_results?: integer, start_position?: integer, start_date?: string, end_date?: string} | get_overdue_invoices: {max_results?: integer} | get_balance_sheet: {end_date?: string} | get_company_info: none | list_customers: {max_results?: integer, start_position?: integer} | get_customer: {customer_id: string} | search_customers: {query: string, max_results?: integer} | get_invoice: {invoice_id: string} | search_invoices: {query: string, max_results?: integer} | list_payments: {max_results?: integer, start_position?: integer, start_date?: string, end_date?: string} | get_payment: {payment_id: string} | list_items: {max_results?: integer, start_position?: integer} | list_accounts: {max_results?: integer, start_position?: integer, account_type?: string} | list_vendors: {max_results?: integer, start_position?: integer} | list_bills: {max_results?: integer, start_position?: integer, start_date?: string, end_date?: string} | get_ar_aging: {end_date?: string} | get_ap_aging: {end_date?: string}'}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'end_date': {'type': 'string', 'default': 'today', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}, 'start_date': {'type': 'string', 'default': '30daysAgo', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['tool', 'status', 'summary_text', 'mime_type', 'width', 'height', 'image_sha256', 'evidence', 'execution_receipt', 'provider', 'query_ranges', 'facts'], 'properties': {'tool': {'const': 'quickbooks_dashboard'}, 'facts': {'type': 'object'}, 'width': {'const': 1600}, 'height': {'const': 992}, 'status': {'const': 'ok'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'QuickBooks'}, 'mime_type': {'const': 'image/png'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'execution_receipt': {'type': 'object', 'required': ['version', 'renderer_version', 'font_sha256', 'query_sha256', 'data_sha256', 'image_sha256'], 'properties': {'version': {'const': 1}, 'data_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'font_sha256': {'type': 'object'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'renderer_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'provider', 'query_ranges', 'source_counts', 'evidence'], 'properties': {'tool': {'const': 'quickbooks_dashboard'}, 'status': {'const': 'no_data'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'QuickBooks'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'source_counts': {'type': 'object'}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'error', 'message', 'evidence'], 'properties': {'tool': {'const': 'quickbooks_dashboard'}, 'error': {'type': 'string', 'minLength': 1}, 'status': {'const': 'error'}, 'message': {'type': 'string', 'minLength': 1}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'summary_text': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}]}
입력 스키마
{'type': 'object', 'required': ['channel_id'], 'properties': {'channel_id': {'type': 'string', 'description': 'Channel ID (UC...) of the registered brand to remove'}}}
입력 스키마
{'type': 'object', 'required': ['connector_id'], 'properties': {'connector_id': {'type': 'string', 'description': "Connector token to reset (e.g., 'slack', 'tiktok', 'klaviyo', 'google_workspace', 'microsoft', 'gohighlevel')."}}}
입력 스키마
{'type': 'object', 'required': ['intent'], 'properties': {'multi': {'type': 'boolean', 'default': False, 'description': 'Set true to allow returning tools from multiple connector groups for cross-source queries.'}, 'intent': {'type': 'string', 'description': "Natural language description of what you want to do. Examples: 'check GA4 traffic this week', 'show me overdue invoices', 'compare ad spend to revenue'."}, 'connector_hint': {'type': 'string', 'description': "Optional explicit connector name if the user specifies one. Examples: 'quickbooks', 'shopify', 'ga4', 'slack'."}}}
입력 스키마
{'type': 'object', 'required': ['runbook_id'], 'properties': {'mode': {'enum': ['summary', 'detailed', 'diagnostic'], 'type': 'string', 'description': 'Optional output depth mode.'}, 'version': {'type': 'string', 'description': 'Exact governed runbook version. Required for server_side execution; ignored in playbook mode.'}, 'arguments': {'type': 'object', 'description': 'Optional explicit runbook argument object.'}, 'date_range': {'type': 'string', 'description': "Optional date window hint like 'last_30_days'."}, 'runbook_id': {'type': 'string', 'description': 'The runbook id to execute (from list_runbooks/select_runbook).'}, 'content_hash': {'type': 'string', 'pattern': '^sha256:[0-9a-f]{64}$', 'description': 'Exact governed runbook SHA-256 content hash. Required for server_side execution; ignored in playbook mode.'}, 'user_question': {'type': 'string', 'description': 'Original user question for execution context.'}, 'execution_mode': {'enum': ['playbook', 'server_side'], 'type': 'string', 'default': 'playbook', 'description': 'playbook preserves the existing client-executed response. server_side runs the bounded executive-snapshot pilot.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['salesforce_get_account_by_id', 'salesforce_get_account_by_keywords', 'salesforce_get_opportunity_by_id', 'salesforce_list_my_tasks', 'salesforce_search_contacts', 'salesforce_search_leads', 'salesforce_search_opportunities', 'salesforce_whoami'], 'type': 'string', 'description': "salesforce_get_account_by_id: Gets the account with related info: contacts, leads, notes, calls, opportunities, tasks, emails, and events (up to 10 it | salesforce_get_account_by_keywords: Searches for accounts in Salesforce and returns them with related info: contacts, leads, notes, calls, opportunities, ta | salesforce_get_opportunity_by_id: Gets a single opportunity with enriched related data: contact roles, line items, open tasks, and recent notes. [Breadth- | salesforce_list_my_tasks: Lists tasks assigned to you in Salesforce with optional filters. Excludes call logs and email activities — only shows a | salesforce_search_contacts: Searches for contacts in Salesforce with optional filters. At least one filter (query, account_id, or title) must be pr | salesforce_search_leads: Searches for leads in Salesforce with optional filters. Always excludes already-converted leads. Use owner='me' (defaul | salesforce_search_opportunities: Searches for opportunities (deals) in Salesforce with optional filters. Returns a paginated list of opportunities with | salesforce_whoami: Get information about the currently authenticated Salesforce user. This is typically the first tool called to establish"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. salesforce_get_account_by_id: {account_id: string} | salesforce_get_account_by_keywords: {query: string, limit?: integer, page?: integer} | salesforce_get_opportunity_by_id: {opportunity_id: string} | salesforce_list_my_tasks: {status?: string, due_date_from?: string, due_date_to?: string, overdue_only?: boolean, account_or_opportunity_id?: string, limit?: integer, page?: integer} | salesforce_search_contacts: {query?: string, account_id?: string, title?: string, limit?: integer, page?: integer} | salesforce_search_leads: {query?: string, status?: string, owner?: string, lead_source?: string, created_after?: string, limit?: integer, page?: integer} | salesforce_search_opportunities: {query?: string, stage?: string, close_date_from?: string, close_date_to?: string, owner?: string, min_amount?: number, limit?: integer, page?: integer} | salesforce_whoami: none'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_sites', 'get_performance', 'get_sitemaps', 'inspect_url'], 'type': 'string', 'description': 'get_sites: List all properties (sites) verified in Google Search Console | get_performance: Query search performance data from Google Search Console: clicks, impressions, CTR, and average position. Group by query | get_sitemaps: List sitemaps submitted to Google Search Console for a property, including submitted and indexed URL counts | inspect_url: Inspect a specific URL using the Google Search Console URL Inspection API. Returns index status, coverage state, mobile '}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_sites: none | get_performance: {site_url: string, start_date: string, end_date: string, dimensions?: array, row_limit?: integer, start_row?: integer, dimension_filter_groups?: array, search_type?: string} | get_sitemaps: {site_url: string} | inspect_url: {site_url: string, inspection_url: string}'}}}
입력 스키마
{'type': 'object', 'properties': {'keywords': {'type': 'string', 'description': 'Free-text search query'}, 'condition': {'type': 'integer', 'description': '1=New, 2=Used'}, 'max_price': {'type': 'number'}, 'min_price': {'type': 'number'}, 'page_size': {'type': 'integer', 'default': 25}, 'page_index': {'type': 'integer', 'default': 1}, 'category_id': {'type': 'integer', 'description': 'GunBroker category ID'}}}
입력 스키마
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string'}, 'max_results': {'type': 'integer', 'default': 10}}}
입력 스키마
{'type': 'object', 'required': ['user_question'], 'properties': {'user_question': {'type': 'string', 'description': "The user's plain-language business question."}, 'preferred_scope': {'enum': ['business', 'marketing', 'finance', 'operations', 'customer', 'unknown'], 'type': 'string', 'description': 'Optional analysis scope hint.'}, 'connected_sources': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional hint list of currently connected data sources.'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_domain_overview', 'get_organic_keywords', 'get_paid_keywords', 'get_competitors', 'get_backlinks_overview', 'get_keyword_overview', 'get_domain_history'], 'type': 'string', 'description': "get_domain_overview: Get domain-level organic and paid traffic summary from Semrush. Returns the domain's estimated organic keyword count, or | get_organic_keywords: Get top organic (SEO) keywords that a domain ranks for in Semrush. Returns keyword, ranking position, monthly search vol | get_paid_keywords: Get top paid (PPC / Google Ads) keywords that a domain advertises on in Semrush. Returns keyword, ad position, monthly s | get_competitors: Get organic competitor domains for a domain from Semrush. Returns domains that compete for the same organic keywords, wi | get_backlinks_overview: Get backlink profile overview for a domain from Semrush. Returns authority score, total backlinks, number of referring d | get_keyword_overview: Get keyword research data from Semrush for a specific keyword or phrase. Returns monthly search volume, CPC (cost per cl | get_domain_history: Get monthly historical organic and paid search snapshots for a domain from Semrush. Returns one row per month with rank,"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_domain_overview: {domain: string, database?: string} | get_organic_keywords: {domain: string, database?: string, limit?: integer, offset?: integer} | get_paid_keywords: {domain: string, database?: string, limit?: integer, offset?: integer} | get_competitors: {domain: string, database?: string, limit?: integer} | get_backlinks_overview: {domain: string} | get_keyword_overview: {keyword: string, database?: string} | get_domain_history: {domain: string, database?: string, months?: integer}'}}}
입력 스키마
{'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 253, 'minLength': 1}, 'months': {'type': 'integer', 'default': 12, 'maximum': 24, 'minimum': 1}, 'database': {'type': 'string', 'default': 'us', 'pattern': '^[a-z]{2,4}$'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['tool', 'status', 'summary_text', 'mime_type', 'width', 'height', 'image_sha256', 'evidence', 'execution_receipt', 'provider', 'query_ranges', 'facts'], 'properties': {'tool': {'const': 'semrush_dashboard'}, 'facts': {'type': 'object'}, 'width': {'const': 1600}, 'height': {'const': 992}, 'status': {'const': 'ok'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Semrush'}, 'mime_type': {'const': 'image/png'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'execution_receipt': {'type': 'object', 'required': ['version', 'renderer_version', 'font_sha256', 'query_sha256', 'data_sha256', 'image_sha256'], 'properties': {'version': {'const': 1}, 'data_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'font_sha256': {'type': 'object'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'renderer_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'provider', 'query_ranges', 'source_counts', 'evidence'], 'properties': {'tool': {'const': 'semrush_dashboard'}, 'status': {'const': 'no_data'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Semrush'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'source_counts': {'type': 'object'}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'error', 'message', 'evidence'], 'properties': {'tool': {'const': 'semrush_dashboard'}, 'error': {'type': 'string', 'minLength': 1}, 'status': {'const': 'error'}, 'message': {'type': 'string', 'minLength': 1}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'summary_text': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}]}
입력 스키마
{'type': 'object', 'required': ['channel_id'], 'properties': {'channel_id': {'type': 'string', 'description': 'Channel ID (UC...) of an already-registered brand to mark as primary'}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'end_date': {'type': 'string', 'default': 'today', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}, 'start_date': {'type': 'string', 'default': '30daysAgo', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['tool', 'status', 'summary_text', 'mime_type', 'width', 'height', 'image_sha256', 'evidence', 'execution_receipt', 'provider', 'query_ranges', 'facts'], 'properties': {'tool': {'const': 'shopify_dashboard'}, 'facts': {'type': 'object'}, 'width': {'const': 1600}, 'height': {'const': 992}, 'status': {'const': 'ok'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Shopify'}, 'mime_type': {'const': 'image/png'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'execution_receipt': {'type': 'object', 'required': ['version', 'renderer_version', 'font_sha256', 'query_sha256', 'data_sha256', 'image_sha256'], 'properties': {'version': {'const': 1}, 'data_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'font_sha256': {'type': 'object'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'renderer_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'provider', 'query_ranges', 'source_counts', 'evidence'], 'properties': {'tool': {'const': 'shopify_dashboard'}, 'status': {'const': 'no_data'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Shopify'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'source_counts': {'type': 'object'}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'error', 'message', 'evidence'], 'properties': {'tool': {'const': 'shopify_dashboard'}, 'error': {'type': 'string', 'minLength': 1}, 'status': {'const': 'error'}, 'message': {'type': 'string', 'minLength': 1}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'summary_text': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}]}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_store_info', 'list_orders', 'get_order', 'get_order_summary', 'get_order_refunds', 'list_products', 'get_product', 'get_inventory_items', 'get_inventory_levels', 'list_locations', 'list_customers', 'search_customers', 'get_customer', 'list_returns', 'list_fulfillment_orders', 'list_discount_code_price_rules'], 'type': 'string', 'description': 'get_store_info: Get connected SHOPLINE store identity, currency, timezone, status, domain, language, and contact fields. Read-only | list_orders: List SHOPLINE orders with totals, payment and fulfillment state, customer, line items, refunds, and pagination cursor. R | get_order: Get one SHOPLINE order by id using the documented orders ids filter. Returns totals, customer, line items, shipping, ful | get_order_summary: Calculate a bounded SHOPLINE order summary over a creation-time window. Returns source values and explicit formulas for | get_order_refunds: Get refunds associated with one SHOPLINE order, including refund line items, adjustments, and transactions_v2. Read-only | list_products: List SHOPLINE products and embedded variants, including SKU, price, inventory item id, and aggregate inventory quantity | get_product: Get one SHOPLINE product by id with variants, prices, SKUs, media, and inventory fields. Read-only | get_inventory_items: Get SHOPLINE inventory-item metadata by one or more IDs: cost, SKU, tracking, shipping requirement, and variant id. Read | get_inventory_levels: Get SHOPLINE inventory availability for inventory item IDs, optionally filtered to location IDs. Read-only | list_locations: List SHOPLINE inventory and fulfillment locations with address and active/default status fields. Read-only | list_customers: List SHOPLINE customers with profile, order count, total spent, subscription state, date filters, and pagination cursor | search_customers: Search SHOPLINE customers by fuzzy name/email/phone/address or the documented structured customer query syntax. Read-onl | get_customer: Get one SHOPLINE customer by id with profile, order count, total spent, addresses, and subscription state. Read-only | list_returns: Get SHOPLINE returns by return id or order id with status, reasons, and returned line items. At least one identifier is | list_fulfillment_orders: List assigned SHOPLINE fulfillment orders, including destination, location, holds, line items, supported actions, and pa | list_discount_code_price_rules: List SHOPLINE discount-code price rules. This endpoint is not a complete automatic-discount inventory; that limitation i'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_store_info: none | list_orders: {limit?: integer, page_info?: string, financial_status?: string, fulfillment_status?: string, status?: string, created_at_min?: string, created_at_max?: string} | get_order: {order_id: string} | get_order_summary: {created_at_min?: string, created_at_max?: string, max_pages?: integer} | get_order_refunds: {order_id: string, limit?: integer} | list_products: {limit?: integer, page_info?: string, status?: string, title?: string, vendor?: string, created_at_min?: string, created_at_max?: string} | get_product: {product_id: string} | get_inventory_items: {ids: array} | get_inventory_levels: {inventory_item_ids: array, location_ids?: array} | list_locations: none | list_customers: {limit?: integer, page_info?: string, since_id?: string, ids?: string, created_at_min?: string, created_at_max?: string, updated_at_min?: string, updated_at_max?: string} | search_customers: {limit?: integer, page_info?: string, query?: string, query_param?: string, order?: string} | get_customer: {customer_id: string} | list_returns: {id?: string, order_id?: string} | list_fulfillment_orders: {limit?: integer, assignment_status?: string, location_ids?: array, page_info?: string, since_id?: string} | list_discount_code_price_rules: {limit?: integer, page_info?: string, created_at_min?: string, created_at_max?: string, starts_at_min?: string, starts_at_max?: string, ends_at_min?: string, ends_at_max?: string}'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['list_channels', 'search_messages', 'get_workspace_analytics', 'get_workspace_info', 'get_thread', 'search_files'], 'type': 'string', 'description': 'list_channels: List Slack channels accessible to the authenticated user | search_messages: Search Slack messages by query | get_workspace_analytics: Get aggregate Slack workspace analytics (channels, members, top channels) | get_workspace_info: Get metadata about the connected Slack workspace (team, domain, URL) | get_thread: Get a Slack thread by channel ID and thread timestamp | search_files: Search Slack file attachments by query. If no matches are returned, use visibility_probe in the response to distinguish '}, 'params': {'type': 'object', 'description': 'Action-specific parameters. list_channels: {limit?: integer, exclude_archived?: boolean} | search_messages: {query: string, count?: integer} | get_workspace_analytics: {channel_limit?: integer} | get_workspace_info: none | get_thread: {channel_id: string, thread_ts: string, limit?: integer, inclusive?: boolean} | search_files: {query: string, count?: integer, page?: integer, sort?: string, sort_dir?: string}'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_account', 'list_charges', 'list_customers', 'list_payouts', 'get_payout', 'list_balance_transactions', 'list_refunds', 'get_refund', 'list_disputes', 'get_dispute', 'get_balance'], 'type': 'string', 'description': 'get_account: Get the authenticated Stripe account profile: business name, country, default currency, charges/payouts enabled status, | list_charges: List Stripe charges (payments) with cursor pagination. Returns charge id, amount (in smallest currency unit, e.g. cents) | list_customers: List Stripe customers with cursor pagination, optionally filtered by email. Returns customer id, email, name, descriptio | list_payouts: List Stripe payouts (bank settlements) with cursor pagination. Each payout represents money Stripe sent to the connected | get_payout: Get full detail for a single Stripe payout by id. Use to drill into one payout to inspect bank routing detail, automatic | list_balance_transactions: List Stripe balance transactions — the canonical Stripe ledger that every reconciliation tool uses to match every cent. | list_refunds: List Stripe refunds with cursor pagination. Each refund returns id (re_...), amount, currency, status (succeeded/pending | get_refund: Get full detail for a single Stripe refund by id. Returns amount, currency, status, reason, charge id, payment_intent id | list_disputes: List Stripe disputes (chargebacks) with cursor pagination. Each dispute returns id (du_...), amount, currency, status (w | get_dispute: Get full detail for a single Stripe dispute by id. Returns amount, status, reason, charge id, evidence_details with due_ | get_balance: Get the current Stripe balance snapshot — available funds (already cleared, eligible for payout), pending funds (not yet'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_account: none | list_charges: {limit?: integer, starting_after?: string, created_after?: integer} | list_customers: {limit?: integer, starting_after?: string, email?: string} | list_payouts: {limit?: integer, starting_after?: string, created_after?: integer, status?: string} | get_payout: {payout_id: string} | list_balance_transactions: {limit?: integer, starting_after?: string, created_after?: integer, type?: string, payout?: string} | list_refunds: {limit?: integer, starting_after?: string, created_after?: integer, charge?: string, payment_intent?: string} | get_refund: {refund_id: string} | list_disputes: {limit?: integer, starting_after?: string, created_after?: integer} | get_dispute: {dispute_id: string} | get_balance: none'}}}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'end_date': {'type': 'string', 'default': 'today', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}, 'start_date': {'type': 'string', 'default': '30daysAgo', 'pattern': '^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|today|yesterday|[0-9]{1,3}daysAgo)$', 'maxLength': 16, 'description': 'YYYY-MM-DD, today, yesterday, or NdaysAgo.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['tool', 'status', 'summary_text', 'mime_type', 'width', 'height', 'image_sha256', 'evidence', 'execution_receipt', 'provider', 'query_ranges', 'facts'], 'properties': {'tool': {'const': 'stripe_dashboard'}, 'facts': {'type': 'object'}, 'width': {'const': 1600}, 'height': {'const': 992}, 'status': {'const': 'ok'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Stripe'}, 'mime_type': {'const': 'image/png'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'execution_receipt': {'type': 'object', 'required': ['version', 'renderer_version', 'font_sha256', 'query_sha256', 'data_sha256', 'image_sha256'], 'properties': {'version': {'const': 1}, 'data_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'font_sha256': {'type': 'object'}, 'image_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'query_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'renderer_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'provider', 'query_ranges', 'source_counts', 'evidence'], 'properties': {'tool': {'const': 'stripe_dashboard'}, 'status': {'const': 'no_data'}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'provider': {'const': 'Stripe'}, 'query_ranges': {'type': 'object'}, 'summary_text': {'type': 'string', 'minLength': 1}, 'source_counts': {'type': 'object'}}, 'additionalProperties': True}, {'type': 'object', 'required': ['tool', 'status', 'summary_text', 'error', 'message', 'evidence'], 'properties': {'tool': {'const': 'stripe_dashboard'}, 'error': {'type': 'string', 'minLength': 1}, 'status': {'const': 'error'}, 'message': {'type': 'string', 'minLength': 1}, 'evidence': {'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}}, 'additionalProperties': True}, 'summary_text': {'type': 'string', 'minLength': 1}}, 'additionalProperties': True}]}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['get_account_analytics', 'list_videos', 'get_video_analytics', 'get_profile', 'get_video_details'], 'type': 'string', 'description': "get_account_analytics: Get TikTok account-level analytics: total videos posted, total likes received, follower count, and following count | list_videos: List the authenticated user's posted TikTok videos with engagement metrics (views, likes, comments, shares) | get_video_analytics: Get aggregated analytics across all the user's TikTok videos: total views, likes, comments, shares, and top 10 videos | get_profile: Get the authenticated user's TikTok profile: username, display name, bio, verified status, avatar, and account statistic | get_video_details: Get detailed information for specific TikTok videos by their IDs, including engagement metrics and embed links"}, 'params': {'type': 'object', 'description': 'Action-specific parameters. get_account_analytics: none | list_videos: {max_count?: integer, cursor?: integer} | get_video_analytics: none | get_profile: none | get_video_details: {video_ids: array}'}}}
입력 스키마
{'type': 'object', 'properties': {}}
입력 스키마
{'type': 'object', 'required': ['key', 'label', 'location', 'answers', 'retrieval_tool'], 'properties': {'key': {'type': 'string', 'description': "Short stable identifier for this source. Examples: 'unit_economics_workbook', 'pricing_sheet', 'agency_contract'. Re-registering the same key overwrites the previous entry."}, 'label': {'type': 'string', 'description': 'Human-readable label the user gave the document.'}, 'notes': {'type': 'string', 'description': 'Optional caveats or usage notes.'}, 'answers': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List of canonical questions this source authoritatively answers. Used by the AI to decide which manifest entry to consult.'}, 'location': {'type': 'string', 'description': "Resource pointer: 'drive://<file_id>', 'onedrive://<item_id>', 'dropbox://<path>', 'sharepoint://<site>/<file>', or 'url://<https>'. Never embed inline document content."}, 'retrieval_tool': {'type': 'string', 'description': "MCP tool name the AI should call to fetch the document. e.g. 'get_file_content' for Drive, 'get_my_onedrive_file_content' for OneDrive."}, 'refresh_cadence': {'type': 'string', 'description': "Optional. e.g. 'weekly', 'monthly', 'updated manually'."}}}
입력 스키마
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': 'The truth-source key to remove.'}}}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['fetch_url', 'fetch_social_profile'], 'type': 'string', 'description': 'fetch_url: Fetch a public web page and return its cleaned text plus title and description, each cited to the source URL and timesta | fetch_social_profile: Fetch grounded PUBLIC stats for a social media profile — follower count, post count, following count, display name, bio,'}, 'params': {'type': 'object', 'description': 'Action-specific parameters. fetch_url: {url: string} | fetch_social_profile: {url: string}'}}}
최근 도구 변경
유사한 MCP 서버
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
Stratalize Intelligence
Provides vendor, market, SaaS, workforce, government contract, public company, regulatory, competitive, and AI-brand intelligence…
Google Ads
Reads and manages Google Ads accounts, campaigns, budgets, ads, keywords, sitelinks, performance, search terms, ROAS, diagnostics…
AdButler
Manages AdButler advertisers, campaigns, ad items, audiences, zones, creatives, catalogs, and advertising reports.
SharksAPI.AI
Provides marketing analytics and actions across GA4, Search Console, Google Ads, social channels, SEO, WordPress, and marketing p…
Meta Council
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting a…
Stratalize Finance
Provides financial, macroeconomic, banking, credit, commodities, M&A, ESG, labor, and regulatory benchmarks for analysis and plan…